deSolve&loop求解R中的二阶微分方程?

deSolve & loop to solve a second order differential equation in R?

亲爱的社区,您好,

我尝试求解二阶微分方程已经有一段时间了。等式为:

∂P/∂t = D * ∂^2P/∂x^2

我应该运行给几个P;数据框的 P1= df$col1, P2=df$col2, P3=df$col3,D 为 df$col4,x 为 df$col5

我正在尝试为此使用“deSolve”,但目前我没有取得太大的成功。如果您能就如何用 R 求解二阶微分方程提供意见,我将不胜感激。

让我再试一次。边界条件——变量 P 的初始条件是; P1(t=0)= 0.4; P2(t=0)= 4.6; P3(t=0) = 0.37。我只想在第一个 P1 的代码中思考,然后我可以将相同的代码应用于 data.frame.

的以下列

使用 deSolve 这是我到目前为止得到的: (P1=P)

state <- c(P=0.4)
t <- seq(0,100, by=0.1)
J <- function (t, P, parameters) {
  deltax     <- c (1, rep(1, numboxes - 1)) ##doing a vector
  Fluxx       <- -D * diff (c(0,P,0) /deltax #First derivative
 dP    <- diff(Fluxx)/deltax # second derivative
  list(dP,Fluxx)
} 

**也可以通过应用欧拉方法求解方程并计算浓度变化加上随时间的散度。