建立shuzhi.m 文件如下:(把非线性方程组保存到shuzhi.m 文件中)
function F=shuzhi(X)
x=X(1);
y=X(2);
F=zeros(1,2);
F(1)=x.^2-2*x-y+0.5;
F(2)=x.^2+4*y.^2-4
end
建立jacobi.m 文件如下:(把非线性方程组的雅可比矩阵保存到jacobi.m 文件中)
function J=jacobi(X)
x=X(1);
y=X(2);
J=[2*x-2 -1;2*x 8*y];
end
建立ma_nl_newton.m 文件如下:
function [p,iter,err]=ma_nl_newton(F,J,p,delta,epsilon,max1)
y=feval(F,p);
for k=1:max1
j=feval(J,p);
q=p-(j\y')';
z=feval(F,q);
err=norm(q-p);
relerr=err/(norm(q)+eps);
p=q;
y=z;
iter=k;
if(err<delta)|(relerr<delta)|(abs(y)<epsilon)
break
end
end
end
在命令窗口输入如下:
>> ma_nl_newton('shuzhi','jacobi',[2 0.25],0.001,0.01,100)
F =
0.2500 0.2500
F =
0.0088 0.0244
F =
1.0e-04 *
0.3091 0.3754
ans =
1.9007 0.3112