(最新整理)基于Matlab的牛顿迭代法解非线性方程组

  • 格式:doc
  • 大小:49.00 KB
  • 文档页数:3

(完整)基于Matlab的牛顿迭代法解非线性方程组

(完整)基于Matlab的牛顿迭代法解非线性方程组

编辑整理:

尊敬的读者朋友们:

这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)基于Matlab的牛顿迭代法解非线性方程组)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为(完整)基于Matlab的牛顿迭代法解非线性方程组的全部内容。

(完整)基于Matlab的牛顿迭代法解非线性方程组

基于Matlab实现牛顿迭代法解非线性方程组

已知非线性方程组如下

221122121210801080xxxxxxx

给定初值0(0,0)Tx,要求求解精度达到0.00001

首先建立函数F(x),方程组编程如下,将F。m保存到工作路径中:

function f=F(x)

f(1)=x(1)^2—10*x(1)+x(2)^2+8;

f(2)=x(1)*x(2)^2+x(1)-10*x(2)+8;

f=[f(1) f(2)];

建立函数DF(x),用于求方程组的Jacobi矩阵,将DF.m保存到工作路径中:

function df=DF(x)

df=[2*x(1)—10,2*x(2);x(2)^2+1,2*x(1)*x(2)-10];

编程牛顿迭代法解非线性方程组,将newton。m保存到工作路径中:

clear;

clc

x=[0,0]';

f=F(x);

df=DF(x);

fprintf('%d %。7f %.7f\n’,0,x(1),x(2));

N=4;

for i=1:N

y=df\f';

x=x—y;

f=F(x);

df=DF(x);

fprintf('%d %.7f %。7f\n’,i,x(1),x(2));

if norm(y)〈0。0000001

break;

else

end

end

运行结果如下: (完整)基于Matlab的牛顿迭代法解非线性方程组

0 0。0000000 0。0000000

1 0.8000000 0.8800000

2 0。9917872 0.9917117

3 0.9999752 0.9999685

4 1。0000000 1。0000000