一元三次方程 c语言 牛顿迭代,C语言编程——内容:用牛顿迭代法求一元三次方程的根.要求:由主函数调用求根子函数,谢谢各位了...

共回答了19个问题采纳率:89.5%

牛顿迭代法

牛顿迭代法又称牛顿切线法,它采用以下方法求根:先任意设定一个与真实的根接近的值x0作为第一个近似根,由x0求出f(x0),过(x0,f(x0))点做f(x)的切线,交x轴于x1,把它作为第二次近似根,再由x1求出f(x1),再过(x1,f(x1))点做f(x)的切线,交x轴于x2,再求出f(x2),再作切线……如此继续下去,直到足够接近真正的x为止.

其中f'(X0)是函数在X0处的斜率,也就是在X0处的导数.

代码如下:

#include

#include

float f(float a,float b,float c,float d,float x)

{

float f;

f=((a*x+b)*x+c)*x+d;

return f;

}

float f1(float a,float b,float c,float x)

{

float f;

f=(x*3*a+2*b)*x+c;

return f;

}

float root(float a,float b,float c,float d)

{

float x0,x1=1;

do

{

x0=x1;

x1=x0-f(a,b,c,d,x0)/f1(a,b,c,x0);

}while(fabs(x1-x0)>=1e-6);

return x0;

}

void main()

{

float a,b,c,d,x;

printf("input four float numbers:n");

scanf("%f%f%f%f",&a,&b,&c,&d);

x=root(a,b,c,d);

printf("%.1fX^3+%.1fX^2+%.1fX+%.1f=0 its root near x=1.5 is :%.4fn",a,b,c,d,x);

getch();

}

1年前

9

你可能感兴趣的:(一元三次方程,c语言,牛顿迭代)