2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Решение ДУ в Mathematica
Сообщение27.03.2011, 01:50 
Аватара пользователя


22/06/07
146
Доброго времени суток.
В результате решения одной механической задачи возникла вот такая система уравнений:

$\ddot{\theta}=0$
$\ddot{y}=\ddot{x}\tg{\theta}$
$MR\ddot{x}=J\ddot{\phi_1}\cos{\theta}$
$MR\ddot{x}=J\ddot{\phi_2}\cos{\theta}$
$MR\ddot{x}=J\ddot{\phi_3}\cos{\theta}$
$MR\ddot{x}=J\ddot{\phi_4}\cos{\theta}$
$(1+\frac{MR}{J})\ddot{x}=\cos{\theta}(\dot{x}\sin{\theta}-\dot{y}\cos{\theta})\dot{\theta}$

Здесь $\theta,x,y,\phi_1,\phi_2,\phi_3,\phi_4$ - функции времени, $M,R,J$ - константы(положительные).
Для численного решения ДУ мне порекомендовали Mathematica. Сам я не имею опыта работы в мат. пакетах, поэтому обратился сюда. Писал как в хелпе:

Код:
NDSolve[{y''[t] == x''[t]*Tan[\[Theta][t]], \[Theta]''[t] == 0,
   x''[t] == Cos[\[Theta][t]]*Subscript[\[Phi], 1]'' [t],
   x''[t] == Cos[\[Theta][t]]*Subscript[\[Phi], 2]'' [t],
   x''[t] == Cos[\[Theta][t]]*Subscript[\[Phi], 3]'' [t],
   x''[t] == Cos[\[Theta][t]]*Subscript[\[Phi], 4]'' [t],
   x''[t]*2 ==
    Cos[\[Theta][t]]*(x'[t]*Sin[\[Theta][t]] -
       y'[t]*Cos[\[Theta][t]])*\[Theta]'[t], \[Theta][0] == 0,
   x[0] == 0, y[0] == 0, \[Theta]'[0] == 1, x'[0] == 1, y'[0] == 1,
   Subscript[\[Phi], 1][0] == 0, Subscript[\[Phi], 2][0] == 0,
   Subscript[\[Phi], 3][0] == 0, Subscript[\[Phi], 4][0] == 0,
   Subscript[\[Phi], 1]'[0] == 0, Subscript[\[Phi], 2]'[0] == 0,
   Subscript[\[Phi], 3]'[0] == 0,
   Subscript[\[Phi], 4]'[0] == 0}, {y[t], x[t], \[Theta][t],
   Subscript[\[Phi], 1][t], Subscript[\[Phi], 2][t],
   Subscript[\[Phi], 3][t], Subscript[\[Phi], 4][t]}, {t, 0, 50},
  MaxSteps -> 3000];


Выдает следующее:
Код:
Syntax::sntxf: "Cos[\[Theta][t]]*Subscript[\[Phi], 1]''" cannot be followed by "[t]".
Syntax::tsntxi: "[t]" is incomplete; more input is needed.
Syntax::sntxi: Incomplete expression; more input is needed.


В общем, буду премного благодарен, если поможете решить эту систему.

 Профиль  
                  
 
 
Сообщение27.03.2011, 10:47 
Заслуженный участник


25/02/11
1786
В математика 7.0 приведенный текст работает. Можно попробовать эту строчку переписать, вдруг там какой символ непечатаемый вкрался в текст.

Зачем, кстати, четыре одинаковых уравнения на фи с разными индексами? Решения одинаковые будут.

 Профиль  
                  
 
 
Сообщение27.03.2011, 14:17 
Аватара пользователя


22/06/07
146
Уважаемый Vince Diesel, не могли бы Вы привести здесь полученное решение? С Mathematica я не знаю сколько еще буду возиться, а узнать верно ли составлена система и каково решение крайне хотелось бы сейчас.
Вот вывод в виде графиков:

Код:
ParametricPlot[{x[t], y[t]}, {t, 0, 50}];
ParametricPlot[{t, \[Theta][t]}, {t, 0, 50}];
ParametricPlot[{t, Subscript[\[Phi], 1][t]}, {t, 0, 50}];

 Профиль  
                  
 
 
Сообщение27.03.2011, 15:24 
Заслуженный участник


25/02/11
1786
Точнее, с такого кода
Код:
sl = NDSolve[{y''[t] == x''[t]*Tan[\[Theta][t]], \[Theta]''[t] == 0,
   x''[t] == Cos[\[Theta][t]] \[Phi]''[t],
   x''[t]*2 ==
    Cos[\[Theta][t]]*(x'[t]*Sin[\[Theta][t]] -
       y'[t]*Cos[\[Theta][t]])*\[Theta]'[t], \[Theta][0] == 0,
   x[0] == 0, y[0] == 0, \[Theta]'[0] == 1, x'[0] == 1,
   y'[0] == 1, \[Phi][0] == 0, \[Phi]'[0] == 0}, {y[t],
   x[t], \[Theta][t], \[Phi][t]}, {t, 0, 500}, MaxSteps -> 6000]

Код:
ParametricPlot[{x[t], y[t]} /. sl, {t, 0, 500}]
Plot[\[Phi][t] - t /. sl, {t, 0, 100}]

получатся графики. На первом кривая движется против часовой стрелки в кольце с центром где-то $(-3,4)$ и радиусом между 5 и 5.5. За $0\le t\le500$ кривая почти полностью заштиховывает кольцо в масштабе по умолчанию.
Координаты центра можно считать так:
Код:
cx = Integrate[x[t] /. sl, {t, 0, 500}]/500
cy = Integrate[y[t] /. sl, {t, 0, 500}]/500
-2.943414308231053
4.000570682722155
На втором видно нечто, похожее на синусоиду, меняющуюся от -2.7 до 0.7. А $\theta(t)=t$.

 Профиль  
                  
 
 
Сообщение27.03.2011, 20:30 
Аватара пользователя


22/06/07
146
У меня Ваш код заработал! Хм, интересная картина получается. Огромное спасибо за помощь!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group