牛顿迭代法解方程组(电子科大)

更新时间:2023-03-14 01:10:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

求偏导

?x1/3?y3/2?4)-1?f1(x,y)?arctan(??2?2??f2(x,y)?exp(x?y)?4

?f1(x,y)

=?x?f1(x,y) ?y1?2x331 x3+

3y22 +4 +1

=

31x221 x3+

3y22+4 +1x

?f2(x,y)?x?f2(x,y)==

?2?2exp(x?y)?2

?2?2exp(x?y)?2

?y利用二元泰勒公式得到方程组:

y??f(xk,yk)?(x?xk)fx(xk,yk)?(y?yk)fy(xk,yk)?0 ?g(x,y)?(x?x)g(x,y)?(y?y)g(x,y)?0?kxkkkykk?kk求解这个方程组:

当gx(xk,yk)fy(xk,yk)?fx(xk,yk)gy(xk,yk)?0时

f(xk,yk)gy(xk,yk)?g(xk,yk)fy(xk,yk)??x?xk?gx(xk,yk)fy(xk,yk)?fx(xk,yk)gy(xk,yk)?? ?y?y?g(xk,yk)fx(xk,yk)?f(xk,yk)fx(xk,yk)k?gx(xk,yk)fy(xk,yk)?fx(xk,yk)gy(xk,yk)?将f g的骗到分别代入上式即可

先用matlab画图,观察函数交点,估计初始值。 ezplot('atan(x^(1/3)+y^(3/2)-4)-1',[-6,6]);hold on;ezplot('exp(x^(-2) + y^(-2)) - 4',[-6,6])

exp(x-2 + y-2) - 4 = 0642y0-2-4-6-6-4-20246x

估计初始值x0=0.7;y0=3;精度要求为:0.00001 f=inline('atan(x^(1/3) + y^(3/2) - 4)-1'); g=inline('exp(x^(-2) + y^(-2)) - 4'); syms x y x1 y1 ; %定义变量

dfdx = diff(atan(x^(1/3) + y^(3/2) - 4)-1,'x'); dfdy = diff(atan(x^(1/3) + y^(3/2) - 4)-1,'y'); dgdx = diff(exp(x^(-2) + y^(-2)) - 4,'x'); dgdy = diff(exp(x^(-2) + y^(-2)) - 4,'y');

fx=inline('1/3/x^(2/3)/(1+(x^(1/3)+y^(3/2)-4)^2)'); 面是dfdx的表达式

fy=inline('3/2*y^(1/2)/(1+(x^(1/3)+y^(3/2)-4)^2)'); 里面是dfdy的表达式

gx=inline('-2/x^3*exp(1/x^2+1/y^2)'); % % ''里 % ''''里面是

dgdx的表达式

gy=inline('-2/y^3*exp(1/x^2+1/y^2)'); % ''里面是dgdy的表达式

x0=0.5;y0=3; %初值设定(x0,y0)=(0.5,3) k=0;error=1;

while error > 0.00001

x1 = x0 + ( f(x0,y0) * gy(x0,y0) - g(x0,y0) * fy(x0,y0) ) ... /(gx(x0,y0) * fy(x0,y0)-fx(x0,y0) * gy(x0,y0) ); y1 = y0 + ( g(x0,y0) * fx(x0,y0) - f(x0,y0) * gx(x0,y0) ) ... /(gx(x0,y0) * fy(x0,y0)-fx(x0,y0) * gy(x0,y0) ); error = (sqrt((x1-x0)^2 + (y1-y0)^2)); x0 = x1; y0 = y1; k=k+1; end

本文来源:https://www.bwwdw.com/article/w32x.html

Top