- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
牛顿迭代法求方程的根
利用迭代算法解决问题,需要做好以下三个方面的工作: 一、确定迭代变量。在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。 二、建立迭代关系式。所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。
三、对迭代过程进行控制。在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。不能让迭代过程无休止地重复执行下去。迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析出用来结束迭代过程的条件。最经典的迭代算法是欧几里德算法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理:牛顿迭代法是牛顿在17世纪提出的一种求解方程f x 0.多数方程不存在求根公式,从而求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。 设r是f x 0的根,选取x0作为r初始近似值,过点(x0,f x0 )做曲线y f x 的切线L,L的方程为y f x0 +f x0 x-x0 ,求出L与x轴交点的横坐标 x1 x0-f x0 /f x0 ,称x1为r的一次近似值,过点(x1,f x1 )做曲线y f x 的切线,并求该切线与x轴的横坐标 x2 x1-f x1 /f x1 称x2为r的二次近似值,重复以上过程,得r的近似值序列 Xn ,其中Xn+1 Xn-f Xn /f Xn ,称为r的n+1次近似值。上式称为牛顿迭代公式。
/*用牛顿迭代法求下面方程 x*x*x-5*x*x+16*x-80 0的实根的过程是:1.你想在谁附近求解,这个范围或者这个数值大多是题目已经给定了的(本例是根据输入的数值来计算的)2.令f x x*x*x-5*x*x+16*x-803.x1 X4.求f x1 5.对f x 求导,得到f1 x ,求f1 x1 6.调整x,使x x1-f x1 /f1 x1 7.符合条件x-x1 1e-5,转到第3步8.不符合条件x-x1 1e-5,则x1就是我们要求的实根*/#include #include //y x-5 *x+16 *x-80
float f float x return pow x,3 -5*pow x,2 +16*x-80 ;
float f1 float x return 3*pow x,2 -10*x+16 ; void main float x,x1,y1,y2;printf 请输入一个任意实数:X ;scanf %f,x ;printf 我可以帮你找到这个方程的解\n ;do x1 x;?? y1 f x ;?? y2 f1 x1 ;?? x x1-y1/y2; while fabs x-x1 1e-5 ;printf A root is %f\n,x1 ;
文档评论(0)