为NDSolve编写许多公式

时间:2019-09-29 15:20:49

标签: wolfram-mathematica

我正在尝试编写遗传网络的主要方程式,因为它们是许多方程式,因此我试图制作一张表格来一次编写所有这些方程式。但是,我不知道如何调整边界,我的意思是:

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

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

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

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,但效果不佳。我该怎么办?

1 个答案:

答案 0 :(得分:1)

这对您有用吗?

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}]

返回

{{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]}}