1 20 编写程序,用普通迭代法求方程f(x)=x+lgx-3.18=0的近似实根r,迭代初值为2.5,要求结果保留4位小数。

帮帮我吧 大侠们
2025-02-24 01:51:31
推荐回答(1个)
回答1:

我的c语言运行结果是2.7419,不同版本可能会有差异,但不影响正确性
#include
#include
void main()
{
float x0,x1;
x0=2.5;
x1=x0-(x0+log10(x0)-3.18)/(1+1/(x0*log(10)));
do
{
x0=x1;
x1=x0-(x0+log10(x0)-3.18)/(1+1/(x0*log(10)));
}
while(fabs(x0-x1)>1e-4);
printf("x=%10.4f\n",x1);
}
这个题还可以用牛顿切线法求,把float型化为double型就行了,换成x=x-f(x)/f′(x)这个公式