(最新整理)基于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