牛顿迭代法求方程的根

来源:百度知道 编辑:UC知道 时间:2024/05/31 23:21:52
用迭代法求x3+9.2x2+16.7x+4=0在x=0附近的实根,迭代精度10-5(这里似乎不能打上标这是10的-5次 凑合看吧不好意思)
刚刚接触C语言不懂得太多 希望指点 谢谢
谢谢你啊 我自己写出来了一个 运行对了 呵呵
#include<math.h>
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);
}

用^即可表示上标,10^(-5)可以表示10的-5次方。

#include <stdio.h>
#include <math.h>

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;
}