首页 > 解决方案 > 为 NDSolve 编写许多方程

问题描述

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

  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 但效果不佳。我能做些什么?

标签: wolfram-mathematica

解决方案


这对你有用吗?

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

推荐阅读