利用迭代法求 cos(x)-x=0的一个实根 (当x0-x1的绝对值小于0.000001时)
认为x1是方程的根
迭代步骤如下:(1)取x1初值为0.0; (2)x0=x1,把x1的值赋给x0;
(3)x1=cos(x0),求出一个新的x1;
(4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);
(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。
程序将输出root=0.739085
float x1=0.0, x0;
do
{
x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>=1e-6);
return x1;
为什么 x1类型为 float 或者 double
float 定义答案为 0.739085
double 定义答案为 0.739086
算出来的答案 会有 0.000001的误差
导致答案错误