R开发(part5)--导数计算
生活随笔
收集整理的這篇文章主要介紹了
R开发(part5)--导数计算
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
學習筆記,僅供參考,有錯必糾
參考自:《R的極客理想》-- 張丹
文章目錄
- R開發(fā)
- 導數(shù)計算
- 一階導
- 二階導
- 偏導數(shù)
R開發(fā)
導數(shù)計算
一階導
通過R語言可以使用deriv函數(shù)直接進行導數(shù)的計算,比如要計算y=x3y=x^3y=x3的導數(shù),根據導數(shù)計算公式,用于手動計算的變形結果為y′=3x2y'=3x^2y′=3x2,當x=1x=1x=1時,y′=3y'=3y′=3,當x=2x=2x=2時,y′=12y'=12y′=12。
R>dx <- deriv(y ~ myx^3, "myx") R>dx expression({.value <- myx^3.grad <- array(0, c(length(.value), 1L), list(NULL, c("myx"))).grad[, "myx"] <- 3 * myx^2attr(.value, "gradient") <- .grad.value }) R>#查看dx的變量類型 R>mode(dx) [1] "expression" R>#給自變量myX賦值 R>myx <- 1:2 R>#原函數(shù)以及求導結果 R>eval(dx) [1] 1 8 attr(,"gradient")myx [1,] 3 [2,] 12
二階導
#二階導 dx <- deriv3(y ~ a*x^3 + b*x^2 + c, "x", func = function(x, a = 2, b = 1, c = 3) {}) #通過func參數(shù),指定常數(shù)值dx(2) #輸出 [1] 23 attr(,"gradient")x [1,] 28 attr(,"hessian") , , xx [1,] 26
偏導數(shù)
對f(x,y)=2x2+y+3xy2f(x, y) = 2x^2 + y + 3xy^2f(x,y)=2x2+y+3xy2中的x和y分別求偏導數(shù):
R>fxy <- expression(2*x^2 + y + 3*x*y^2) R>dxy <- deriv(fxy, c("x", "y"), func = TRUE) R>dxy function (x, y) {.expr4 <- 3 * x.expr5 <- y^2.value <- 2 * x^2 + y + .expr4 * .expr5.grad <- array(0, c(length(.value), 2L), list(NULL, c("x", "y"))).grad[, "x"] <- 2 * (2 * x) + 3 * .expr5.grad[, "y"] <- 1 + .expr4 * (2 * y)attr(.value, "gradient") <- .grad.value } R>dxy(1, 1) #f(1,1)為6, x的偏導數(shù)為7, y的偏導數(shù)為7 [1] 6 attr(,"gradient")x y [1,] 7 7總結
以上是生活随笔為你收集整理的R开发(part5)--导数计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谷歌涉嫌违反印度反垄断指令,遭监管机构调
- 下一篇: R开发(part6)--pryr包