1

你好亲爱的社区,

我试图解决一个二阶微分方程已经有一段时间了。方程式如下:

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

我应该运行它几个 P;数据框的 P1= df$col1, P2=df$col2, P3=df$col3 和 D 将是 df$col4 并且 x 将是 df$col5

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

4

1 回答 1

0

让我再尝试一次。边界条件 - 变量 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)
} 

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

于 2021-02-03T11:41:09.737 回答