Python教程/练习题

牛顿迭代法计算平方根(Java,Python实现)

2016-12-28  本文已影响652人  mmmwhy

牛顿法的作用是使用迭代的方法来求解函数方程的根。简单地说,牛顿法就是不断求取切线的过程。更多见:李飞阳

数学推导

假设c为原数,t为c的根数。

$$ t^2 \quad = \quad c$$
$$2t^2 \quad = \quad c + \quad t^2$$
$$2t \quad = \quad \frac{c}{t}+ \quad t$$
$$t \quad = \quad \frac{\frac{c}{t} + t}{2.0}$$

Java代码实现

package test;

import java.io.IOException;
import java.util.Scanner;

public class QuickFindUF {
    public static double sqrt (double c){
        if(c<0)
            return Double.NaN;
        double err = 1e-15;
        double t = c;
        while(Math.abs(t-c/t)>err)
            t = (c/t+t)/2.0;
        return t;
    }
    public static void main(String args[]) throws IOException{
        Scanner sc = new Scanner(System.in);
        double a = sqrt(sc.nextDouble());       
        System.out.println(a);
    }
}

Python代码实现

c = input()
err = 1e-15
t = c
while abs(t - c/t)>err:
    t = (c/t+t)/2.0
print(t)

Python代码真心简洁啊

上一篇下一篇

猜你喜欢

热点阅读