Tweak ham() function to return results in nested list
This commit is contained in:
8
ham.mac
8
ham.mac
@@ -9,7 +9,7 @@ ham(L, qs) := block([ps, qdots, H],
|
|||||||
H: subst(solve(maplist(lambda([p,qdot], p = diff(L, qdot)), ps, qdots),
|
H: subst(solve(maplist(lambda([p,qdot], p = diff(L, qdot)), ps, qdots),
|
||||||
qdots),
|
qdots),
|
||||||
apply("+", maplist("*", ps, qdots)) - L),
|
apply("+", maplist("*", ps, qdots)) - L),
|
||||||
maplist(trigsimp, flatten(maplist(lambda([q], [
|
maplist(trigsimp, maplist(lambda([q], [
|
||||||
'diff(q,t) = diff(H, concat(p_, q)),
|
diff(H, concat(p_, q)),
|
||||||
'diff(concat(p_, q),t) = -diff(H, q)
|
-diff(H, q)
|
||||||
]), qs))));
|
]), qs)));
|
||||||
|
|||||||
Reference in New Issue
Block a user