牛顿迭代法求平方根

xiaoxiao2021-02-28  129

可以用来求解方程的近似解.

比较常见的就是求解平方根。

比如求解x^2=a

原理:设一个点(猜想点)坐标为(x, x^2-a),求出该点在曲线上的切线与x轴的交点,求导可以得到直线斜率,然后可以写出直线方程,一直迭代下去可以得到近似解。

比如求x^2=2 猜想解为4。

#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #define mem(a) memset(a, 0, sizeof(a)) using namespace std; int main() { double x=4, ans=1; for(int i=1;i<=100000;++i) { ans=(2/x+x)/2; x=ans; } printf("%.10f\n", ans); return 0; }

结果: 1.4142135624 准确值:1.41421356237

转载请注明原文地址: https://www.6miu.com/read-45974.html

最新回复(0)