非线性方程组求解的牛顿迭代法用MATLAB实现_第1页
非线性方程组求解的牛顿迭代法用MATLAB实现_第2页
非线性方程组求解的牛顿迭代法用MATLAB实现_第3页
非线性方程组求解的牛顿迭代法用MATLAB实现_第4页
非线性方程组求解的牛顿迭代法用MATLAB实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.二元函数的newton迭代法理论分析设z二f (x, y)在点(Xo, yo)的某一邻域内连续且有直到2阶的连续偏导数,(X. h yo h;为该邻域内任意一点,则有f (Xo h, yo k) f(Xo, yo)+ 陀 f (x,y)+kf (x, yh其中 h 二x _Xo, k 二y _y0于是方程f(x, y)=o可近似表示为cdf (Xk, yQ+ | h 上 f (x, y) xk +k 上 f (x, y) y二yk =oyQ 二 o即 f (Xk, yQ (x- Xk) fx(Xk, yQ (y yQ fy (Xk,同理,设汽(x,y)在点(xo, yo)的某一邻域内连续且

2、有直到2阶的连续偏导数,(Xh,yh)为该邻域内任意一点,亦有Cy 二y。其中 h =x _X。, k =y _y于是方程g (x, y)二o可近似表 示为g (Xk, yQ + Jh 丄 g (x, L +k 丁 g (x, y) |y=yk 二cc-XTZo即 g (Xk, yQ (x- Xk) gx(Xk, yk) (y- yjgygyQ 二 o于是得到方程组一 yQfydk, yQ(yi f(X,yQ + (x- Xk) fx (Xk, yQ+(V 灵 y-O f _ Xk) (Xk, y J+求解这个方程组,当gx (Xk, yk) fy (Xk,yQ- fx (Xk,yQgydk,

3、 0 时丄 f (Xk, yQgy (Xk, yQ g(Xk, yQ fy (Xk, yQ X 二 Xkgx (, yQ fy (, yQ 一 fx (, yQgy&k, yQg(Xk, yQ fxg, vQ 一 f X, vQgxg, vQ v = vk gxg, yQ fyg, yQ - fxg, yQgyX, yQ从而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 = yk . g(Xk, yk) fx(Xk, yj f (Xk, yk)gx

4、(Xk, yQ k gx(xyQ fy(xyQ fx(Xk, yk) gy(Xk, yQ记符号gfx- fgx 区必)二g (Xk, Vk) fx (Xk, yk) f (Xk, Vk) gx (Xk, yk)fgy gfy (Xk, yk) = f (&, Yk) 9y (Xk ,k) 一 g (Xk,k) f y (Xk, yQ gxfy 一 fx9y (耳,yk) =gx (Xk, yk) fy (Xk, yQ fx&k $k) 9y &k , yQ于是(1)式可改写为fg gfy y ( Xk , yk )Xk f f gx y - xgy (Xk, yk)g f _ fgx x (

5、Xk , yk )迭代公式为:Xk 1Xkfg yz gfy ( Xk , y k )fggx yXy(Xk, ygfx -fgkx(Xk, yk )ykffgx y - xg y (Xk, yk)通过迭代公式(3)可以迭代出当212时,(Xk, yk)的值,当(xk l,yk 1) ; G 0为给定的误差控制项)时,原方程组的根即为 (Xk, yk) o2. newton迭代法求解给定的线性方程组方程组;f ( X , y 0 卫(x, y) = 0其中r /1/3么3/2八彳f (x, y) = a r c t 玄 n y 4) 一1 、g(x, y) =e xpxf+ y )4求解过程如

6、下23V1/34) 21/2丫1?33/22,2gx _ -2xexp( x。y)于是迭代公式为为了解岀正负轴的两个解,需要对函数f进行变形f =(tan(l) 4 一 y)J _xfx 二-13f y tan( ) y2)匕 y2)3. MATLAB编程实现过程先画出函数图像找出大概位置ezplot C exp (x(2)+yA (-2)二4, -6, 6, -6, 6) %画 岀函数 gy=2. 4:0. 001:3. 8;x=(ta n(l)+4-y. A(32)八 3;hold on plot (x, y)%画岀函数 f耳将图放大观察由图可以看岀两个交点的大概位置是(-1,34)和(1

7、, 2.6) o所以将这两个点作为初始值进行迭代计算,MATLAB编程如下:for m二1:2;%循环两次计算岀两个解if m0. 000001%设置计算精度i二i+1;f=(ta n(1)+4yA(3/2)Tx;g=exp (xA (-2) +yA (-2) 4;fx=-l;fy=3*(ta n(l)+4-yA(3/2)A2*(T. 5*yA(l/2);gx二-2*x (-3) *exp(XA (-2) +yA (-2);gy二-2*yA (-3) *exp (x* (-2)+(-2) ; xk=x+(f*gy-g*fy)/(gx*fy-fx*gy); yk y+(g*fx- f*gx)/ (gx*fy-fx*gy); t二abs(xkx);x 二 xk;y 二 yk;endspri ntf(,i=%dnx=%8.8fny=%8.8f,i,x,y)% 输岀

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论