问题描述
编写用牛顿迭代法求方程的根。方程ax3+bx2+cx+d=0,系数a,b,c,d由主函数输出。求x在1附近的一个 实根,由主函数输出。牛顿的迭代法公式是:x = x0-f(x0)/f’(x0)
代码如下
#include<stdio.h>
#include<math.h>
float fun(double a, double b, double c, double d)
{
float x0 = 2.0;
float x;
x = x0 - ((a * pow(x0, 3) + b * pow(x0, 2) + c * x0 + d) / (a * pow(x0, 3) + b * pow(x0, 2) + c * x0 + d));
return x;
}
int main()
{
float a, b, c, d;
printf("请输入abcd的值:\n");
scanf_s("%f %f %f %f", &a, &b, &c, &d);
printf("%f", fun(a, b, c, d));
}
标签:方程,pow,float,牛顿,double,迭代法,x0
From: https://www.cnblogs.com/drip3775/p/17353657.html