可以用来求解方程的近似解.
比较常见的就是求解平方根。
比如求解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