求导是数学计算中的一个计算方法,导数定义为:当自变量的增量趋于零时,因变量的增量与自变量的增量之商的极限。
计算方法:
#include "stdio.h"
#include "math.h"
#define MAXITER 10000 //最大的迭代次数
#define alpha 0.8 //变化率
#define E 0.0000001 //误差
double fun(double x)
{
double y;
y = 2*x*x; //函数为 y = 2*x*x
return y;
}
void main()
{
int iter;
double x;
double dx, dy;
double d_old, d_new;
printf("请输入点x的值:");
scanf("%lf", &x);
iter = 0;
dx = 0.01;
dy = fun(dx+x)-fun(x);
d_old = dy/dx;
while(iter<MAXITER)
{
iter++;
dx = alpha*dx;
dy = fun(dx+x)-fun(x);
d_new = dy/dx;
if(fabs(d_new-d_old)<E)
break;
d_old = d_new;
}
printf("迭代次数为%d\n点%lf处的导数为:%lf\n", iter, x, d_new);
}
运行结果: