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 (将#修改为@)