作者:
SheWow (123)
2014-09-23 13:58:41大家好 小弟我是matlab新手
近日打算用牛頓法求解一個形式複雜的函數的根
為此小弟先設定一個簡單的函數(f=x^2-4)當作練習
試用牛頓法求根
但遇到程式上的問題一直無法解決 想請各位前輩幫幫我
以下是小弟的測試程式:
clear
syms x
n=0;
eps=1;
x=1;
p=0.000001;
while eps>p && n<10
f=x^2-4;
%df=2*x;
df=diff(f(x));
xnew=x-f(x)/df(x);
eps=abs(xnew-x);
x=xnew;
n=n+1;
end
run程式出現 Index exceeds matrix dimensions.
查資料後知道是矩陣數量不相符的關係 但我不知道怎麼修改才好 ><
若我把df=diff(f(x))替換成df=2*x (也就是自己手算微分)
是可以求出正確根植 +2,-2
但我真正想求根的函數 形式太複雜了
手動求微分再打到程式裡 有點不太實際
請問各位前輩這裡diff造成的問題要怎麼解決?
卡好幾天了 搞不太定 QQ