牛顿迭代法求方程近似根
程序员文章站
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;
}
上一篇: Spring IoC是如何进行依赖注入的
下一篇: Couchbase学习笔记(1)——概述