2014 dxdy logo

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

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




 
 Решение ДУ в MATLAB
Сообщение14.10.2015, 01:09 
Есть динамические уравнения Эйлера $\vec{J}\dot{\omega}+\omega\times\vec{J}\omega=\vec{M}$ для тела на орбите, $\vec{M}=\frac{3\mu}{r^3}\frac{\vec{r}\times\vec{J}\bar{r}}{r^2}$. Также из модели SGP4 берутся значения $r$ для разных $t$. Нужно получать решения этой системы в зависимости от $r$. ode45/ode23, как я понял, использовать не получится, так как $M$ для разных $t$ разное, а некой функции $r(t)$ нету, есть только численные значения для $r$. Какие есть способы решения, кроме написания тысяч уравнений для разных $r$?

 
 
 
 Re: Решение ДУ в MATLAB
Сообщение14.10.2015, 08:47 
Аватара пользователя
Ivan410 в сообщении #1062357 писал(а):
некой функции $r(t)$ нету, есть только численные значения для $r$.

Аппроксимируйте.

 
 
 
 Re: Решение ДУ в MATLAB
Сообщение14.10.2015, 21:05 
Код:
% значения r для разных t
T = 0:10;
R = 0:10;

% функция для r(t), можно вызывать как r(3), r(11) и т.д.
r = @(t) interp1(T,R,t,'linear','extrap');

% вызов решателя
[T Y] = ode45(@(t,y) myode(t,y,r),Tspan,IC);

посмотрите ещё этот пример

 
 
 
 Re: Решение ДУ в MATLAB
Сообщение14.10.2015, 21:57 
Благодарю за ответы,теперь должно получиться

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


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