Нет выхода на ParametricPlot - PullRequest
       27

Нет выхода на ParametricPlot

0 голосов
/ 19 ноября 2018

Я решаю и строю уравнения движения для двойного маятника, используя NDSolve.

от Mathematica. Я успешно построил угловое положение с помощью стандартного графика.Но когда я прихожу использовать параметрический график для положения каждой массы.Я не получаю ошибок, но просто нет сюжета.

eqn1 = 2 th''[t] + Sin[th[t] - ph[t]] (ph'[t])^2 + Cos[th[t] - ph[t]] (ph''[t]) + (2 g/l) Sin[th[t]]
eqn2 = ph''[t] + Sin[th[t] - ph[t]] (th'[t])^2 + Cos[th[t] - ph[t]] (th''[t]) + (g/l) Sin[th[t]]
eqnA = eqn1 /. {g -> 10, l -> 1}
eqnB = eqn2 /. {g -> 10, l -> 1}

sol = NDSolve[{eqnA == 0, eqnB == 0, th[0] == 0.859, th'[0] == 0, ph[0] == 0.437, ph'[0] == 0}, {th, ph}, {t, 0, 10}]
Plot[{th[t], ph[t]} /. sol, {t, 0, 10}]
r1 = {lSin[th[t]] + lSin[ph[t]], -lCos[th[t]] - lCos[ph[t]]} /. {l -> 1, g -> 10}

ParametricPlot[r1 /. sol, {t, 0, 10}]

1 Ответ

0 голосов
/ 19 ноября 2018

Замените

r1 = {lSin[th[t]] + lSin[ph[t]], -lCos[th[t]] - lCos[ph[t]]} /. {l->1, g->10}

на

r1 = {l*Sin[th[t]] + l*Sin[ph[t]], -l*Cos[th[t]] - l*Cos[ph[t]]} /. {l->1, g->10}

, и ваш ParametricPlot должен появиться.

Один полезный трюк, который вы помните, когда любой сюжет неПохоже, вы можете попробовать заменить сюжет на Table и посмотреть, что он показывает.Часто таблица данных содержит подсказку о том, почему график не отображается.

...