matlab数值分析程序--高等数学,数值代数的matlab实现-文字版, matlab电子书, 和matlab 有关的电子书:

2.9.3 求解n元非线性方程组的拟牛顿法及其MATLAB程序

2.9.3  求解n元非线性方程组的拟牛顿法及其MATLAB程序

解n元非线性方程组的拟牛顿法的MATLAB程序

function [k,hanfan,danfan,xddf,Xk,Yk]=ninewton(X01,X02,tol, ftol,gxmax)

X=[X01;X02];n=length(X);

for j=1:gxmax

Y=NN(X); A=NF(X);D=det(A); Xk=X-((A+ones(n)*eps)\Y’)’;

hanfan=norm(Y(2));danfan=norm(Xk(2)-X(2));

xddf=danfan/(norm(Xk(2))+eps);j=j+1;

X=Xk;Y=Z(X);Yk=Y;k=j;warning off MATLAB:singularMatrix

  if D~=0

Xk=X-(A\Y’)’;Yk=Y;j=j+1; [j-1,D,danfan, xddf, hanfan ,Xk, Yk]’

   else

     disp(‘请注意!迭代方程组(2.59)中的矩阵(2.58)行列式的值等于零.’)

   end

   if (hanfan <ftol)|(( danfan <tol)|( xddf < tol))

[j-1,D,danfan, xddf, hanfan ,Xk, Yk]’;

warning off MATLAB:singularMatrix

return;

end

end

if(j> gxmax)

error(‘请注意:迭代次数超过给定的最大值gxmax.’);

end

欢迎转载,转载请注明来自一手册:http://yishouce.com/book/3/3020903.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1