Matlab笔记之三_非线性方程组求解算法.docVIP

Matlab笔记之三_非线性方程组求解算法.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Matlab笔记之三_非线性方程组求解算法

求方程根的几种常用方法: 搜索法 a=0.001; step=3*pi/100000; for i=0:step:8*pi ?? x=4*cos(i); ?? y=4*sin(i); ?? z=i; ?? d=abs(x+y+0.5*z-2)/sqrt(1+1+0.25); if d=a ????? i end end a=0.001 thetai=[] step=8*pi/100000 for i=0:step:8*pi ?? x=4*cos(i) ?? y=4*sin(i) ?? z=i ?? d=abs(x+y+0.5*z-2)/sqrt(1+1+0.25) if d=a %只有满足精度时才执行循环 ??? if isempty(thetai) %首先判断是否为空,将第一个放到thetai ????????? thetai=[thetai,i] ??? else???? %假如不为空,判断是否与前一结果差开两个步长 ?????? if abs(i-thetai(length(thetai)))2*step ??????????? thetai=[thetai,i]; ?????? else?? %否的话与前一值相加初二 thetai(length(thetai))=(thetai(length(thetai))+i)/2 ?????? end ??? end end end x=4*cos(thetai) y=4*sin(thetai) z=thetai 区间二分法: 与对分查找法相同 1 区间二分法求出的仅仅是方程的一个单根,如果方程有重根或者多个根时,在做区间二分法时就会出现分叉,这样方程有几个根,就会产生几个实数序列,每一个实数序列的极限便是方程的一个根 2 通常用区间二分法为一些迭代法提供靠近x^*的初始选代值; 3 区间二分法的缺点是不能求方程的复数根。 format long ?? a=5; ?? b=6; ?? x1=a; ?? x2=b; ?? f1=4*cos(x1)+4*sin(x1)+0.5*x1-2;?????? f2=4*cos(x2)+4*sin(x2)+0.5*x2-2; ?? step=0.000001; ?? ii=0; while abs(x1-x2)step ?? ii=ii+1; ?? x3=(x1+x2)/2; ?? f3=4*cos(x3)+4*sin(x3)+0.5*x3-2; if f3~=0 ?? if f1*f30 ???? x2=x3; ?? else ???? x1=x3; ?? end end end x3 f=[4*cos(x3)+4*sin(x3)+0.5*x3] disp([迭代次数:,num2str(ii),次]) 牛顿迭代法求解: 在方程f(x)=0有实数根的情况下,若能够将方程等价地转化成x=g(x)的形式,然后取一个初始值x0代入x=g(x)的右端,算得x1=g(x0),再计算x2=g(x1),这样依次类推 x(k+1)=g(x(k)) 可以得到一个序列xk,通常称g(x)为迭代函数,序列xk为由迭代函数产生得迭代序列,x0为迭代初始值。 同一个方程,不同等价形式的转换产生的迭代法可能收敛,也有可能发散.关于迭代法的敛散性判定有下面的定理(也称李普希兹(Lipschitz定理): 如果迭代函数g(x)在区间[a,b]上连续,且满足以下条件, 1 对于任意的x=[a,b],有g(x)=[a,b] 2 在区间内(a,b)内,函数g(x)满足Lipschitz条件,即存在常数L0,使得对于任意的x,y=(a,b),都有|g(x)-g(y)|=L|x-y|,如果有L1,则迭代格式xk+1=g(xk),k=0,1,2,.. 对于任意的迭代初始值x0=[a,b]均是收敛的 这里与x和y无关的正常数L称为Lipschitz常数。 一种较为特殊得迭代法为牛顿(Newton)迭代法 xk+1=xk-f(xk)/f(xk) 相应迭代函数为 g(x)=x-f(x)/f(x) Newton迭代法的几何意义:它的第k+1次迭代值就是曲线y=f(x)在点(xk,f(xk))处切线y-f(xk)=f(xk)(x=xk)与轴的交点的横坐标, %解方程:f=4*(cos(x1)+sin(x1)+0.5*x1-2)=0 x0=9.6; x1=x0-(4*(cos(x0)+sin(x0))+0.5*x0-2)/(4*(cos(x0)-sin(x0))+0.5); while abs(x1-x0)0.000001 ??? x0=x1; x1=x1-(4*(cos(x0)+sin(x0))+0.5*x0-2)/(4*(cos(x0)-si

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档