2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Траектория системы оду
Сообщение06.10.2014, 21:18 
Задача такая:
Есть система из 3х диффуров 2го порядка (явный вид системы опускаю)
$ x''(t)=f_1(t,x,x',y,y');\ y''(t)=f_2(t,x,x',y,y');\ z''(t)=f_3(t,z,z') $
с начальными условиями:
$x(0)=y(0)=z(0)=1;\ x'(0)=y'(0)=z'(0)=0$


Вопрос: Как с помощью Mathematica или Matlab нарисовать её траекторию (в 3-х мерном пространстве)

 
 
 
 Re: Траектория системы оду
Сообщение07.10.2014, 06:41 
В Mathematica смотрите функцию ParametricPlot3D

 
 
 
 Re: Траектория системы оду
Сообщение11.10.2014, 20:57 
roma1990

Попробуйте в Матлабе что-нибудь вроде:
Код:
function dy = ode_fun(t,y,f1,f2,f3)

% Легенда:
% y(1) - x
% y(2) - dx/dt
% y(3) - y
% y(4) - dy/dt
% y(5) - z
% y(6) - dz/dt

dy = [
   y(2);
   f1(t,y(1),y(2),y(3),y(4));
   y(4);
   f2(t,y(1),y(2),y(3),y(4));
   y(6);
   f3(t,y(5),y(6));
];

Код выше сохранить в файл ode_fun.m и расположить на пути, который виден Матлабу. Выполнить следующий код:
Код:

% задать вид функций f1,f2,f3, например, f1 = @(t,y1,y2,y3,y4) t+y1+y2+y3+y4

y0 = [1 0 1 0 1 0];
T_max = 1; % секунда
tspan = [0 T_max];
[T Y] = ode45(@(t,y) ode_fun(t,y,f1,f2,f3), tspan, y0);
plot3(Y(:,1),Y(:,3),Y(:,5));

По желанию ode45 заменить на ode15s.

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group