牛顿法求解非线性方程
我编的这个程序运行不出来,老有错!初值x0= 建议直接使用编辑贴出代码!
并看下本版规则! 给齐完整格式:出错代码和出错提示!
回牛顿法求解非线性方程复 楼主 宇宇 牛
function =mulsimNewton(F,x0,eps)if nargin==2, eps=10^-6; end
x0=transpose(x0); Fx=subs(F,findsym(F),x0);
dF=Jacobian(F); c=subs(dF,findsym(dF),x0);
inv(c)
y=x0-Fx*inv(c); n=1; tol=1;
while tol>eps
x0=y; Fx=subs(F,findsym(F),x0);
y=x0-inv(c)*Fx; tol=norm(y-x0); n=n+1;
if (n>10^10), disp('迭代次数大于最大值,可能不收敛'); return; end
end
function y=F(x)
y=;
y=;
这是错误提示
Warning: Function call F invokes inexact match D:\work\f.m.
??? Input argument "x" is undefined.
Error in ==> f at 2
y=;
[ 本帖最后由 ChaChing 于 2009-5-14 21:00 编辑 ] 个人水平专业有限, 建议楼主先看下
newton raphson算法
http://forum.vibunion.com/forum/viewthread.php?tid=41020&highlight=Newton%2BRaphson
回复 地板 ChaChing 的帖子
还是谢谢哦可作下修改
function =mulsimNewton(x0,eps)if nargin==1
eps=10^-6;
end
x0=transpose(x0);
Fx=subs(F,findsym(F),x0);
dF=Jacobian(F);
c=subs(dF,findsym(dF),x0);
y=x0-inv(c)*Fx; n=1; tol=1;
while tol>eps
x0=y; Fx=subs(F,findsym(F),x0);
y=x0-inv(c)*Fx; tol=norm(y-x0); n=n+1;
if (n>10^10), disp('迭代次数大于最大值,可能不收敛'); return; end
end
function y=F(t,s)
syms t s;
y=;
页:
[1]