计算方法牛顿迭代法

周三3-5节 水利三班 张同庆 2015301580072


题目

求1+3*x-x*x*x=0在x附近满足精度要求e下的根
(x,e均为输入,这里输入数据为x=2.0,e=0.0001)



程序源码

#include
#include

double f(double x)
{
return (1.0+3.0*x-x*x*x);
}

double g(double x)
{
return (3.0-3.0*x*x);
}

double h(double y,double t)
{
double x1,x0;
int n=0;
x0=y;
printf("x%d=%lf\n",n,x0);
while (fabs(f(x0))>t)
{
x1=x0-f(x0)/g(x0);
if( fabs(x1-x0){
y=x1;
printf("x%d=%lf\n",n+1,x1);
return y;
}
else
{
x0=x1;
n++;
printf("x%d=%lf\n",n,x0);
}
}
}

int main()
{
double x,e;
printf("输入初始迭代值x0:");
scanf("%lf",&x);
printf("输入迭代要求的精度:");
scanf("%lf",&e);
e=fabs(e);
printf("%lg旁边满足精度要求的根是%lf",x,h(x,e));
return 0;
}





程序分步数据

x0=2.000000
x1=1.888889
x2=1.879452
x3=1.879385
2旁边满足精度要求的根是1.879385

相关文档
最新文档