簡體   English   中英

一組點的導數

[英]Derivative of a set of points

因此,我知道您可以通過執行以下操作來找到類似“ x ^ 3-6 * x ^ 2”的衍生物: D(expression(x^3-6*x^2), 'x') ,但是如果我需要找到值列表的一階導數最大值,例如:

value <- c(610,618,627,632,628,634,634,628,634,642,637,643,653,666,684,717,787,923,1197,1716,2638,4077,5461,7007,8561,9994,11278,12382,13382,14252)

這些值是y坐標,x坐標從1開始並以1遞增。即,第一個點是(1,610),第二個點是(2,618),等等。-謝謝

考慮使用來自CRAN的numDerive軟件包。 它具有一個函數grad ,該函數可計算某個點的函數導數。 例:

f = function(x) x^3 - 6*x^2
library(numDeriv)
grad(f, 1) #derivative of f at x=1

要使用值列表解決問題,請使用for循環:

xval <- c(YOUR VALUES HERE)
xval.derivatives <- c() #empty vector to hold
for(i in 1:length(xval)) xval.derivatives[i] <- grad(f,xval[i])

實用包中的gradient函數根據值向量計算導數。

library(pracma)

value <- c(610,618,627,632,628,634,634,628,634,642,637,643,653,666,684,717,787,923,1197,1716,2638,4077,5461,7007,8561,9994,11278,12382,13382,14252)
value_prime <- pracma::gradient(value, h1 = 1)
plot(value_prime)

在此處輸入圖片說明

或者,擬合樣條曲線。

spl <- smooth.spline(1:length(value), y=value)
pred <- predict(spl)
pred.prime <- predict(spl, deriv=1)
plot(pred.prime, type = 'b')

在此處輸入圖片說明

如果您對高階導數感興趣,請檢查pspline軟件包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM