R語言
numericDeriv
位於 stats
包(package)。 說明
numericDeriv
對表達式的梯度進行數值計算。
用法
numericDeriv(expr, theta, rho = parent.frame(), dir = 1,
eps = .Machine$double.eps ^ (1/if(central) 3 else 2), central = FALSE)
參數
expr |
|
theta |
|
rho |
|
dir |
方向的數值向量,通常使用 |
eps |
正數,用作近似數值導數 |
central |
邏輯指示是否應計算中心劃分差異,即 。這些通常更準確,但需要對 進行更多評估。 |
細節
這是 C 函數 numeric_deriv
的前端,在編寫 R 擴展中對此進行了說明。
數值變量的類型必須是 double
而不是 integer
。
值
eval(expr, envir = rho)
的值加上矩陣屬性 "gradient"
。該矩陣的列是值相對於 theta
中列出的變量的導數。
例子
myenv <- new.env()
myenv$mean <- 0.
myenv$sd <- 1.
myenv$x <- seq(-3., 3., length.out = 31)
nD <- numericDeriv(quote(pnorm(x, mean, sd)), c("mean", "sd"), myenv)
str(nD)
## Visualize :
require(graphics)
matplot(myenv$x, cbind(c(nD), attr(nD, "gradient")), type="l")
abline(h=0, lty=3)
## "gradient" is close to the true derivatives, you don't see any diff.:
curve( - dnorm(x), col=2, lty=3, lwd=2, add=TRUE)
curve(-x*dnorm(x), col=3, lty=3, lwd=2, add=TRUE)
##
## IGNORE_RDIFF_BEGIN
# shows 1.609e-8 on most platforms
all.equal(attr(nD,"gradient"),
with(myenv, cbind(-dnorm(x), -x*dnorm(x))))
## IGNORE_RDIFF_END
作者
Saikat DebRoy saikat@stat.wisc.edu;
tweaks and eps
, central
options by R Core Team.
相關用法
- R naprint 調整缺失值
- R nls.control 控製 nls 中的迭代
- R na.fail 處理對象中的缺失值
- R na.contiguous 查找非 NA 的最長連續延伸
- R nobs 從擬合中提取觀測值數量
- R nlminb 使用 PORT 例程進行優化
- R nlm 非線性最小化
- R nextn 查找高度複合的數字
- R nls 非線性最小二乘法
- R na.action 不適用行動
- R naresid 調整缺失值
- R stlmethods STL 對象的方法
- R medpolish 矩陣的中值波蘭(穩健雙向分解)
- R summary.nls 總結非線性最小二乘模型擬合
- R summary.manova 多元方差分析的匯總方法
- R formula 模型公式
- R aggregate 計算數據子集的匯總統計
- R deriv 簡單表達式的符號和算法導數
- R kruskal.test Kruskal-Wallis 秩和檢驗
- R quade.test 四方測試
- R decompose 移動平均線的經典季節性分解
- R plot.stepfun 繪製階躍函數
- R alias 查找模型中的別名(依賴項)
- R qqnorm 分位數-分位數圖
- R eff.aovlist 多層方差分析的計算效率
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Evaluate Derivatives Numerically。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。