2016-11-24 3 views
2

Я не уверен, как реализовать следующую систему ОДУ в качестве одной функции на Matlab:системы ОДУ в MATLAB

ду/дТ = у (т) - у (т) х (т)

dx/dt = -x (t) + y (t) x (t)

Любая помощь была бы очень признательна за то, что эта часть моей общей проблемы была поставлена ​​на целую вечность. Спасибо

+0

[Выберите ODE Solver: системы ODE] (https://www.mathworks.com/help/matlab/math/choose-an-ode-solver.html#bu3l4nx-1). – TroyHaskin

+0

Спасибо Troy, было полезно! – Student201

ответ

3

до определения констант для использования, он должен выглядеть следующим образом:

function dzdt = odefunc(t,z) 
    x = z(1); y=z(2); 
    dzdt = [ -x + x*y; y - x*y ]; 
end 

T, Z = ode45(odefunc, [T0 Tf], [ x0; y0 ]) 

Как

F(x,y) = x+log(1/x) + y+log(1/y) 

является первым интегралом с множествами ограниченного уровня, решения будут останутся ограниченными (и являются периодическими) для положительных начальных значений x0,y0.

0

Если вы не разбираетесь в инструментах командной строки для создания и моделирования ODE, просто используйте Simulink, а затем попробуйте манипулировать моделями из командной строки через lsim, а затем, наконец, попытайтесь создать модели в m файлах.

Это 2-минутное упражнение в simulink, которое позволяет вам выбирать, какой из решателей вы предпочитаете в раскрывающемся списке.

enter image description here

Смежные вопросы