如何解决R中的数值微分
我目前正在尝试使用R
库中的fderiv
方法来计算pracma
中的有限差分。我已经开发出了以下方法来识别Lorenz衍生物:
library(deSolve)
parameters <- c(s = 10,r = 28,b = 8/3) # Lorenz Parameters: sigma,rho,beta
state <- c(X = -8,Y = 7,Z = 27) # Initial State
# Lorenz Function used to generate Lorenz Derivatives
lorenz <- function(t,state,parameters) {
with(as.list(c(state,parameters)),{
dX <- s * (Y - X)
dY <- X * (r - Z) - Y
dZ <- X * Y - b * Z
list(c(dX,dY,dZ))
})
}
times <- seq(0.01,100,by = 0.01)
# ODE45 used to determine Lorenz Matrix
out <- ode(y = state,times = times,func = lorenz,parms = parameters)
但是,我正在努力开发此功能的一阶或二阶差异。使用fderiv(Vectorize(lorenz),state = state,parameters = parameters,x = times,n = 1,"forward")
时出现错误Error in eval(substitute(expr),data,enclos = parent.frame()) : object 'Y' not found
。我希望能深入了解如何使用fderiv
开发这些有限的差异。
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。