2015-03-02 8 views
-1

Для домашнего задания мой профессор попросил нас решить систему дифференциальных уравнений с использованием Matlab. Использование сайта MathWorks, я сделалКак решить систему дифференциальных уравнений в Matlab

syms f(t) g(t) h(t) 
[f(t), g(t), h(t)] = dsolve(diff(f) == .25*g*h,... 
diff(g) == -2/3*f*h,... 
diff(h) == .5*f*g, f(0) == 1, g(0) == -2, h(0) == 3) 

Это говорит о том, что явное уравнение не может быть решено ... Любая помощь приветствуется спасибо.

+1

Уверены ли вы, что у них есть аналитическое решение? Возможно, попробуйте решить численно с помощью 'ode45' или аналогичного. – David

+0

Да, поскольку это система нелинейных ОДУ, я думаю, что числовое решение - это то, что ожидается (и, возможно, единственный метод решения). – TroyHaskin

+0

Вы правы. Я использовал ode45, и это сработало. –

ответ

0
%x(1),x(2),x(3)=f,g,h 

fun = @(t,x) [0.25*x(2)*x(3); -2/3*x(1)*x(3); 
-0.5*x(1)*x(2)]; 
[t,x] = ode45(fun,[0 100],[1 2 3]); 
plot3(x(:,1),x(:,2),x(:,3)) 
%x has three columns which contains values of f,g,h as a function of time from %time t=0 to t=100 
%please check ode45 in matlab to see what these arguments mean 
Смежные вопросы