非线性方程组求解牛顿迭代法用MATLAB实现
1.二元函数的newton迭代法理论分析 设z f(x,y)在点(%)的某一邻域内连续且有直到2阶的连续偏导 数,3, )为该邻域内任意一点,则有 g h,yQk) f(x0, y0)2, y) k f{x, y)| ox 1 dy 1 其中 h x-x0 , k y-y0 于是方程/(x,y) 0可近似表示为 8d f3k,贝) hf(x,yxXk kf(x,yyyt 0 即fSk,处) 3一他)尤(改,处) (y处)(改,光)。 同理,设z g(x,y)在点(%川)的某一邻域内连续且有直到2阶的连续 偏导数,(吒 /,/)为该邻域内任意一点,亦有 aa g(x h,yQ k) g(M,y0) h g(x, y)|kg(x, y) ox 1 dy_ 其中 h x-x0 , k y-ya 于是方程g(,y) o可近似表示为 aa 1 g(Xk,) hg(x,y) kg(x,y)。 dxdy _ 即 g(Xk,a) (xM)gx(M,) (y a)gy(M,a)。 于是得到方程组 Jf3k,) 3-M)人(改,%) (/-光顼(改,无)。 [g3k,)3从)(从,贝) (/一)务(改,%)。 求解这个方程组,当 Sx(xk,yk)fy(xk,yk)-fx(xk,yk)gy(xk,yk)O 时 ,/( yk)gy (改,) g(xk, yQfE, yk) x xk-\ gx(改,)儿(改,) 一尤(改,%)gy (改,) y 家孔,)兀(勤,%)- k gjx 号%),(X 号%) 一 (X 号%)gv(X 号%) 从而 ..,fk,ygy,V J - g(xk, y J/v (xA., yk) X Xk I (X, yA)/v X, ) f*, )g,(X, yk) y gX,)九(改,) fg )g*(X, ) 、 k gxyjfy(xk,yj-fx(xk,y J gy(xk,y J 记符号 耽一底x| g,) gg, yk)fx (改,刃)一 了 E yk)gx g,) fgy 一矿|(必)fg,yk}gyg,yk)g(xk,yjfyg,yk) gjy - f,SyLyk )弘(心,k)fy(X, ) fE yk )gy(X,H ) 于是⑴式可改写为 X xk -\- y yk (2) S xfyfxS y (*,〉*) 迭代公式为 Xk1 五 yki 处 fg、-o* ,方 g a- fy fx Sy xk ,yk Sfx fgx 通过迭代公式(3)可以迭代出当k 12时,(%山)的值,当 \(xk l,yk l)\6 (50为给定的误差控制项)时,原方程组的根即为 ()。 2. newton迭代法求解给定的线性方程组 方程组 y O gx, y O 其中 /x, y a r c t art什 j3/2 -4-1 gx,y e xp/ y 4 求解过程如下 f 1 建3 3产 Jx3 l x1/3 y3/2-42Jy2 l x1/3 y3/2-42 g* -2x3 exp A--2 y-2gy 2/3 expx 2 y 于是迭代公式为 Xk1 无 T f g y sf y | X左,必 S Xfy - 苗x - fxS y | Cxk,yk -fgX | X/c,* y k S Xfy - -fxS y | Xk -ytc 为了解出正负轴的两个解,需要对函数f进行变形。 f tanl 4- 53 -x 兀T 32 J. fy 3tan⑴ 4y22 x--xy2 3.MATLAB编程实现过程 先画出函数图像找出大概位置 ezplotexpxA-2yA-24,[-6,6,-6,6]画出函数 g y2.40.0013.8; xtan ⑴4-yC3/2C3; hold on plotx,y画出函数f x 将图放大观察 由图可以看出两个交点的大概位置是(-1,3.4)和(1, 2.6) o 所以将这两个点作为初始值进行迭代计算,MATLAB编程如下 for ml2;循环两次计算出两个解 if m2 xl; y2.6; else x-l; y3.4; end xkO; ykO; i0; tl; while t0.000001设置计算精度 iil; ftan ⑴4-y*3/2人 3-x; gexpx*-2y 八-2-4; fx-l; fy3*tanl4-yA3/2A2*-1.5*yA1/2; gx-2*xA -3 *exp xA -2 yA -2; 豹二一 2*yW3*expx1- 2y 丫 2; xkxf* gy-g*fy / gx*fy-fx* gy; tabsxk-x; xxk; yyk; end sprintf,id\nx8.8f\ny8.8f,i,x,y 输出计算次数及计算结果 end 计算结果如下图所示 ans i5 x0.89251021 y2.76374983 ans i5 x-0.87567930 y3.48795230 计算精度为0.000001,迭代5次计算出结果