R_U*_*ser 4 r function derivative
有没有一种简单的方法来计算数据给出的非线性函数的导数?
例如:
x = 1 / c(1000:1)
y = x^-1.5
ycs = cumsum(y)
plot (x, ycs, log="xy")
Run Code Online (Sandbox Code Playgroud)
如何根据'x'和'cirs'给出的函数计算导数函数?
Mar*_*box 11
还将建议一个平滑样条拟合的例子,然后预测导数.在这种情况下,结果与@dbaupp描述的差异计算非常相似:
spl <- smooth.spline(x, y=ycs)
pred <- predict(spl)
plot (x, ycs, log="xy")
lines(pred, col=2)
ycs.prime <- diff(ycs)/diff(x)
pred.prime <- predict(spl, deriv=1)
plot(ycs.prime)
lines(pred.prime$y, col=2)
Run Code Online (Sandbox Code Playgroud)
函数的导数是dy/dx,其可以近似为Δy/Δx,即"y随x的变化而变化".这可以写成R as
ycs.prime <- diff(ycs)/diff(x)
Run Code Online (Sandbox Code Playgroud)
现在ycs.prime包含每个函数导数的近似值x:但它是一个长度为999的向量,因此在进行任何分析或绘图时,您需要缩短x(即使用x[1:999]或x[2:1000]).
除非您非常小心,否则从原始数据生成衍生产品是有风险的.这个过程被称为"误差乘数"并非一无是处.除非您知道数据的噪声含量并采取一些措施(例如样条曲线)来消除差分之前的噪声,否则您最终可能会得到一条可怕的曲线.
| 归档时间: |
|
| 查看次数: |
13452 次 |
| 最近记录: |