2016-10-15 15 views
0

У меня есть нелинейная система, ответ на временную область которой я хочу найти в соответствии с начальными условиями, и заговорим, что в MATLAB, но я не знаю, как это сделать.Как решить и построить нелинейную систему дифференциальных уравнений?

Моя система

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

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

С уважением,

+4

Я бы начал с чтения документации ['ode45'] (https://www.mathworks.com/help/matlab/ref/ode45.html). –

ответ

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 in red and y in blue

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