牛顿迭代法
谭浩强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编辑过]
