- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
牛顿法解非线性方程组实验汇报
实验名称: 牛顿法解非线性方程组
引言
我们已经知道,线性方程组我们可以采取Jacobi迭代法,G-S迭代法以及SOR迭代方法求解。而在科学技术领域里常常提出求解非线性方程组的问题,例如,用非线性函数拟合实验数据问题、非线性网络问题,用差分法求解非线性微分方程问题等。
我们在解非线性方程组时,也考虑用迭代法求解,其思路和解非线性方程式一样,首先要将F(x)=0转化为等价的方程组
或者简记为x=g(x),其中
迭代法:首先从某个初始向量开始,按下述逐次代入方法构造一向量序列:
其中,。
或写成向量形式:
如果(存在),称为收敛。且当为连续函数时,可得
说明为方程组的解。又称为x=g(x)的不动点。
本实验中采用牛顿迭代法来求解非线性方程组。
实验目的和要求
运用matlab编写一个.m文件,要求用牛顿法非线性方程组:
算法原理与流程图
1、算法原理
设有非线性方程组
F(x)=0
其中:
由偏导数作成的矩阵记为J(x)或称为F(x)的Jacobi矩阵
设为F(x)=0的解,且设,为的近似解,现利用多元函数 在点的泰勒公式有
其中,在与x的所连的线段内。
如果用泰勒公式中的线性函数近似代替,并将线性方程组
的解作为的第k+1次近似解记为
将上述方程写成矩阵形式:
如果为非奇异矩阵,则得到牛顿迭代公式:
求解非线性方程组F(x)=0牛顿法或为
用上式可知,每计算一步,需要:
计算矩阵及;
求解一个线性方程组:
计算。
2、流程图见附图1
程序代码及注释
%牛顿法解非线性方程组
function [Z,P,k,e] = newton(P,e0)
%用P输入初始猜想矩阵,不断迭代输出计算解
%Z为迭代结束后的F矩阵
%k为迭代次数,e为每次迭代后的无穷范数,e0为误差限
Z=F(P(1),P(2));
J=JF(P(1),P(2));
Q=P-J\Z;
e=norm((Q-P),inf);
P=Q;
Z=F(P(1),P(2));
k=1;
while e=e0
J=JF(P(1),P(2));
Q=P-J\Z;
e=norm((Q-P),inf);
P=Q;
Z=F(P(1),P(2));
k=k+1;
end
end
%子函数一,用来求每一步的F(x)
function [out]=F(x,y)
syms x1 x2;
f1=x1-0.5*cos(x2);
f2=x2-0.5*sin(x1);
Y=[f1;f2];
x1=x;
x2=y;
out=subs(Y);
end
%子函数二,用来求每一步的Jacobi矩阵
function [y]=JF(x,y)
syms x1 x2
f1=x1-0.5*cos(x2);
f2=x2-0.5*sin(x1);
df1x=diff(sym(f1),x1);
df1y=diff(sym(f1),x2);
df2x=diff(sym(f2),x1);
df2y=diff(sym(f2),x2);
j=[df1x,df1y;df2x,df2y];
%j中的元素为一阶偏导数
x1=x;
x2=y;
y=subs(j);
end
5算例分析
(1)首先输入系数矩阵初始猜想解和误差限e0
P=[0 0];
e0=0.001;(2)输出结果
[Z P k e]=newton(P,e0)
Z =
1.0e-009 *
0.550442413871366
0.398026500647575
P =
0.486405155145713
0.233725502568820
k =
3
e =
5.835820948590920e-005其中,P为计算解,k为迭代次数,Z为第k次迭代后的F矩阵,e为第k次迭代后的
6讨论与结论
时间复杂度:
tic;[Z P k e]=newton(P,e0);toc
Elapsed time is 0.068248 seconds.程序优化
在本次的程序设计中,我采用了C语言中子函数调用的思想,使得程序的可读性增强,条理清晰。
其次,在求每一步的时,要解方程,此语句可以用
Q=P-inv(J)*Z;但考虑到算法的时间复杂性,本语句采用了Q=P-J\Z来实现,从而减少了计算机时间。
参考文献
[1] 易大义,沈云宝,李有法. 计算方法(第2版),浙江大学出版社. p.29-53.
[2] 张琨 高思超 毕靖 编著 MATLAB2010从入门到精通 电子工业出版社
输入n,x,ε,N0
计算
输出x,S,k
k=1,2,…,N0
求解线性方程组
J(x)Y=-F(x)
计算
计算
输出迭代N0次还没有达到精度要求信息
Stop
Sε
Y
N
附图1
您可能关注的文档
最近下载
- 配电箱采购合同协议书范本详细(2025年).docx VIP
- 部编版语文写字表六年级上册字帖.pdf VIP
- (高清版)B/T 24421.1-2023 服务业组织标准化工作指南 第1部分:总则.pdf VIP
- 2022年洛阳理工学院教师招聘笔试试题及答案解析.docx VIP
- 城市停车设施规划导则.docx VIP
- 天然气发电厂-燃气-蒸汽联合循环发电机组PPT课件.pptx VIP
- 《《中文核心期刊目录(2017年版)》》.doc VIP
- 基孔肯雅热防控技术指南(2025年版)测试题及参考答案.docx VIP
- 工程测量技术 电子水准仪 电子水准仪.ppt VIP
- 党支部贯彻落实八项规定扎实推进作风建设工作专题党课ppt课件.pptx VIP
文档评论(0)