下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 牛顿迭代法

牛顿迭代法.doc

牛顿迭代法

倒在脚边的过去78
2017-09-01 0人阅读 举报 0 0 暂无简介

简介:本文档为《牛顿迭代法doc》,可适用于IT/计算机领域

牛顿迭代法牛顿迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=用某种数学方法导出等价的形式x(n)=g(x(n))=x(n)–f(x(n))f‘(x(n))然后按以下步骤执行:()选一个方程的近似根赋给变量x()将x的值保存于变量x然后计算g(x)并将结果存于变量x()当x与x的差的绝对值还小于指定的精度要求时重复步骤()的计算。若方程有根并且用上述方法计算出来的近似根序列收敛则按上述方法求得的x就认为是方程的根。例:已知f(x)=cos(x)x。x的初值为,用牛顿法求解方程f(x)=的近似值要求精确到E,。算法分析:f(x)的Newton代法构造方程为:x(n)=xn(cos(xn)xn)(sin(xn))。#include<stdioh>doubleF(doublex)要求解的函数doubleF(doublex)要求解的函数的一阶导数函数doubleNewton(doublex,doublee)通用Newton迭代子程序intmain(){doublex=doublee=Eprintf("x=fn",Newton(x,e))getchar()return}doubleF(doublex)要求解的函数{returncos(x)x}doubleF(doublex)要求解的函数的一阶导数函数{returnsin(x)}doubleNewton(doublex,doublee)通用Newton迭代子程序{doublexdo{x=xx=xF(x)F(x)}while(fabs(xx)>e)returnx若返回x和x的平均值则更佳}例:用牛顿迭代法求方程x^x=要求精确到E,。算法分析:取x=和x=f(x)的Newton代法构造方程为:x(n)=xn(xn*xn–*xn)(*xn)#include<stdioh>doubleF(doublex)要求解的函数doubleF(doublex)要求解的函数的一阶导数函数doubleNewton(doublex,doublee)通用Newton迭代子程序intmain(){doublexdoublee=Ex=printf("x=fn",Newton(x,e))x=printf("x=fn",Newton(x,e))getchar()return}doubleF(doublex)要求解的函数{returnx*x*x}doubleF(doublex)要求解的函数的一阶导数函数{return*x}doubleNewton(doublex,doublee)通用Newton迭代子程序{doublexdo{x=xx=xF(x)F(x)}while(fabs(xx)>e)return(xx)*}具体使用迭代法求根时应注意以下两种可能发生的情况:()如果方程无解算法求出的近似根序列就不会收敛迭代过程会变成死循环因此在使用迭代算法前应先考察方程是否有解并在程序中对迭代的次数给予限制()方程虽然有解但迭代公式选择不当或迭代的初始近似根选择不合理也会导致迭代失败。选初值时应使:|df(x)dx|<,|df(x)dx|越小收敛速度越快!用牛顿迭代法求方程x*x*x*x*x*x=在附近的实根程序如下:#include<mathh>#include<stdioh>floatf(floatx){return(x*x*x*x*x*x)}floatf(floatx){return(*x*x*x)}voidmain(){floatx=,xclrscr()do{x=xx=xf(x)f(x)}while(fabs(xx)>)printf("x=fn",x)}

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/4

牛顿迭代法

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利