作业帮 > 数学 > 作业

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

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:数学作业 时间:2024/07/07 20:51:42
1 20 编写程序,用普通迭代法求方程f(x)=x+lgx-3.18=0的近似实根r,迭代初值为2.5,要求结果保留4位小数.
1 20 编写程序,用普通迭代法求方程f(x)=x+lgx-3.18=0的近似实根r,迭代初值为2.5,要求结果保留4位
我的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)这个公式