牛顿迭代法求方程的根用迭代法求x3+9.2x2+16.7x+4=0在x=0附近的实根,迭代精度10-5(这里似乎不能打上标这是10的-5次 凑合看吧不好意思)刚刚接触C语言不懂得太多 我自己写出来了一个 运行对了
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 08:38:12
牛顿迭代法求方程的根用迭代法求x3+9.2x2+16.7x+4=0在x=0附近的实根,迭代精度10-5(这里似乎不能打上标这是10的-5次 凑合看吧不好意思)刚刚接触C语言不懂得太多 我自己写出来了一个 运行对了
牛顿迭代法求方程的根
用迭代法求x3+9.2x2+16.7x+4=0在x=0附近的实根,迭代精度10-5(这里似乎不能打上标这是10的-5次 凑合看吧不好意思)
刚刚接触C语言不懂得太多
我自己写出来了一个 运行对了 呵呵
#include
main()
{
float f,fd,x,x1;
x=0;
do
{
f=x*x*x+9.2*x*x+16.7*x+4;
fd=3*x*x+18.4*x+16.7;
x1=x-f/fd;
x=x1;
} while(fabs(f/fd)>1e-5);
printf("x=%.6f",x1);
}
牛顿迭代法求方程的根用迭代法求x3+9.2x2+16.7x+4=0在x=0附近的实根,迭代精度10-5(这里似乎不能打上标这是10的-5次 凑合看吧不好意思)刚刚接触C语言不懂得太多 我自己写出来了一个 运行对了
用^即可表示上标,10^(-5)可以表示10的-5次方.
#include
#include
double f( double x )
{
return x * x * x + 9.2 * x * x + 16.7 * x + 4;
}
double fdx( double x )
{
return 3 * x * x + 18.4 * x + 16.7;
}
int main( )
{
int t1 = 0, t2 = 1;
double x[ 2 ], ep = 1e-5;
x[ 0 ] = 0;
do
{
t1 = 1 - t1;
t2 = 1 - t2;
x[ t1 ] = x[ t2 ] - f( x[ t2 ] ) / fdx( x[ t2 ] );
} while( fabs( x[ t1 ] - x[ t2 ] ) > ep );
printf("%lf\n", x[ t1 ]);
return 0;
}