楼主:
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