OSDN Git Service

[1] Updated.
authorU-tackya-PC\tackya <yammouch@users.sourceforge.jp>
Sun, 4 Mar 2012 10:31:45 +0000 (19:31 +0900)
committerU-tackya-PC\tackya <yammouch@users.sourceforge.jp>
Sun, 4 Mar 2012 10:31:45 +0000 (19:31 +0900)
dynamics/anime/mass1.clj

index f229735..01efaa6 100755 (executable)
@@ -5,16 +5,37 @@
 (require 'src.math)
 (alias 'mt 'src.math)
 
-; ['up x vx y vy]
-(defn phys [[_ x vx y vy]]
+(defn L [[_ t [x y] [vx vy]]]
   (let [k 10 m 0.1]
-    ['up
-     vx
-     (/ (- (* k x)) m)
-     vy
-     (/ (- (* k y)) m)
-     ]))
+    (- (* 0.5 m
+          (+ (* vx vx) (* vy vy))
+          )
+       (* 0.5 k
+          (+ (* x x) (* y y))
+          ))))
+
+(def A (mt/L->accer L))
+
+(defn phys [xi]
+  (let [n (/ (- (count xi) 1) 2)
+        q (take n (rest xi))
+        qdot (drop n (rest xi))
+        qddot (A ['up 0 q qdot])]
+    (concat ['up]
+            qdot
+            qddot)))
+
+; ['up x vx y vy]
+;(defn phys [[_ x vx y vy]]
+;  (let [k 10 m 0.1]
+;    ['up
+;     vx
+;     (/ (- (* k x)) m)
+;     vy
+;     (/ (- (* k y)) m)
+;     ]))
 
+; ['up x y vx vy]
 (def xi (ref ['up 1 0 0 -1]))
 
 (defn anime-panel []