有沒有簡單的方法來計算數據給出的非線性函數的導數?在r中計算數據函數的導數
例如:
x = 1/c(1000:1)
y = x^-1.5
ycs = cumsum(y)
plot (x, ycs, log="xy")
如何計算由'x'和'ycs'給出的函數的導數函數?
有沒有簡單的方法來計算數據給出的非線性函數的導數?在r中計算數據函數的導數
例如:
x = 1/c(1000:1)
y = x^-1.5
ycs = cumsum(y)
plot (x, ycs, log="xy")
如何計算由'x'和'ycs'給出的函數的導數函數?
也打算提出一個平滑樣條擬合的例子,然後預測導數。在這種情況下,結果與@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)
函數的導數是dy/dx,它可以用Δy/Δx來近似,即「y在x上的變化的變化」。這可以作爲R寫成
ycs.prime <- diff(ycs)/diff(x)
現在ycs.prime
包含在每個x
的近似函數的導數:但它是長度999的向量,所以將需要縮短x
(即使用x[1:999]
或x[2:1000]
)進行任何分析或繪圖時。
除非您非常小心,否則從原始數據生成衍生產品具有風險。這個過程稱爲「錯誤乘數」並非沒有任何意義。除非您知道數據的噪音含量,並且在分化之前採取一些行動(例如樣條線)來消除噪音,否則確實會產生令人恐懼的曲線。
在此示例中,您的期望結果究竟是什麼? –
所有的答案都假設你實際上並不知道函數的基礎類型。如果你知道模型,你可以簡單地做非線性迴歸。 – Roland