用牛顿迭代法求方程在1.5附近的根:a*x*x*x+b*x*x+c*x+d=0.
从键盘上输入a,b,c,d,计算x的值。迭代公式如下图所示:
例:
(1)输入:2.0,-4,3,-6 输出:x=2.00
(2)输入:4.0,-1,3,-6.0 输出:x=1.00
#include<stdio.h>
#include<math.h>
#define MIN pow(10,-5)
int main(void)
{
double a,b,c,d,fx,fx1,xn=1.5,xn1=1.5;
scanf("%lf,%lf,%lf,%lf",&a,&b,&c,&d);
do{
xn=xn1;
fx=a*pow(xn,3)+b*pow(xn,2)+c*xn+d;
fx1=3*a*pow(xn,2)+2*b*xn+c;
xn1=xn-fx/fx1;
}
while(fabs(xn-xn1)>=MIN);
printf("x=%.2lf",xn1);
return 0;
}