欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

牛顿迭代法求方程近似根

程序员文章站 2024-03-21 23:22:58
...

题目:用牛顿迭代法求解3*x*x*x-2*x*x-16=0的近似解。

#include<stdio.h>
#include<math.h>
#define E 1e-8
double hs(double x) {
	return(3*x*x*x-2*x*x-16);
//原函数
}
double dhs(double x) {
	return(9*x*x-4*x);
//导函数
}
int main() {
	double x1 = 1.0, x2;
	x2 = x1 + 1.0;
	while(fabs(x2 - x1) > E) {//无论怎么变,只要x1和x2能进入循环,就可以完成求解,即x2!=x1.
		x1 = x2;
		x2 = x1 - hs(x1) / dhs(x1);
	}//此处是用泰勒展式保留前两项推倒得出的。读者可查找相关文献详细理解之。
	printf("方程:3*x*x*x-2*x*x-16=0\n");
	printf("解得:x=%.4lf\n", x2);
	return 0;
}
牛顿迭代法求方程近似根