[問題] 牛頓法求值問題
大家好 小弟我是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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.46.240
※ 文章網址: http://www.ptt.cc/bbs/MATLAB/M.1411451924.A.D62.html
→
09/24 11:48, , 1F
09/24 11:48, 1F
→
09/24 11:50, , 2F
09/24 11:50, 2F
→
09/24 11:51, , 3F
09/24 11:51, 3F
推
09/24 12:29, , 4F
09/24 12:29, 4F
→
09/24 12:29, , 5F
09/24 12:29, 5F
→
09/24 12:30, , 6F
09/24 12:30, 6F
推
09/24 14:40, , 7F
09/24 14:40, 7F
→
09/24 14:40, , 8F
09/24 14:40, 8F
→
09/24 14:41, , 9F
09/24 14:41, 9F
→
09/25 21:17, , 10F
09/25 21:17, 10F
→
09/25 23:47, , 11F
09/25 23:47, 11F
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章