C牛顿迭代法求根
问题描述:
C牛顿迭代法求根
//牛顿迭代法求2*x*x*x-4.5*x*x+3*x-6=0 在(-10,10)之间的根.写出程序.Xn+1=Xn-f(Xn)/f'(Xn),
#include
#include
float f(float x)
{
return(2*x*x*x-4.5*x*x+3*x-6);
}
float f1(float x)
{
return(6*x*x-9*x-3);
}
void main()
{
float x1=0,x;
do
{
x=x1;
x1=x-f(x)/f1(x);
}
while(fabs(x1)
答
x=0,f(x)=-6,f1(x)=-3,x1=-2,
x=-2,f(x)=-46,f1(x)=39,f(x)/f1(x)=-1.179
因此,在第一次循环是就会跳出.把fabs(f(x)/f1(x))>1e-5改成fabs(f(x)/f1(x))