好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

牛顿迭代法求平方根.doc

4页
  • 卖家[上传人]:s9****2
  • 文档编号:549887034
  • 上传时间:2022-12-19
  • 文档格式:DOC
  • 文档大小:61.50KB
  • / 4 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 牛顿迭代法求平方根求n的平方根,先假设一猜测值X0 = 1,然后根据以下公式求出X1,再将X1代入公式右边,继续求出X2…通过有效次迭代后即可求出n的平方根,Xk+1                              (迭代公式)简单推导假设f(x)是关于X的函数:求出f(x)的一阶导,即斜率:简化等式得到:然后利用得到的最终式进行迭代运算直至求到一个比较精确的满意值,为什么可以用迭代法呢?理由是中值定理(Intermediate Value Theorem):如果f函数在闭区间[a,b]内连续,必存在一点x使得f(x) = c,c是函数f在闭区间[a,b]内的一点 我们先猜测一X初始值,例如1,当然地球人都知道除了1本身之外任何数的平方根都不会是1然后代入初始值,通过迭代运算不断推进,逐步靠近精确值,直到得到我们主观认为比较满意的值为止例如要求768的平方根,因为252 = 625,而302 = 900,我们可先代入一猜测值26,然后迭代运算,得到较精确值:27.7128回到我们最开始的那个”莫名其妙”的公式,我们要求的是N的平方根,令x2 = n,假设一关于X的函数f(x)为:f(X) = X2 - n求f(X)的一阶导为:f'(X) = 2X代入前面求到的最终式中:Xk+1 = Xk - (Xk2 - n)/2Xk化简即得到我们最初提到的那个求平方根的神奇公式了:用泰勒公式推导我之前介绍过在The Art and Science of C一书中有用到泰勒公式求平方根的算法,其实牛顿迭代法也可以看作是泰勒公式(Taylor Series)的简化,先回顾下泰勒公式:仅保留等式右边前两项:令f(X0+ε) = 0,得到:再令X1 = X0 + ε0,得到ε1…依此类推可知:转化为:引申从推导来看,其实牛顿迭代法不仅可以用来求平方根,还可以求立方根,甚至更复杂的运算。

      同样,我们还可以利用pascal语言来实现下那个最简单的求平方根的公式(尽管我们可以直接用sqrt()完成)program asd (input,output);vara,x,n,i:real;beginwriteln('Please input a!');read(a);x:=1;n:=1000;i:=1;while i<=n dobeginx:=(x+(a/x))/2;i:=i+1;end;writeln(x:10:3);readln;end.2007年赣州市信息学奥赛高中组上机测试题第2题:编程求平方根(15分)任给常数b,编程求b的算术平方根 ,要求准确到小数点后3位,注意不能调用高级语言系统的开平方根函数输入输出样例:输入:b=7 输出:2.646确定迭代关系式: x:=(x+(b/x))/2; program asd (input,output);vara,x,n,i:real;beginwriteln('Please input b!');read(b);x:=1;n:=1000;i:=1;while i<=n dobeginx:=(x+(b/x))/2;i:=i+1;end;writeln(x:10:3);readln;end.。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.