ux(i) = u(i)-u(i-1)
ux(i) = u(i+1)-u(i)
ux(i) = (u(i+1)-u(i-1))/2
简单的方法是用相邻点的差分代替导数:float x[200],y[200],z[200]
float dx,dy
int i
// 输入 x[200],y[200]
z[0] = 0.0
for (i=0i<199i++){
dx = x[i+1] - x[i]
dy = y[i+1] - y[i]
if (dx == 0.0) { printf("I can not deal with dx==0.0\n")exit(1)}
z[i] = dy / dx
}
z[199] = z[198]
// 输出 z[]
复杂一点:
拟合离散点。如果是时间序列,考虑顺序,如果是非时序不考虑顺序。得拟合曲线。再计算拟合曲线的导数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)