R语言的导数计算
求导通用法则
(u/v)'=(u'v-uv')/v
(uv)'=u'v+uv'
(cu)'=cu'
(u+v)'=u'+v'
dy/dt=dy/dx*dx/dt
D_{n}x_{n}=n!
1、stats包
dx <- deriv(y~x^3,"x")
x<-1:2 #给自变量x赋值
eval(dx) #运行求导计算
deriv(expr, name)函数时通常要传2个参数,第一参数expr就是原函数公式,用~号来分隔公式的两边,第二参数name用于指定函数的自变量。deriv()函数会返回一个表达式expression类型变量,再用eval()函数运行这个表达式得到就可得到计算结果。希望以函数的形式调用计算公式,那么你还需要传第三个参数func,并让func参数为TRUE
dx <- deriv(y~(sin(x))^10,"x",func=T) # 生成导数公式的调用函数
dx(4) # 以参数作为自变量,进行函数调用
dx<-deriv3(y~A*x^2,"x",func = TRUE) #二阶导数
2、mosaic包
library(mosaic)
D(sin(x) ~ x) #sinx求导,D()屏蔽了stats包中的D()
D(A * x^2~ x + x) #A*x的2次方的二阶导数
y <- D((sin(x))^10 ~ x) # (sinx)10次方求导
y(4)
单变量定积分
stats包
integrate(dnorm, -1.96, 1.96)
integrate(dnorm, -Inf, Inf)
## 自定义函数
integrand <- function(x) {1/((x+1)*sqrt(x))}
integrate(integrand, lower = 0, upper = Inf)
(u/v)'=(u'v-uv')/v
^2
(uv)'=u'v+uv'
(cu)'=cu'
(u+v)'=u'+v'
dy/dt=dy/dx*dx/dt
D_{n}x_{n}=n!
一元初等函数的导数计算公式
函数 原函数 导函数
常数函数 y=C y'=0
幂函数 y=x^n y'=n*x^(n-1)
指数函数 y=a^x y'=a^x*ln(a)
y=exp(1)^x y'=exp(1)^x
对数函数 y=log(x,base=a) y'=1/(x*ln(a)) (a>0,且a!=1,x>0)
y=ln(x) y'=1/x
正弦函数 y=sin(x) y'=cos(x)
余弦函数 y=cos(x) y'=-sin(x)
正切函数 y=tan(x) y'=sec(x)^2=1/cos(x)^2
余切函数 y=cot(x) y'=-csc(x)^2=1/sin(x)^2
正割函数 y=sec(x) y'=sec(x)*tan(x)
余割函数 y=csc(x) y'=-csc(x)*cot(x)
反正弦函数 y=arcsin(x) y'=1/sqrt(1-x^2)
反余弦函数 y=arccos(x) y'=-1/sqrt(1-x^2)
反正切函数 y=arctan(x) y'=1/(1+x^2)
反余切函数 y=arccot(x) y'=-1/(1+x^2)
反正割函数 y=arcsec(x) y'=1/abs(x)*(x^2-1)
反余割函数 y=arccsc(x) y'=-1/abs(x)*(x^2-1)
1、stats包
dx <- deriv(y~x^3,"x")
x<-1:2 #给自变量x赋值
eval(dx) #运行求导计算
deriv(expr, name)函数时通常要传2个参数,第一参数expr就是原函数公式,用~号来分隔公式的两边,第二参数name用于指定函数的自变量。deriv()函数会返回一个表达式expression类型变量,再用eval()函数运行这个表达式得到就可得到计算结果。希望以函数的形式调用计算公式,那么你还需要传第三个参数func,并让func参数为TRUE
dx <- deriv(y~(sin(x))^10,"x",func=T) # 生成导数公式的调用函数
dx(4) # 以参数作为自变量,进行函数调用
dx<-deriv3(y~A*x^2,"x",func = TRUE) #二阶导数
2、mosaic包
library(mosaic)
D(sin(x) ~ x) #sinx求导,D()屏蔽了stats包中的D()
D(A * x^2~ x + x) #A*x的2次方的二阶导数
y <- D((sin(x))^10 ~ x) # (sinx)10次方求导
y(4)
单变量定积分
stats包
integrate(dnorm, -1.96, 1.96)
integrate(dnorm, -Inf, Inf)
## 自定义函数
integrand <- function(x) {1/((x+1)*sqrt(x))}
integrate(integrand, lower = 0, upper = Inf)
评论
发表评论