Как решить систему из трех ОДУ первого порядка в Matlab - PullRequest
0 голосов
/ 02 февраля 2020

Я использую Matlab, чтобы попытаться решить систему из трех ODE первого порядка, но сообщение об ошибке «syms» требует Symboli c Math Toolbox. Ошибка в пауках (строка 1) syms f (t) s (t) v (t) r W c hqakb HK e

В предыдущем случае я получил сообщение о том, что эта система ODE не может решаться явно (т.е. в закрытом виде). Я думаю, что численная интеграция - единственный способ. R, W, c, h, et c являются параметрами. Может кто-нибудь сказать мне, как я могу смоделировать / решить и построить график ODE ниже?

syms f(t) s(t) v(t) r W c h q a k b H K e
r = 1;
W = 0.5;
c = 0.4;
h = 0.9;
q = 9;
a = 5;
k = 0.8;
b = 6;
H = 3;
K = 1.3;
e = 2;
ode1 = diff(f) == r*f*(1 - f/W) - c*s*f - h*(1 - q)*f;
ode2 = diff(s) == s*(-a + k*b*v/(H + v) + k*c*f) - h*K*q*s;
ode3 = diff(v) == v*(e - b*s/(H + v)) - h*q*v;
odes=[ode1;ode2;ode3]
S = dsolve(odes)
plot(S);

1 Ответ

0 голосов
/ 02 февраля 2020

Похоже, что вы ранее использовали другую лицензию MATLAB, которая включала Symboli c Math Toolbox. Я полагаю, что у вас его больше нет, и вы ищете альтернативы для чисел c.

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

y0 = [1; 0; 0];
tspan = [0 4*logspace(-6,6)];
M = [1 0 0; 0 1 0; 0 0 0];
options = odeset('Mass',M,'RelTol',1e-4,'AbsTol',[1e-6 1e-10 1e-6]);
[t,y] = ode15s(@robertsdae,tspan,y0,options);

Где robertsdae - уравнение для решения. Полный пример, включающий дополнительные пояснения: доступен здесь.

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