题目描述
用迭代法求 平方根
公式:求a的平方根的迭代公式为: X[n+1]=(X[n]+a/X[n])/2 要求前后两次求出的差的绝对值少于0.00001。 输出保留3位小数
示例
输入格式
X
输出格式
X的平方根
样例输入
4
样例输出
2.000
解析
- 迭代法:迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。迭代算法是用计算机解决问题的一种基本方法,它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值,迭代法又分为精确迭代和近似迭代。比较典型的迭代法如“二分法”和"牛顿迭代法”属于近似迭代法。
- 首先,a是我们要计算的该数的平方根
- 假设x1=a/2,(该数的一半)
- x2则代入公式计算
- 根据x1-x2差的绝对值进行迭代,直到小于0.00001,输出x2,即为所求的值。
代码
from math import fabs
a = float(input())
x1 = a/2
x2 = (x1+a/x1)/2
while(fabs(x1-x2) >= 0.00001):
x1 = x2
x2 = (x1+a/x1)/2
print('{:.3f}'.format(x2))