牛顿迭代法求方程根

#include <bits/stdc++.h>
using namespace std;
float solution(float a,float b,float c,float d);
int main()
{
	float a,b,c,d,x;
	printf("请输入方程的系数: ");
	scanf("%f %f %f %f",&a,&b,&c,&d);
	x=solution(a,b,c,d);
	printf("所求方程的根为x=%f",x);
}
float solution(float a,float b,float c,float d){
	float x0,x=1.5,f,fd,h;
	do{
		x0=x;
		f=a*x0*x0*x0+b*x0*x0+c*x0+d;
		fd=3*a*x0*x0+2*b*x0+c;
		h=f/fd;
		x=x0-h;
	}while(fabs(x-x0)>=1e-5);
	return x;
}


版权声明:本文为sanyanhualing原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。