- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
非线性方程组数值解法-非线性方程组数值解法
非线性方程组数值解法-非线性方程组数值解法
????
?
非线性方程组数值解法-正文
????
n个变量n个方程(n?1)的方程组表示为
?(1)
式中?i(x1,x2,…,xn)是定义在n维欧氏空间Rn?的开域D上的实函数。若?i中至少有一个非线性函数,则称(1)为非线性方程组。在Rn?中记??=?则(1)简写为?(尣)=0。若存在尣*∈D,使?(尣*)=0,则称尣*为非线性方程组的解。方程组(1)可能有一个解或多个解,也可能有无穷多解或无解。对非线性方程组解的存在性的研究远不如线性方程组那样成熟,现有的解法也不象线性方程组那样有效。除极特殊的方程外,一般不能用直接方法求得精确解,目前主要采用迭代法求近似解。根据不同思想构造收敛于解尣*的迭代序列{尣k}(k=0,1,…),即可得到求解非线性方程组的各种迭代法,其中最著名的是牛顿法。? 牛顿法及其变形? 牛顿法基本思想是将非线性问题逐步线性化而形成如下迭代程序:
(2)
式中
是?(尣k)的雅可比矩阵,尣0是方程(1)的解尣*的初始近似。? 这个程序至少具有2阶收敛速度。由尣k算到尣k+的步骤为:①由尣k算出?(尣k)及;②用直接法求线性方程组的解Δ尣k;③求。? 由此看到迭代一次需计算n个分量函数值和?n2个分量偏导数值,并求解一次n阶线性方程组。? 为了评价非线性方程组不同迭代法的优劣,通常用效率作为衡量标准,其中P为迭代法的收敛阶,W为每迭代步计算函数值?i及偏导数值的总个数(每迭代步中求一次逆的工作量相同,均不算在W?内)。效率e越大表示此迭代法花费代价越小,根据效率定义,牛顿法(2)的效率为。? 牛顿法有很多变形,如当奇异或严重病态时,可引进阻尼因子λk,得到阻尼牛顿法,即
式中I是单位矩阵。牛顿法是局部收敛方法,因而对初始近似尣0限制较严,为放宽对尣0的要求,扩大收敛范围,通常可引进松弛因子ωk,得到牛顿下降法:
?(3)
式中ωk的选择应使成立。? 为减少解线性方程组次数,提高效率,可使用修正牛顿程序
?(4)
这种算法也称为萨马斯基技巧,它的收敛阶为?p?=m+1,由尣k?计算?的工作量为W?=n2+mn,于是该法的效率。当n=10,m=7时,当n=100,m=37时,,由此看到修正牛顿法(4)比牛顿法效率高,且m?越大效果越明显。? 在计算机上往往采用不计算偏导数的离散牛顿法,即
?(5)
式中
,
其中ej为基向量,,若取,则(5)仍具有2阶收敛速度。其效率与牛顿法相同。? 若在牛顿法(2)中解线性方程组不用直接法,而采用迭代法则得到一类解非线性方程组的双重迭代法。按解线性方程组采用的方法不同就得到不同名称的迭代法,如牛顿-赛德尔迭代法,牛顿-SOR迭代法,牛顿-ADI迭代法,等等。这些方法都具有超线性收敛速度,工作量也比牛顿法大,除了对某些特殊稀疏方程组外,通常用得校少。若将解线性方程组迭代法的思想直接用于非线性方程组(1),然后把(1)化为一维方程求解,可得到另一类双重迭代法,由于采用的迭代法与解一维非线性方程的方法不同,则得到不同的双重迭代法。如果利用SOR迭代法后再用牛顿法解一维方程则得SOR-牛顿迭代法,在牛顿法中只计算一步而不进行迭代,则得一步的SOR-牛顿迭代,其计算公式可表示为
式中记号嬠i?i表示;ω为迭代参数,当ω=1时就是赛德尔-牛顿迭代法,这类方法对解维数高的稀疏的非线性方程组是有效的。? 割线法? 若对方程组 (1)线性化时使用插值方法确定线性方程组
(6)
中的Ak和bk,则可得到一类称为割线法的迭代序列。假定已知第k步近似尣k,为确定Ak和bk,可在尣k附近取n个辅助点у忋(j=1,2,…,n),使n个向量线性无关,由插值条件可知
由此可求得
由(6)解得以此作为方程 (1)的新近似,记作,于是得到
?(7)
(7)称为解非线性方程组的割线法。辅助点у忋?取得不同就得到不同的割线法程序,例如取为常数(j=1,2,…,n),就得到与(5)相同的程序,由于它只依赖于尣k点的信息,故也称一点割线法,若取它依赖于点尣k及, 称为两点割线法。其他多点割线法由于稳定性差,使用较少。? 布朗方法? 布朗采用对每个分量方程??i(尣)=0逐个进行线性化并逐个消元的步骤,即在每迭代步中用三角分解求线性方程组的解,得到了一个效率比牛顿法提高近一倍的迭代法,即
式中
(8)中当i=n时求得xn记作,再逐次回代,求出(i=n-1,n-2,…,1)就完成了一个迭代步。布朗迭代程序的敛速仍保持p=2,而每一迭代步的工作量,故效率对这方法还可与牛顿法一样进行改进,得到一些效率更高的算法。这类方法是70年代以来数值软件包中常用的求解非线性方程组的算法。? 拟牛顿法? 为减少牛顿法的计算量,避免计算
文档评论(0)