牛顿迭代法
谭浩强c第四版218页12题~用牛顿迭代法求根。方程ax^3+bx^2+cx+d=0,系数a,b,c,d的值依次为1,2,3,4,由主函数输入。求x在1附近的一个实根。求出根后由主函数输出。
不懂牛顿迭代法~求解~
[此贴子已经被作者于2017-1-20 22:02编辑过]

程序代码:
#include <stdio.h>
int main(void)
{
double a = 1 , b = 2 , c = 3 , d = 4;
double jump = 0.000001; //这个是精度,可自行修改
double x = 1+jump;
double y = 0;
do {
x = x - jump; //x从1开始以jump的精度缩小
y = a*x*x*x+b*x*x+c*x+d; //公式结果赋予y
printf(" x的值等于:%lf,结果就等于:%lf\n",x,y);
}while(y>jump || x>jump); //如果y小于精度,则足够少,可以结束并打印结果,如果x小于精度,说明求不出结果,结束。
if (x < jump){ //判断一下,怕数据越界
printf("\n 最后需要设置x为:%lf,公式的结果就等于:%lf。\n",x,y); //最后输出结果。
}else{
printf("\n 最后x超出精度也求不出目标精度的结果。\n");
};
return 0;
}