回 帖 发 新 帖 刷新版面

主题:求解释!求大虾对此段代码进行注解,小弟不甚感激!

今天C语言实验,我选的题目是
编写一个子程序NewTon(float x0,float eps,float x1)。它的功能是用牛顿迭代法求
    f(x)= x*x*x-2x*x+4x+1在x=0附近的一个实根。
唉~~由于小弟平时学习不认真,对编程不是多么滴了解,从网上找来如下代码,貌似可以解决该问题!但是今天想学习学习,求大虾给没注解的代码注解下,让小弟能知道每段代码什么意思!小弟不甚感激!



#include<stdio.h> 
#include<math.h> 

double value(double a,double b,double c,double d,double x) 

return (a*x*x*x+b*x*x+c*x+d); 


double daovalue(double a,double b,double c,double d,double x) 

return (3*a*x*x+2*b*x+c); 


int main() 

double x1=0,x2,a,b,c,d; 
printf("Please insert the value of a,b,c,d:");//a,b,c,d赋值
 
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
 printf("Please insert the intial value of x:"); //输入X的初值.
scanf("%lf",&x2); 
x1=x2-value(a,b,c,d,x2)/daovalue(a,b,c,d,x2); 
while(fabs(x1-x2)>=10e-6) 

x2=x1; 
x1=x2-value(a,b,c,d,x2)/daovalue(a,b,c,d,x2); 

printf("%lf\n",x1); 
return 0; 
}

回复列表 (共1个回复)

沙发


[code=c]
#include<stdio.h> 
#include<math.h> 
//构造函数方程式
double value(double a,double b,double c,double d,double x) 

return (a*x*x*x+b*x*x+c*x+d); 

//函数求导方程式
double daovalue(double a,double b,double c,double d,double x) 

return (3*a*x*x+2*b*x+c); 


int main() 

double x1=0,x2,a,b,c,d; 
printf("Please insert the value of a,b,c,d:");//a,b,c,d赋值
 
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
 printf("Please insert the intial value of x:"); //输入X的初值.
scanf("%lf",&x2); 

//迭代求根
x1=x2-value(a,b,c,d,x2)/daovalue(a,b,c,d,x2); 
while(fabs(x1-x2)>=10e-6) 

x2=x1; 
x1=x2-value(a,b,c,d,x2)/daovalue(a,b,c,d,x2); 

printf("%lf\n",x1); 
return 0; 
}[/code]

我来回复

您尚未登录,请登录后再回复。点此登录或注册