c语言算法中的数学问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 03:56:29
用迭代法求方程x=cosx的根 要求误差小于10的-6次幂

提供的算法是:(1)x1=0,(2)x2=cosx1
(3)如果fabs(x2-x1)>10e-6,则x1=x2,重复执行步骤(2);
否则,计算结束,输出结果

即:
x1=0; x2=cos(x1);
while(fabs(x2-x1)>1e-6)
{x1=x2;x2=cos(x1);}

我不明白这个算法有和数学依据,希望有人能帮忙解答。谢谢。我可以追加悬赏。

数形结合可以看出方程在0到pi/2之间有一根,又有利莆希茨条件可知原方程在[0,pi/2]是收敛的,故有上面的迭代格式。迭代法主要是保证在迭代区间方程收敛,否则程序无法终止

您好 您要用计算机解决精确地连续数学问题是不可能的,因为计算机不能储存并表示所有数,比如循环小数,有效数字过长的数等等

这个算法就是求出结果的近似值。

fabs(x2-x1)>1e-6
这一限定条件可以看出求的是近似值

题目不是说的很清楚么,用迭代法求方程的根,你上网查下迭代法求非线性方程根的原理就知道了.