牛顿迭代法
谭浩强c第四版218页12题~用牛顿迭代法求根。方程ax^3+bx^2+cx+d=0,系数a,b,c,d的值依次为1,2,3,4,由主函数输入。求x在1附近的一个实根。求出根后由主函数输出。
不懂牛顿迭代法~求解~
#include<stdio.h> #include<math.h> #define K 1e-5 double fun(int a,int b,int c,int d,double x) { return (((a*x+b)*x+c)*x+d); } double fun_2(int a,int b,int c,double x) { return (3*a*x*x+2*b*x+c); } int main() { int a=1; int b=2; int c=3; int d=4; double x=1; double y1=0; double y2=0; double bb=0; do { y1=fun(a,b,c,d,x); y2=fun_2(a,b,c,x); bb=y1-y2*x; x=-bb/y2; }while (fabs(y1)>K); printf("%lf\n",x); return 0; }
[此贴子已经被作者于2017-1-21 21:32编辑过]