присваивание в системе дифференциальных уравнений - PullRequest
0 голосов
/ 06 июня 2010

когда я численно решаю систему двух дифференциальных уравнений:

s1:=diff(n[Di](t), t)=...;
s2:=diff(n[T](t), t)=...;
ics:={...};   #initial condition.
sys := {s1, s2, ics}: 
sol:=dsolve(sys,numeric);

относительно "t", то решение (например) для "t = 4" имеет вид, sol (4):

[t=4, n1(t)=const1, n2(t)=const2].

Теперь, как можно использовать значения n1 (t) и n2 (t) для всех «t» в другом уравнении, а именно «p», в котором задействовано n1 (t) или n2 (t) (например: {p = a + n1 (t) * n2 (t) + f (t)}, где «a» и «f (t)» определены) и построитьр "для интервала" т "?

1 Ответ

1 голос
/ 07 июня 2010

Возможно, пример поможет.

s1:=diff(n1(t), t)=sin(t);
s2:=diff(n2(t), t)=cos(t);
ics:={n1(0)=1,n2(0)=0}:
sys := {s1, s2} union ics:
sol:=dsolve(sys,numeric,output=listprocedure);
N1:=eval(n1(t),sol);
N2:=eval(n2(t),sol);
N1(0);
N1(1.1);
N2(0);
N2(1.1);
p := 11.3 + N1*N2 + tan:
plot(p, 0..1.1);

Вы можете взглянуть на подпрограмму DEplot, которая специализируется на построении решений для оды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...