У меня есть следующие MWE, который вычисляет производную функции вдоль оси у:дискретная производная функции
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'. –