非线性方程组求解牛顿迭代法用MATLAB实现
1.二元函数的newton迭代法理论分析 设z = f(x,y)在点(%%)的某一邻域内连续且有直到2阶的连续偏导 数,3°+“,% + “)为该邻域内任意一点,则有 g +h,yQ+k)^ f(x0, y0)+2, y)“ + k x=(tan ⑴+4-yC(3/2))C3; hold on plot(x,y)%画出函数f x 将图放大观察 由图可以看出两个交点的大概位置是(-1,3.4)和(1, 2.6) o 所以将这两个点作为初始值进行迭代计算,MATLAB编程如下: for m=l:2;%循环两次计算出两个解 if m0.000001%设置计算精度 i=i+l; f=(tan ⑴+4-y*3/2))人 3-x; g=exp(x*-2)+y 八(-2))-4; fx=-l; fy=3*(tan(l)+4-yA(3/2))A2*(-1.5*yA(1/2)); gx=-2*xA (-3) *exp (xA (-2) +yA (-2)); 豹二一 2*yW3)*exp(x1- 2)+y 丫 2)); xk=x+(f* gy-g*fy) / (gx*fy-fx* gy); t=abs(xk-x); x=xk; y=yk; end sprintf(,i=%d\nx=%8.8f\ny=%8.8f,i,x,y)% 输出计算次数及计算结果 end 计算结果如下图所示 ans = i=5 x=0.89251021 y=2.76374983 ans = i=5 x=-0.87567930 y=3.48795230 计算精度为0.000001,迭代5次计算出结果