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

2.9.1 求解二元非线性方程组的牛顿法及其MATLAB程序

2.9.1  求解二元非线性方程组的牛顿法及其MATLAB程序

解二元非线性方程组的牛顿法的MATLAB主程序

function[ci,D,danfan,xddf,hanfan,Xk,Yk]=newtonzu2(X,tol,ftol,ngmax)

Y=Z(X);

for i=1:ngmax

dY=JZ(X);D=det(dY);

A1=[Y(1),dY(1,2); Y(2),dY(2,2)]; A=det(A1);

B1=[dY(1,1), Y(1); dY(2,1), Y(2)];B=det(B1);Xk=X-[A,B]/D;

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

xddf=danfan/(norm(Xk)+eps);

X=Xk;Y=Z(X);ci=i;

  if D~=0

    ci=i; Xk=X-[A,B]/D;

Yk=Y;   [ci,D,danfan, xddf, hanfan , X, Y];

   else

   disp('请注意!迭代方程组(2.44)的系数行列式的值等于零.')

  end

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

[ci,D,danfan, xddf, hanfan , X, Y];

return;

  end

  if i>gxmax

disp('请注意:迭代次数超过给定的最大值ngmax,请重新输入初始值x0.y0')

return;

end

end

 

例2.9.1  用迭代公式(2.46)求解方程组 

解  这里介绍两种求解已知方程组的方法.

方法1 用解二元非线性方程组的牛顿法的MATLAB主程序求解.

(1)设

则 , , .

(2)作函数的图形.输入程序

>>syms x y

F1= x^2+y^2-16;F2=x^2-y^2-2;

ezplot(F1,[-4.5,4.5]), hold on

ezplot(F2,[-4.5,4.5]) ,hold off

运行后屏幕显示图形.取两个初始值.

(3)建立并保存名为Z.m的M文件

function F=Z(X)

x=X(1);y=X(2); F=zeros(1,2);

F(1)= x^2+y^2-16; F(2)= x^2-y^2-2;

(4)建立并保存名为JZ.m的M文件

function dF=JZ(X)

x=X(1);y=X(2); dF=zeros(2,2);

dF(1,1)=2*x; dF(1,2)=2*y;

dF(2,1)=2*x; dF(2,2)=-2*y;

(5)保存名为newtonzu2.m的M文件;                

(6)在MATLAB工作窗口输入程序:

>> X=[2,2]; [k,D,danfan, xddf, hanfan , Xk, Yk]= newtonzu2 (X,1e-4,1e-4,100)

(7)运行后输出结果

k =

     5

D =

 -63.49803146638493

danfan =

    3.932201289951168e-011

xddf =

    9.830503224877920e-012

hanfan =

    3.336593498083849e-010

Xk =

   2.99999999996068   2.64575131106449

Yk =

  1.0e-015 *

     0  -0.88817841970013

方法2  用解矩阵方程的方法求解.

编写如下程序

>> x0=2;y0=2;ngmax =10;tol=1e-6;x(1)=x0;y(1)=y0; i=1;u=[1 1];k(1)=1;

while(norm(u)>tol*norm([x(i),y(i)]’))

A=2*[x(i),y(i);x(i),-y(i)];

b=[16-x(i)^2-y(i)^2,2-x(i)^2+y(i)^2]’;

u=A\b;x(i+1)=x(i)+u(1); y(i+1)=y(i)+u(2); i=i+1;k(i)=i;

if(i> gxmax)

error('请注意:迭代次数超过给定的最大值ngmax,请重新输入初始值');

end

 end

   [k’,x’,y’]

(2)运行后输出结果,取初始值,迭代次数n=6,精度ε=10-6,与精确解的误差已不超过ε.

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