【发布时间】:2015-04-08 15:51:47
【问题描述】:
我有以下 MWE 计算函数沿 y 方向的导数:
x=1:50;
y=x;
phi = sin((x-10)/10);
dyPhi = (4.0*(circshift(phi(:,:), [+0, +1]) - circshift(phi(:,:), [+0, -1])) + ...
1.0*(circshift(phi(:,:), [+1, +1]) - circshift(phi(:,:), [-1, -1])) + ...
1.0*(circshift(phi(:,:), [-1, +1]) - circshift(phi(:,:), [+1, -1])))/12.0;
figure(1)
imagesc(phi)
colorbar
figure(2)
imagesc(dyPhi)
colorbar
但是,请看一下这两个图:在 dyPhi 的图上,似乎导数的符号错误。
这是为什么呢?如果我交换标志,那么我会得到我所期望的。
【问题讨论】:
-
你到底为什么使用
circshift?还有更通用的数值微分方法,或者,如果您只使用sin & cos,您可以简单地通过添加pi/2“微分”。
标签: matlab calculus derivative