我正在嘗試使用MATLAB編寫一個小程序,其中嘗試區分我在不同函數中創建的函數,但是我不斷收到錯誤。使用MATLAB進行微分
我的文件有:
newton.m:
function [ y, iter ] = newton(f, fp, x0)
iter = 0;
xprev = x0;
x = xprev - f(xprev)/fp(xprev);
iter = iter + 1;
while abs(x-xprev) > eps*abs(x)
xprev = x;
x = x - f(x)/fp(x);
iter = iter + 1;
y = x;
end
end
FM:
function y = f(x)
y = tan(x) - 2*x;
end
fp.m:
function y = fp(f)
y = diff(f);
end
我運行了以下內容:
[y, iter] = newton(@f, @fp, 1.4)
並獲得:
Error using /
Matrix dimensions must agree.Error in newton (line 6) x = xprev - f(xprev)/fp(xprev);
當我檢查的y
在fp.m我不斷收到[]
值。
函數'diff'返回向量中元素之間的差異。見diff>。你需要在調用'fp' –