为 NDSolve 编写许多方程

Writting many Equations for NDSolve

我正在尝试编写遗传网络的主方程,因为它们有很多方程,我正在尝试制作一个 table 以便一次编写所有这些方程。但是,我不知道如何调整边界,我的意思是:

  1. 我写了一个包含我需要的所有变量的矩阵:

p={{p11,p12},{p21,p22}}

  1. 然后我写了一个table来创建微分方程:

Table[p[[i,j]]'[t]== p[[i-1,j]][t]+p[[i,j-1]][t]+p[[i+1,j]][t]+p[[i,j+1]][t],{i,1,2},{j,1,2}]

  1. 然而,当 i=1 时,p[[i-1,j]] 部分是 p[[0,1]],但它不存在,我需要用 0 代替它,但我没有如何。我试过 If 但效果不佳。我能做什么?

这对你有用吗?

pf[i_,j_]:=If[i<1||i>2||j<1||j>2,0,p[[i,j]][t]];
Table[p[i,j]'[t]== pf[i-1,j]+pf[i,j-1]+pf[i+1,j]+pf[i,j+1],{i,1,2},{j,1,2}]

哪个returns

{{p[1, 1]]'[t] == p[[1,2]][t] + p[[2,1]][t], p[1, 2]]'[t] == p[[1,1]][t] + p[[2,2]][t]}, 
 {p[2, 1]]'[t] == p[[1,1]][t] + p[[2,2]][t], p[2, 2]]'[t] == p[[1,2]][t] + p[[2,1]][t]}}