第二类修正贝塞尔函数的导数是否有特定的R函数?
Is there a specific R function for the derivative of modified Bessel function of the second kind?
我的问题如标题所述,我正在尝试使用第二类修正贝塞尔函数的导数(相对于v
)K_v(x)
但没有成功.
我在其中一篇文档中读到 besselDK(v,x)
可以用作导数,显然这不是 R 中公认的函数。我尝试使用导数的扩展,即
besselK(v,x)*(1- (1/2v) -log(e*x/2v))
但这也无法为我提供正确的情节。我正在尝试绘制一个包含这个的函数。
P <- function(x) (1/2)*log(exp(1)/(2*pi*x^(2)))+(3*exp(1/x^(2))/(sqrt(2*pi*x^(2))))*besselK((1/x^(2)),1/2)*(log(exp(1)/x^(2)))
x <- seq(0.1,2,0.01)
plot(x, P(x), xlim=c(0,2), ylim=c(0,1.2), type="l")
从上面的代码中,我得到一条直线作为绘图。在正确的图中,它应该是在 1 和 1.5 之间弯曲的曲线,有人可以告诉我正确的方法吗?
nu = 1/2
处的导数为here。
f <- function(nu,x){
besselK(x, nu)
}
library(gsl) # for expint_E1
fprime <- function(x){
sqrt(pi/2/x) * expint_E1(2*x) * exp(x)
}
nu <- 1/2
h <- 1e-6
x <- 2
(f(nu+h, x) - f(nu,x)) / h
## [1] 0.02474864
fprime(x)
## [1] 0.02474864
我的问题如标题所述,我正在尝试使用第二类修正贝塞尔函数的导数(相对于v
)K_v(x)
但没有成功.
我在其中一篇文档中读到 besselDK(v,x)
可以用作导数,显然这不是 R 中公认的函数。我尝试使用导数的扩展,即
besselK(v,x)*(1- (1/2v) -log(e*x/2v))
但这也无法为我提供正确的情节。我正在尝试绘制一个包含这个的函数。
P <- function(x) (1/2)*log(exp(1)/(2*pi*x^(2)))+(3*exp(1/x^(2))/(sqrt(2*pi*x^(2))))*besselK((1/x^(2)),1/2)*(log(exp(1)/x^(2)))
x <- seq(0.1,2,0.01)
plot(x, P(x), xlim=c(0,2), ylim=c(0,1.2), type="l")
从上面的代码中,我得到一条直线作为绘图。在正确的图中,它应该是在 1 和 1.5 之间弯曲的曲线,有人可以告诉我正确的方法吗?
nu = 1/2
处的导数为here。
f <- function(nu,x){
besselK(x, nu)
}
library(gsl) # for expint_E1
fprime <- function(x){
sqrt(pi/2/x) * expint_E1(2*x) * exp(x)
}
nu <- 1/2
h <- 1e-6
x <- 2
(f(nu+h, x) - f(nu,x)) / h
## [1] 0.02474864
fprime(x)
## [1] 0.02474864