#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
В конце концов у вас получился бы такой сюжет:
Я заметил, что ваша система расходится примерно за 4,8 секунды.