ゼミの風景

おそらくお気楽はしのすけゼミの諸風景

Top | ゼミ2016卒 | ゼミ2015卒 | ゼミ2014卒 | イベント | About

スキーの力学,数理音楽,その他諸々(4年ゼミ)

f:id:okiraku894:20161217102556j:plain
f:id:okiraku894:20161217102555j:plain
f:id:okiraku894:20161217102557j:plain
一人目,スキーの力学.もう大詰めなんだけど,
横滑りターンのモデルまでできたらな,ってことでちょっとトライ.
どうしても微分方程式の数が足らず,どうしようか.
でもカービングターンは確立したので,これの数値解析に専念しても良い.
つまり上手い人がなぜ急斜面でも板をきちんと踏んでゆっくり滑れるのか,
といったことだ.で,BASICで作ってみた.
f:id:okiraku894:20161217114951p:plain

REM
REM [一本足スキーモデル]
REM ver. 2016/12/16
REM

LET tmax=3 !最大表示時間
LET wx=tmax !横軸最大
LET wy=PI !縦軸最大
SET WINDOW -wx*.05,wx,-wy*1,wy

LET m=50 !質量[kg]
LET R=10 !曲率半径[m]
LET a=PI/9 !斜度[rad]
LET g=9.8 !重力加速度[m/s^2]
LET h=0.6 !股関節位置[m]
LET HH=h*1.1 !重心の高さ[m]
LET mu=0.6 !摩擦係数

LET dt=.001 !時間の刻み幅

LET th0=PI/20 !初期θ
LET thv0=0 !初期dθ/dt
LET w0=PI/6 !初期w
LET wv0=-PI/6 !初期dw/dt
DO
   mouse poll mx,my,left,right
   IF left=1 THEN
      IF ABS(my-wy*0.9)<wy/20 AND wx>0 THEN LET th=mx/wx*PI/2
      IF ABS(my-wy*0.8)<wy/20 AND wx>0 THEN LET thv=mx/wx*PI/2
      IF ABS(my-wy*0.7)<wy/20 AND wx>0 THEN LET w=mx/wx*PI/2
      IF ABS(my-wy*0.6)<wy/20 AND wx>0 THEN LET wv=-mx/wx*PI/2
      IF ABS(my-wy*0.5)<wy/20 AND wx>0 THEN LET a=mx/wx*PI/2
       
   END if    
   LET th0=th
   LET thv0=thv    
   LET w0=w
   LET wv0=wv
    
   SET DRAW mode hidden
   CLEAR
   DRAW ruler
   DRAW axes(wx/10,wy/10)
   FOR t=0 TO tmax STEP dt
      WHEN EXCEPTION IN
         LET th1=th0+thv0*dt
         LET w1=w0+wv0*dt
         LET tha=(-g*SIN(a)*SIN(w0)/h-g*COS(a)*th0/HH+th0*thv0^2+(R/h+th0)*wv0^2)
         LET thv1=thv0+tha*dt
         LET wa=-(g*SIN(a)*COS(w0)+2*h*thv0*wv0)/(R+h*th0)
         LET wv1=wv0+wa*dt
         LET FF=-h*tha+h*th0*thv^2+(R+h*th0)*wv0^2-g*SIN(a)*SIN(w0) !摩擦抗力
         SET LINE COLOR 3!緑--静止摩擦を超えたとき
         IF FF>mu*g*COS(a) THEN
            PLOT LINES:t,-wy; t,wy
            LET t=tmax
         END if
         SET LINE COLOR 2!青--wのグラフ
         PLOT LINES: t,w0;t+dt,w1
         SET LINE COLOR 4!赤--θのグラフ
         PLOT LINES: t,th0;t+dt,th1
         LET th0=th1
         LET thv0=thv1
         LET w0=w1
         LET wv0=wv1
      USE
         LET t=tmax
      END WHEN
   NEXT t
   SET DRAW mode explicit
LOOP UNTIL left*right=1

PICTURE ruler
!エッジ角θ 
   LET p=0.9
   LET px=th*2*wx/PI
   SET LINE COLOR 4
   SET AREA COLOR 7
   GRAPH AREA:0,wy*p+wy/20;px,wy*p+wy/20;px,wy*p;0,wy*p
   GRAPH LINES:0,wy*p+wy/20;wx,wy*p+wy/20;wx,wy*p;0,wy*p
   PLOT TEXT ,AT -wx*.02,wy*p:"θ"
   PLOT TEXT ,AT px, wy*p, USING "##.#":th*180/PI
   !エッジ角速度dθ/dt
   LET p=0.8
   LET px=thv*2*wx/PI
   SET LINE COLOR 4
   SET AREA COLOR 6
   GRAPH AREA:0,wy*p+wy/20;px,wy*p+wy/20;px,wy*p;0,wy*p
   GRAPH LINES:0,wy*p+wy/20;wx,wy*p+wy/20;wx,wy*p;0,wy*p
   PLOT TEXT ,AT -wx*.02,wy*p:"θv"
   PLOT TEXT ,AT px, wy*p, USING "##.#":thv*180/PI
   !角度ω
   LET p=0.7
   LET px=w*2*wx/PI
   SET LINE COLOR 2
   SET AREA COLOR 5
   GRAPH AREA:0,wy*p+wy/20;px,wy*p+wy/20;px,wy*p;0,wy*p
   GRAPH LINES:0,wy*p+wy/20;wx,wy*p+wy/20;wx,wy*p;0,wy*p
   PLOT TEXT ,AT -wx*.02,wy*p:"ω"
   PLOT TEXT ,AT px, wy*p, USING "##.#":w*180/PI
   !角速度dω/dt
   LET p=0.6
   LET px=-wv*2*wx/PI
   SET LINE COLOR 2
   SET AREA COLOR 3
   GRAPH AREA:0,wy*p+wy/20;px,wy*p+wy/20;px,wy*p;0,wy*p
   GRAPH LINES:0,wy*p+wy/20;wx,wy*p+wy/20;wx,wy*p;0,wy*p
   PLOT TEXT ,AT -wx*.02,wy*p:"ωv"
   PLOT TEXT ,AT px, wy*p, USING "###.#":wv*180/PI
   !傾斜角α
   LET p=0.5
   LET px=a*2*wx/PI
   SET LINE COLOR 9
   SET AREA COLOR 8
   GRAPH AREA:0,wy*p+wy/20;px,wy*p+wy/20;px,wy*p;0,wy*p
   GRAPH LINES:0,wy*p+wy/20;wx,wy*p+wy/20;wx,wy*p;0,wy*p
   PLOT TEXT ,AT -wx*.02,wy*p:"α"
   PLOT TEXT ,AT px, wy*p, USING "##.#":a*180/PI
    
END PICTURE
END

f:id:okiraku894:20161216150849j:plain
二人目,数理音楽.もうここからイレギュラーで話したい人が話すことに.
12音音階におけるダイアトニック7音中の三度堆積和音たちが互いに高々距離2であること,
これを一般的枠組みの中で示そうという試みを続けている.
近いところまで来た.しかしそれをきちんと数理で追いたいわけだ.さて.