wahadło w postaci masy m zawieszonej na sprężynie o długości l i
Transkrypt
wahadło w postaci masy m zawieszonej na sprężynie o długości l i
wahadło w postaci masy m zawieszonej na sprężynie o długości l i współczynniku sprężystości k położenie końca wahadła x[t_] = r[t]*Sin[ϕ[t]]; y[t_] = r[t]*Cos[ϕ[t]]; energia kinetyczna T = m /2 *(x '[t]^ 2 +y '[t]^ 2) // Simplify 1 2 r′ [t]2 +r[t]2 ϕ′ [t]2 energia potencjalna V = -m *g *y[t]+k *r[t]-l^ 2 2 4 (-1 +r[t])2 -Cos[ϕ[t]] r[t] funkcja Lagrange' a L = T -V; równania Lagrange' a eq1 = D[D[L, r '[t]], t]-D[L, r[t]] // Simplify -8 -Cos[ϕ[t]]-r[t] -8 +ϕ′ [t]2 +r′′ [t] eq2 = (D[D[L, ϕ'[t]], t]-D[L, ϕ[t]]) // Simplify r[t] Sin[ϕ[t]]+2 r′ [t] ϕ′ [t]+r[t] ϕ′′ [t] rozwiązanie numeryczne m = 1; g = 1; k = 8; l = 1; warunki początkowe r0 = 2.0; ϕ0 = 0.2; całkowita energia E0 = V /. {r[t] → r0, ϕ[t] → ϕ0} 2.03987 energia potencjalna we współrzędnych kartezjańskich v[x_, y_] = -m *g *y +k *Sqrt[x ^ 2 +y ^ 2]-l^ 2 2; 2 wahc.nb obszar ograniczony przez zasadę zachowania energii E ⩾ V rys0 = ContourPlotv[x, -y] ⩵ E0, x, -2 *l, 2 *l, y, -2.5 *l, 2 *l, ContourStyle → Red, AspectRatio→ Automatic 2 1 0 -1 -2 -2 -1 0 1 2 tmax = 400; sol = NDSolve[{eq1 ⩵ 0, eq2 ⩵ 0, r[0] ⩵ r0, ϕ[0] ⩵ ϕ0, r '[0] ⩵ 0, ϕ'[0] ⩵ 0}, {r, ϕ}, {t, 0, tmax }] // First; rys1[t1_] := ParametricPlot x[t] /. sol, -y[t] /. sol, {t, 0, t1}, PlotStyle → Thin, PlotPoints→ 100 rys2[t_] := GraphicsDiskx[t] /. sol, -y[t] /. sol, 0.02 *l, Line{0, 0}, x[t] /. sol, -y[t] /. sol trajektoria jaką zakreśla koniec wahadła wahc.nb Show{rys1[tmax ], rys2[tmax ], rys0}, PlotRange → All, ImageSize → Large 1.5 1.0 0.5 -1.5 -1.0 0.5 -0.5 -0.5 -1.0 -1.5 -2.0 1.0 1.5 3