- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.n阶代数方程(n大于等于5)(搜索法求一个根)
对于n 5的代数方程,没有求根公式可寻,要求方程的根,通常是采用根搜索方法,求得方程的某一个根,然后将此根从原方程中劈去,使方程降一阶或二阶,继续求根。寻求方程在根平面上的某一个根,其搜索方法有很多种,但大部分方法对重根或密集根得方程搜索将会失败,下面介绍一种搜索较保险并能得到一定精度的搜索方法,即牛顿下山与撒网格结合的搜索法。此方法可求得任何形式代数方程的根,设代数方程
并且不失一般性,
设方程的一个试验根为
当在此试验根附近存在方程的一个根,则有
代入方程得
如果 时,
则 为方程得一个根。关键是怎样求得试验根的增量dx, dy值,使得 z 向方程的某一个根趋近。这就是利用牛顿下山法,其方法是将f(z) 按泰劳级数:
展开后取一阶项得:
根据 随z变化的下降性来判断下山迭代是否成功,如果 <
则所选择的dz是成功的,将 继续迭代,直到 =0或 。为加速迭代收敛速度,通常引入一个加速因子t,实际选取dz=dx+jdy为
=
选取适当的t值可保证 < ,使下山成功,一般选初值,寻找下山路线时使t减小,t= t/1.67 。直到 或t0.001 时,即要作特殊处理了,转到撒网格寻求下山路线,注意每求得<一次,将置t的初值。
如果方程F(z)=0 中有重根或密集根时,f(z)会出现鞍点,此时,有而,而成dz溢出而使迭代失败,为避免这种情况,而使迭代能成功的搜索到方程的根,采用撒网格的方法,跳出鞍点继续迭代或使s=0或得到方程的一个根。其方法如图所示,取适当的一个模d和角度c,使得 ,
如果dz选择使得< ,转到牛顿下山法迭代,如果 >= ,就减小d,再找下山路线,当 时,还不能求得下山的路线时,说明有重根在z处,则可认为是求得的一个根。
d的初值由牛顿下山时的dz计算, .
c的初值可选为0。
每次迭代入,选 。在 时,使 。
在搜索根时,为使 有一个根在单位圆内或上,使搜索在单位圆内的范围内,可选对f(z) 作如下变换:
, 令
变换后
(变换后的方程,其常数项为1,表明方程定有一个根在单位圆内,其模小于等于1。)
其求得Z1在单位圆中的一个根,再来乘 p 得到原方程的一个根。
Qbasic子程序 SUB onwtons(a(), n as Integer, Z as comps) 为保证求根精度,子程序中所用迭代变量均采用双精度数。
5. N阶方程求根子程序(通用子程序)
到此介绍了二阶,三阶,四阶,以及更高阶方程的求根方法,我们就可以设计一个完整的求n阶方程的根子程序。当然应用牛顿下山与撒网格搜索的求根方法是完全可以代替低阶的求根公式,但由于搜索求根速度大大慢于公式求根速度,为加速求根运行速度,我们采用高阶方程用牛顿下山搜索法得到方程的一个或两个根,使方程降阶,当降至低于5阶后,直接调用公式求根子程序,其程序设计流程图如 。
6.求任意实函数的单实根。
设任意实函数f(x)=0
f(x)是x的非线性或线性函数,求它的单实根的方法很多,如二分法,弦截法,优选法,插值法等,各种方法大同小异。下面介绍弦截法求实函数在给定一个区间[xmin, xmax]中的所有单实根。这种方法求根分两步进行。
第一步,判断某个小区间内是否有根存在,其原理是xb=xa+h, 自变量从原来的一个初值xa向前跨出一步h, 如果在[xa, xa+h]中有根存在,则必有函数值f(xa)与f(xb)异号或f(xb)=0 ,这时转到第二步,否则将xb ( xa ,继续第一步的工作。
第二步,以 (xa, f(xa)) 和(xb, f(xb)) 作一直线, 得到直线方程:
以y=0时的x值x0 作为试验根,则
,求得 f(x0)=y0 。
如果 或,可以认为x0 是方程 f(x)=0 的一个根,如不满足条件,根据y0的符号使得x0(xa,y0(ya 或x0(xb,y0(yb, 继续第二步的操作,直到满足条件。
当xb+hxmax 时,搜索过程结束。
计算步长选择原则是,保证在一个步长区间内的根不能多于1个互异根(重根除外),否则将造成丢根现象,这就要求h取得较小,但增加计算时间,所以应综合考虑,对周期函数,h应小于周期的1/2。
控制精度的大小直接影响求根精度,应根据需要设定,一般可取10-5 ~ 10-10 ,可取0.1。
矩阵的逆
矩阵A是n×n阶矩阵,若det(A)不为0,则A的逆存在。
这里介绍常用的高斯-约当列主元消去法求矩阵的逆,其原理是A-1A=I相当于
EmEm-1…E1A=I ,
文档评论(0)