求根的算法,除了迭代法,还有牛顿迭代法,用切线(一阶泰勒)近似,弦截法
设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行:
(1)选一个方程的近似根,赋给变量x0。
(2)将x0的值保存于变量x1(x1=x0),计算g(x1)并将结果存于变量x0(x0 = g(x1))
(3)当x0与x1的差的绝对值还不满足指定的精度要求时,回到步骤(2)。
x0=初始近似根;
do {
x1=x0;
x0=g(x1); // 按特定的方程计算新的近似根
} while ( fabs(x0-x1)>Epsilon);
return x0;
迭代法求方程x=cos(x)一个根的源程序为:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
float x0=0.0,x1;
do
{
x1=x0;
x0=cos(x1);
}while((fabs(x0-x1)<1e-6))
cout<<x0<<endl;
return 0;
}
标签:方程,近似,求根,迭代法,x1,x0
From: https://www.cnblogs.com/lxzbky/p/17180741.html