问题描述
亲爱的社区,您好,
我尝试求解二阶微分方程已经有一段时间了。等式如下:
∂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,0) /deltax #First derivative
dP <- diff(Fluxx)/deltax # second derivative
list(dP,Fluxx)
}
**也可以通过应用欧拉方法来求解方程并计算浓度的变化加上随时间的散度。