level 2
不懂忄妳忄啲笑
楼主
我今天刚接触Mathematica,想要解一个分析力学题里面的PDE组,其实就是一个五个自由度的拉格朗日方程组,可是搞了很久老是不行,代码如下,求大佬指点。我是完全小白,如果犯了可笑的低级错误,还求大佬轻喷。。。
v1 = l'[t] Sin[a1] Cos[b1] + l*a1'[t] Cos[a1] Cos[b1] +
l*b1'[t]*(-Sin[b1])
v2 = l'[t] Sin[a1] Sin[b1] + l*a1'[t] Cos[a1] Sin[b1] +
l*b1'[t]*Cos[b1]
v3 = l'[t] Cos[a1] + l*a1'[t]*(-Sin[a1])
u1 = v1 + (-l'[t]) Sin[a2] Cos[b2] + (l0 - l)*
a2'[t] Cos[a2] Cos[b2] + (l0 - l)*b2'[t]*(-Sin[b2])
u2 = v2 + (-l'[t]) Sin[a2] Sin[b2] + (l0 - l)*
a2'[t] Cos[a2] Sin[b2] + (l0 - l)*b2'[t]*Cos[b2]
u3 = v3 + (-l'[t]) Cos[a2] + (l0 - l) a2'[t]*(-Sin[a2])
T = 0.5*m1*(v1^2 + v2^2 + v3^2) + 0.5*m2*(u1^2 + u2^2 + u3^2)
V = m1*g*l*Cos[a1] + m2*g*(l*Cos[a1] + (l0 - l)*Cos[a2])
L = T - V
H1 = l'[t]
H2 = a1'[t]
H3 = b1'[t]
H4 = a2'[t]
H5 = b2'[t]
P1 = D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], H1]
P2 = D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], H2]
P3 = D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], H3]
P4 = D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], H4]
P5 = D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], H5]
In[1] := NDSolve[{P1'[t] -
D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], l] == 1,
P2'[t] -
D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], a1] == 0,
P3'[t] -
D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], b1] == 0,
P4'[t] -
D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], a2] == 0,
P5'[t] -
D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], b2] == 0, l[0] == 0.5, a1[0] == 0.5 Pi,
b1[0] == 0.5 Pi, a2[0] == 0, b2[0] == (1/3)*Pi}, l, a1, b1, a2,
b2, {t, 0, 1}]
Plot[Evaluate[{l[t], a1[t], b1[t], a2[t], b2[t]} /. s], {t, 1, 0},
PlotStyle -> Automatic]
2020年09月12日 15点09分
1
v1 = l'[t] Sin[a1] Cos[b1] + l*a1'[t] Cos[a1] Cos[b1] +
l*b1'[t]*(-Sin[b1])
v2 = l'[t] Sin[a1] Sin[b1] + l*a1'[t] Cos[a1] Sin[b1] +
l*b1'[t]*Cos[b1]
v3 = l'[t] Cos[a1] + l*a1'[t]*(-Sin[a1])
u1 = v1 + (-l'[t]) Sin[a2] Cos[b2] + (l0 - l)*
a2'[t] Cos[a2] Cos[b2] + (l0 - l)*b2'[t]*(-Sin[b2])
u2 = v2 + (-l'[t]) Sin[a2] Sin[b2] + (l0 - l)*
a2'[t] Cos[a2] Sin[b2] + (l0 - l)*b2'[t]*Cos[b2]
u3 = v3 + (-l'[t]) Cos[a2] + (l0 - l) a2'[t]*(-Sin[a2])
T = 0.5*m1*(v1^2 + v2^2 + v3^2) + 0.5*m2*(u1^2 + u2^2 + u3^2)
V = m1*g*l*Cos[a1] + m2*g*(l*Cos[a1] + (l0 - l)*Cos[a2])
L = T - V
H1 = l'[t]
H2 = a1'[t]
H3 = b1'[t]
H4 = a2'[t]
H5 = b2'[t]
P1 = D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], H1]
P2 = D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], H2]
P3 = D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], H3]
P4 = D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], H4]
P5 = D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], H5]
In[1] := NDSolve[{P1'[t] -
D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], l] == 1,
P2'[t] -
D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], a1] == 0,
P3'[t] -
D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], b1] == 0,
P4'[t] -
D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], a2] == 0,
P5'[t] -
D[L[l[t], a1[t], b1[t], a2[t], b2[t], H1[t], H2[t], H3[t], H4[t],
H5[t]], b2] == 0, l[0] == 0.5, a1[0] == 0.5 Pi,
b1[0] == 0.5 Pi, a2[0] == 0, b2[0] == (1/3)*Pi}, l, a1, b1, a2,
b2, {t, 0, 1}]
Plot[Evaluate[{l[t], a1[t], b1[t], a2[t], b2[t]} /. s], {t, 1, 0},
PlotStyle -> Automatic]
