牛顿迭代

牛顿迭代:
例题为求平方根:
若x*x=n,求x;
设f(x)=x*x-n;
画图可得;
当xn这点做切线,切向处与x轴相交的x(n+1)接近与x的值;
当x(n+1)再做切线时,再接近,最终,当xn-x(n+1)<0.00001 则近似与x;
f(xn)/(xn-x(n+1))=f(x)'
x(n+1)=xn-f(xn)/f(xn)'
将f(x)带入;
x(n+1)=1/2*(xn+n/xn)

//牛顿迭代
#include<stdio.h>
#include<math.h>
int main(){
int n=4;
int coun=0;
double xn=n+1;
double newxn=n;
while(fabs(xn-newxn)>0.00001)//精度小于则执行
    {
    xn=newxn;
    newxn=0.5*(xn+n/xn);
    coun++;
}
printf("%lf  %d\n",xn,coun);
return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前段时间,工作中遇到了一个难题,网上查了很多资料也没有明确的解决方案,后来自己想到一种解决方法,决定分享出来。下面...
    oo的布丁阅读 5,422评论 0 4
  • 因为不是科班出身,所以即使编程一段时间也时常感觉自身基础知识非常不扎实,于是在最近开始补习算法和计算机理论的基础知...
    Originalee阅读 8,496评论 2 4
  • 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method)。...
    xbinng阅读 2,636评论 0 0
  • 如何用牛顿迭代法求一个数的平方根(立方根)   对于  对于该方程的求解,可以用牛顿迭代法求近似解   设r是f(...
    Yankee_13阅读 1,242评论 0 1
  • 整体对比是参考的这篇文章https://www.cnblogs.com/lyr2015/p/9010532.htm...
    yesski阅读 798评论 0 0