您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 非线性方程的5种数值解法及其
非线性方程的5种数值解法及其探究指导老师:魏春艳(讲师)专业:信息与计算科学姓名:张萨•摘要:本文首先分别介绍了二分法、newton迭代法、反函数法、求交法、反插值法等5种算法;再结合具体的实例,并在相同的误差精度下,用matlab语言对它们逐一实现;最后对这5种方法进行归纳总结.•关键词:非线性方程;二分法;迭代法;反函数法;反插值法;matlab程序;论文结构框架引言相关理论知识及算法步骤算例分析综合分析比较研究意义相关领域研究回顾介绍了这5种方法的基本原理及算法步骤052623xxx以方程为例,用matlab程序分别实现分析比较,归纳其应用范围和优缺点1引言•在实际问题中,求解非线性方程根的精确值很困难,大部分的情况下,我们只需要求解出近似值即可.而数值解法,就是用数值迭代的方法来求解近似值的一种方法.•其中最早提出来的是二分法.•到了17世纪,牛顿又提出了一种迭代方法,这是目前为止最基本,最核心,最经典的一种迭代法.•在20世纪,有学者提出了反函数法,并推出一系列具有高精度的求根公式,这对于那些不便于进行迭代的方程的求解具有较大的应用价值.•此外,还有学者在不动点迭代法的基础上,利用切线的几何意义来构造迭代公式,称为求交法.•同时,一些专家通过反插值来求解出自变量的值,即反插值法.2相关理论知识·二分法首先确定方程的有根区间,然后再进行中点函数值判断,这样不断地接近零点,把零点所在的区间缩小一半,最终使区间的两个端点逐渐收敛于函数的零点.01100020000!1!!2!1'xxnfxxnxfxxxfxxxfxfxfnnnn取上式中的线性部分,并考虑0xf,则有:0'000xxxfxf设0'0xf,那么该方程的解就是:)(')(0001xfxfxx再把xf在1x附近展开成泰勒级数,并且也取其线性部分有:·netwon迭代法由泰勒定理知:0'111xxxfxf那么,该方程的解就是:)(')(1112xfxfxx这样,就可以得到该方法的一个迭代序列为:)(')(111nnnnxfxfxx·反函数法(该方法仅适用于高次代数方程,且最高次系数设为n)若函数存在单值的反函数,设为ygx,并且有:xyyygx'1''xxxxxxxxyxyyyyyyyyyyyyyxxxggx'''1''1''1'''''''32'xxxxxxxxyyyyyyyyyyyyyxxxgx'''3'1''''''523ygx在点y0处展开,有:20000!2'yygyyygygx令0y,当0y充分小时,将上式中的拉格朗日余项略去,当1n0001'xfyxx2n时,同理可得:迭代公式是:那么可得迭代公式是:)(')(111nnnnxfxfxx把前面的3个式子代入到上式中,就可以得到:023000'2'1yyffyyxfxx有:13131111'2'nnnnnnnyxfxfxfyxx当Q03n时,迭代公式是:131111213131111'6''3'2'nnnnnnnnnnnnyxfxfxfxfyxfxfxfyxx当6,5,4n时可以得到更高精度的迭代公式.·求交法xy1xHy20Q0P0Rxy0k首先把方程化成它的同解方程xHx,然后令xy1xHy2,方程的根,就等价于求这两个,求解函数的交点k.设初始值是x0,x0xx1则可得到P0,过该点作直线的切线,得到Q0,该点的横坐标记为1x,可以得到三角形P0R0,那么可得:010110'xxxHxyxH因为111xxy,则00001'1'xHxHxxHx如此这样进行下去,就会得到一组迭代公式是:1111'1'nnnnnxHxHxxHx·反插值法给定方程的n个离散数据点:,且0*y是介00xfy11xfy,之间的某个值,由介值定理可知:它所对应的自变量的取值必在10,xx之间,考虑在该区间内进行线性插值,则有:10001,xxfxxxfxf再令0*1yxf,就可以得到可以得到一个粗略近似值:10000,xxfxfxxni2,1,0yxii,于令0*2yxf,则可得到第一个近似值:按照同样的方法进行二次插值,可以得到第二个近似值:210100010000,,,xxxfxxxxxxfxxxfxfnnnnxxxxfxxxxxx,,,1100100010001021001,,,xxxxxxfxxxfxxnnxxxxxxxxfxxxxf0100010210,,,11011021012,,,xxxxxxfxxxfxxnnxxxxxxxxfxxxxf1110110210,,,然后把0x作为初始值,考虑进行n次反插值,则有:如此进行下去,就可以得到该方法的一组迭代序列是:1101102101,,,xxxxxxfxxxfxxkkkknkkknxxxxxxxxfxxxxf1110110210,,,3算法步骤给定有根区间,初始值,并考虑在相同的容许误差精度要求下,分别用上述的5种方法编写具体的matlab程序来求解方程根的近似值.4算例分析以方程052623xxx为例,先用matlab程序求出它的有根区间是5,9,然后再选取初始值5.60x和精确度910最后用matlab语言对这5种方法逐一实现,求解出该方程根的近似值,并要求能得到每一步迭代的结果.(具体程序5综合分析比较分别从基本原理,迭代次数,迭代时间,适用范围,优缺点等方面,对这5种方法逐以分析,并举例说明,最后再进行见附录).综合归纳比较(见下表).初始值迭代次数迭代时间数值解二分法330.015秒-5.80383649934083netwon迭代法40.01秒-5.80383649910152反函数法30.01秒-5.80383649910152求交法40.006秒-5.80383649910152反插值法50.036秒-5.803836499101529a5b5.60x5.60x5.60x表1:最终的迭代结果比较803645.51x803640.50x803650.52x表2:5种数值解法的综合比较优点缺点应用范围二分法①算法简单,容易操作;②近似根序列一定收敛于方程的根;①收敛速度比较慢;②只能求解奇数重根,不能求解偶数重根;函数在有根区间上连续,且在区间端点处的函数值异号;netwon迭代法①与普通的迭代法相比,收敛速度快;②几何意义鲜明,易于理解;①对迭代初始值的要求比较高,当初始值偏离方程的根较远时,收敛序列可能不收敛;②对于复杂的方程,其一阶导数不易得到;③迭代时可能出现分母为0的情况;①在整个有根区间上,一介导函数值不变号,且恒不为0;②选取的初始值的一介,二介导函数值号;优点缺点应用范围反函数法①收敛速度较迭代法快;②原理简单;①迭代公式比较复杂繁琐;②适用范围窄,只能求解高次代数方程;③迭代时可能出现分母为0的情况;①一介导函数值在有根区间上存在且连续;②一介导函数值恒不为0;③区间端点出的函数值异号;求交法①收敛速度快;②几何意义明显,易于理解;①有的非线性方程,不一定能把它化成同解方程的形式;②一些复杂的非线性方程的一阶导数不易得到;③迭代时可能出现分母为0的情况;①方程能够化成同解方程的形式;②同解方程右侧的导函数值存在且连续,且不能等于1;优点缺点应用范围反插值法①收敛速度较迭代法快;②算法简单易懂;①可能出现差商为0的情况,迭代无意义;②对于有的方程,它的差商可能不容易求出来;①函数在有根区间上连续;②若函数是偶函数,且选取的初始值互为相反数,则该方法失效;·在实际应用中,我们要根据所求方程的具体的情况和满足的条件,来选取最合适有效的方法来求解出方程根的近似值.谢谢观看!感谢各位老师的悉心培养,同时谨祝母校越办越好!!!
本文标题:非线性方程的5种数值解法及其
链接地址:https://www.777doc.com/doc-4018305 .html