Как решить и построить систему нелинейных дифференциальных уравнений?

#matlab #plot #ode #differential-equations #nonlinear-functions

#matlab #построить #ode #дифференциальные уравнения #нелинейные функции

Вопрос:

У меня есть нелинейная система, отклик во временной области которой я хочу найти в соответствии с начальными условиями, и построить ее в MATLAB, но я не знаю как.

Моя система

 d/  ⌈x⌉ _ ⌈-x y*x^2 ⌉
/dt ⌊y⌋ ‾ ⌊   -y    ⌋
 

Начальное условие, [x0;y0] , равно [2;1] .

С уважением,

Комментарии:

1. Я бы начал с чтения документации ode45 .

Ответ №1:

Я решил вашу проблему, используя функцию ode45. Например, я бы записал в файл с именем Main.m:

 close all
[tcont,Xcont]=ode45(@eqStac,[0 2.5],[2 ;1],[]);
plot(tcont,Xcont(:,1),'*r');
hold on
plot(tcont,Xcont(:,2),'*');
 

и затем я должен создать функцию, вычисляющую вашу систему, в файле eqStac.m:

 function xpoint=eqStac(t,x)
xpoint(1)=-x(1) x(2)*x(1)^2;
xpoint(2)=-x(2);
xpoint=xpoint(:);
end
 

В конце концов у вас получился бы такой сюжет:

x в красном и y в синем: x в красном и y в синем

Я заметил, что ваша система расходится примерно за 4,8 секунды.