Написание многих уравнений для NDSolve - PullRequest
0 голосов
/ 29 сентября 2019

Я пытаюсь написать основные уравнения для генетических сетей, поскольку они представляют собой множество уравнений, и я пытаюсь составить таблицу для написания всех их одновременно. Однако я не знаю, как настроить границы, я имею в виду:

  1. Я написал матрицу со всеми необходимыми мне переменными:

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

Затем я написал таблицу для создания дифференциальных уравнений:

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

Однако часть p [[i-1, j]], когда i = 1, равна p [[0,1]], но она не существует, и мне нужно вместо этого поставить 0, но я не знаю как. Я пытался с If, но это не работает хорошо. Что я могу сделать?

1 Ответ

1 голос
/ 29 сентября 2019

Будет ли это работать для вас?

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]}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...