|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我只知道牛顿法求解非线性方程的MATLAB程序,但应用到非线性方程组就不行了
function x=nanewton(fname,dfname,x0,e,N)
if nargin<5,N=500;end
if nargin<4,e=1e-4;end
x=x0;x0=x+2*e;k=0;
while abs(x0-x)>e&k<N,
k=k+1;
x0=x;x=x0-feval(fname,x0)/feval(dfname,x0);
disp(x)
end
if k==N,waring('已达迭代次数上限');end
在MATLAB命令窗口中输入:
》fun=inline('4*x1+4*x2;4*x1+4*x2+(x1-x2)*((x1-2)^2+x2^2-1)');
dfun=inline('4,4;3*x1^2+x2^2-2*x1*x2+4*x2-8*x1+7,2*x1*x2+4*x1-3*x2^2-x1^2+1')
》nanewton(fun,dfun,[2,2],0.5e-3)
各位帮帮忙,看我的程序错在哪,我对MATLAB不熟悉.......
[ 本帖最后由 eight 于 2008-5-12 18:48 编辑 ] |
|