牛顿迭代法
谭浩强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; }