基于MATLAB的科学计算—非线性方程(组).docVIP

基于MATLAB的科学计算—非线性方程(组).doc

  1. 1、本文档共16页,可阅读全部内容。
  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的科学计算—非线性方程(组)

科学计算—理论、方法 及其基于MATLAB的实现与分析 解非线性方程(组) (一)直接法   设方程在区间上有唯一解,并且,如方程         (2) 首先要确定适当的包含根的区间,这可以依据闭区间上连续函数的介值定理来确定,例如,,,所以方程 (2)至少有一个实根属于区间,图1表明区间中只含有一个根,显然方程 (2)的根不易直接求得。在区间[-1,0]、[0,1]和[1,2]的情形,如下图1所示 例1 plotNL_fun01.m plotNL_fun01 clear x=-1:0.05:2; f=x.^3-2.3*x.^2+x.*sin(x)+0.3; plot(x,f,r,x,0*x,k) title(The Image of f(x)=x^3-2.3*x^2+x*sin(x)+0.3) xlabel(\fontsize {12} \fontname {宋体} 图1) axis square 二分法的求根过程:用表示方程在区间上的根,对于给定的精度要求,取区间的中点,并按下式进行判断:        (2) 以为例,如果,那么区间内的任何一点都可以作为方程的近根。二分法适用于一个方程的场合,收敛速度是线性的,二分次数的估计:       (3) 2、黄金分割法: 在区间内取对称的两点:          (4) 使得 按这种方法选取点和,每次去掉的区间长度至少是原区间长度的0.618倍,   (5) 适用于一个方程的场合,收敛速度是线性的,迭代次数的估计:      (6) (二)迭代法 首先将方程(组)写成等价的迭代形式:        (7) 由此确定了相应的迭代法: (8)    迭代收敛的图像解释 对于非线性方程(组)的迭代法来说,同样面临收敛性问题,为说明收敛性条件,先看下面的例子: 例2:   让我们来求如下方程的根 下面,我们采用迭代法求方程 (1)位于区间中的根,为此构造迭代算法如下:       (9)   ,    (10) 在区间中任取一个迭代初值,如取初值.执行下面的程序:EqutIteration.m: open EqutIteration.m EqutIteration N = 29 下面欲求1.5附近的根,为此分别取初值,,迭代的结果如下: open Ex_IteraConv01 Ex_IteraConv01 N = 31 收敛性定理:(收敛的充分性条件)   设方程在上存在唯一解,是方程的等价形式,如果 1、在上连续可微; 2、对任何,; 3、, 则对任何,由迭代算法   ,           (11) 生成的序列收敛于方程在上的唯一解。并有误差估计式 . 注1:满足方程的点称为映射的不动点; 注2:具有性质的映射称为压缩映射; 因为,, , 下面证明误差估计式,因为 , 据此递推,可得 . 于是对任意正整数,有 在上式中令,注意到. 对任意正整数,有 . 令,则有 一点注释:当方程(组)为线性方程(组)时,就是迭代格式 中的矩阵,而就对应着矩阵的范数. 例3: Ex_IteraConv01.m open Ex_IteraConv01 x=[0.3:0.01:2]; y=(0.3+x.*sin(x))/(x.*(2.3-x)); plot(x,y,x,x) hold on m=1; z=1.4; while m15 y=(0.3+z*sin(z))/(z*(2.3-z));; plot([z z],[z y],r,[z y],[y y],r) z=y; m=m+1; pause end 迭代收敛的图像解释 例4: Ex_IteraConv02.m open Ex_IteraConv02 Ex_IteraConv02 上面的例子表明了两点:在根附近,迭代法(10)不满足的条件,导致迭代法序列不收敛于此根;在根附近,迭代法(10)尽管也不满足的条件,但所生成的序列收敛于此根. 例5 在用迭代法求解方程的正根时,构造迭代函数,试选取适当的使迭代计算收敛,并计算其迭代3步所得的值. 解: 由于根,故取使. 为使收敛速度快,取使 , 因此迭代公式为.取初值=2,迭代计算,数值结果如下: 显然,这里选取的迭代公式收敛,并且收敛速度较快. 定理 (局部收敛性)设在的邻近连续,且 , 则迭代过程在邻近具有局部收敛性. 收敛速度:如果有 (当时,要求)  (29) 则称迭代的收敛速度是阶的。特别地,时称为线性收敛(Linear Convergence),时称为超

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档