2014 dxdy logo

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

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




 
 Построение графика в Mathematica
Сообщение22.10.2014, 15:57 
Доброго времени суток, очень нужна помощь, так как сам никак не могу разобраться. Вкратце объясню: я составляю 4 уравнения Лагранжа 2-го рода, задаю начальные условия и строю графики для обобщенных координат от t. Далее мне нужно построить график движения точки с координатами $x=l\cos[\varphi1(t)], y=l\sin[\varphi1(t)]$, где вот этот Фи берется из предыдущего решения (графика) для t от 0 до 10800.
Вот так у меня выглядит само решение, но при попытке построить график движения с Фи /.Resh выдает ошибки :(
Код:
Resh = NDSolve[{L[1] == Q[1], L[2] == Q[2], L[3] == Q[3],  L[4] == Q[4],
r[0] == 6800, \[Phi]0[0] == 0, \[Phi]1[0] == 0, \[Phi]2[0] == 0, r'[0] == 0, \[Phi]0'[0] == 0.001, \[Phi]1'[0] == 0.001, \[Phi]2'[0] == 0.001},
{r[t], \[Phi]0[t], \[Phi]1[t], \[Phi]2[t]}, {t, 0, 10800},
  Method -> {"EquationSimplification" -> "Solve"},
  MaxSteps -> 1000000]

 
 
 
 Re: Построение графика в Mathematica
Сообщение22.10.2014, 16:58 
Посмотрите на примере как обращаться с тем, что возвращает NDSolve[]

Код:
{Q1[s_], P1[s_], H1[s_]} = NDSolveValue[
   {
    q'[s] == p[s],
    p'[s] == -q[s] - q[s]^2,
    q[0] == 0.45,
    p[0] == 0
    },
   {q[s], p[s], 1/2 p[s]^2 + 1/2 q[s]^2 + 1/3 q[s]^3},
   {s, 0, 10},
   Method -> {"SymplecticPartitionedRungeKutta",
     "PositionVariables" -> {q[s]}}
   ]   ;

{{Q2[s_], P2[s_], H2[s_]}} = {q[s], p[s],
    1/2 p[s]^2 + 1/2 q[s]^2 + 1/3 q[s]^3} /. NDSolve[
    {
     q'[s] == p[s],
     p'[s] == -q[s] - q[s]^2,
     q[0] == 0.45,
     p[0] == 0
     },
    {q[s], p[s], 1/2 p[s]^2 + 1/2 q[s]^2 + 1/3 q[s]^3},
    {s, 0, 10},
    Method -> {"SymplecticPartitionedRungeKutta",
      "PositionVariables" -> {q[s]}} ]  ;

ParametricPlot[{Q1[t], P1[t]}, {t, 0, 10}]
ParametricPlot[{Q2[t], P2[t]}, {t, 0, 10}]
Plot[{0, H1[t]}, {t, 0, 10}]
Plot[{0, H2[t]}, {t, 0, 10}]

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


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