discrete deriviative has wrong sign

1 view (last 30 days)
Niles Martinsen
Niles Martinsen on 8 Apr 2015
Answered: Adam on 8 Apr 2015
I have the following MWE that calculates the derivative of a function along the y-direction:
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
However, please take a look at the two plots: On the plot for dyPhi, it seems that the derivative has a wrong sign.
Why is that? If I swap the sign, then I get what I would expect.

Answers (1)

Adam
Adam on 8 Apr 2015
At a guess I would say it is because circshift shifts in the opposite direction to what you would expect. Certainly that catches me quite often when I have to shift by -1 when I intuitively thought it should be +1

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!