新しく発言する EXIT インデックスへ
2重振り子のおもちゃ

  2重振り子のおもちゃ SECOND 2006/11/30 04:44:45 
  !更新 SECOND 2006/11/30 16:58:12 
   └!訂正(注釈) SECOND 2006/12/01 02:16:27 
    └!訂正 SECOND 2006/12/01 11:11:27 
     └!背景に○と□を置いた・・ SECOND 2006/12/03 08:23:45 

  2重振り子のおもちゃ SECOND 2006/11/30 04:44:45  ツリーへ

2重振り子のおもちゃ 返事を書く
SECOND 2006/11/30 04:44:45
!2重振り子のおもちゃ

!振れ角が小さい場合に制限して、簡略化された微分方程式。
! |A1"(t)|=|1   m2/(m1+m2)||A1(t)| A1(t):上の振り子の角度(重力方向0度)
! |A2"(t)| |L1/L2  L1/L2  ||A2(t)| A2(t):下の振り子の・・

! |A1"(t)|=|P||λ1 0||P|^-1|A1(t)|
! |A2"(t)| | ||0 λ2|| |  |A2(t)|

! |A1"(t)|=|P||F1"(t)||λ1 0||F1(t)||P|^-1|A1(t)|
! |A2"(t)| | ||F2"(t)||0 λ2||F2(t)|| |  |A2(t)|

! F1"(t)=λ1*F1(t)
! F2"(t)=λ2*F2(t)

DIM p(2,2),pg(2,2)

LET m1=2
LET m2=2
LET L1=20
LET L2=20

LET c=m2/(m1+m2)
LET d=L1/L2

!----固有方程式
! |1-R c|=0
! |d d-R|
!R^2-(1+d)R+(1-c)d=0
LET Rp=(1+d +SQR((1-d)^2+4*c*d))/2
LET Rm=1+d-Rp
LET rRp=SQR(Rp)
LET rRm=SQR(Rm)

!----固有ベクトルで、列ベクトル行列Pを作る。p(,)
!種の行列が対称でなく、固有ベクトルは直交しない。
LET p(1,1)=(d-Rp)
LET p(2,1)=d
LET p(1,2)=(d-Rm)
LET p(2,2)=d

!----Pの逆行列P^-1 pg(,)
!Pが直交行列でなく、転置行列不可。
MAT pg=INV(p)

!----初期角度
LET A1_0=0.2
LET A2_0=0.5*SQR(2)

! |F1|=|pg11 pg12||A1|
! |F2| |pg21 pg22||A2|
LET F1_0=pg(1,1)*A1_0+pg(1,2)*A2_0
LET F2_0=pg(2,1)*A1_0+pg(2,2)*A2_0

!----初期速度
LET dF1_0=0
LET dF2_0=0

!----解の関数
DEF F1(t)=F1_0*COS(rRp*t)-dF1_0/rRp*SIN(rRp*t)
DEF F2(t)=F2_0*COS(rRm*t)-dF2_0/rRm*SIN(rRm*t)

! |A1|=|p11 p12||F1|
! |A2| |p21 p22||F2|
DEF A1(t)=p(1,1)*F1(t)+p(1,2)*F2(t)
DEF A2(t)=p(2,1)*F1(t)+p(2,2)*F2(t)

!----run
SET WINDOW -60,60,-60,60
LET r1=SQR(m1)
LET r2=SQR(m2)
LET tb=999
LET t0=TIME !開始
DO
LET t=(TIME-t0)*2.5
IF t<>tb THEN
LET tb=t
SET DRAW mode hidden !裏ページに書く。
CLEAR
PLOT TEXT ,AT 0,55:"マウス 右ボタンで、終了。"
FOR y=-10 TO 50 STEP 30
FOR x=-39 TO 39 STEP 26
DRAW 振子0 WITH ROTATE(A1(t))*SHIFT(x,y)
LET t=t+SQR(2)
NEXT X
NEXT Y
SET DRAW mode explicit !裏ページの表示。
!stop
END IF
WAIT DELAY 0.05
MOUSE POLL mx,my,mlb,mrb !マウスの状態取得。
LOOP UNTIL mrb=1

PICTURE 振子0
DRAW circle WITH SCALE(1)
DRAW 振子1(L1,r1)
DRAW 振子1(L2,r2) WITH ROTATE(A2(t)-A1(t))*SHIFT(0,-L1)
END PICTURE

PICTURE 振子1(L,r)
PLOT LINES: 0,0;0,-L
DRAW disk WITH SCALE(r)*SHIFT(0,-L)
END PICTURE

END

  !更新 SECOND 2006/11/30 16:58:12  ツリーへ

Re: 2重振り子のおもちゃ 返事を書く
SECOND 2006/11/30 16:58:12
!更新
!2重振り子のおもちゃ

!振れ角が小さい場合に制限して、簡略化された微分方程式。
! |A1"(t)|=|1   m2/(m1+m2)||A1(t)| A1(t):上の振り子の角度(重力方向0度)
! |A2"(t)| |L1/L2  L1/L2  ||A2(t)| A2(t):下の振り子の・・

! |A1"(t)|=(P)|λp 0|(P)^-1 |A1(t)| λpλm:固有値
! |A2"(t)|   |0 λm|    |A2(t)|  (P):固有ベクトルの列 行列

! |A1"(t)|=(P) |F1"(t)||λp 0||F1(t)| (P)^-1 |A1(t)|
! |A2"(t)|    |F2"(t)||0 λm||F2(t)|     |A2(t)|

! F1"(t)=λp F1(t)
! F2"(t)=λm F2(t)

DIM p(2,2),pg(2,2)

LET m1=2
LET m2=8
LET L1=20
LET L2=20

LET c=m2/(m1+m2)
LET d=L1/L2

!----固有方程式
! |1-λ c|=0
! |d d-λ|
!λ^2-(1+d)λ+(1-c)d=0
LET λp=(1+d +SQR((1-d)^2+4*c*d))/2
LET λm=1+d-λp
LET rλp=SQR(λp)
LET rλm=SQR(λm)

!----固有ベクトルで、列ベクトル行列Pを作る。p(,)
!種の行列が対称でなく、固有ベクトルは直交しない。
LET p(1,1)=(d-λp)
LET p(2,1)=d
LET p(1,2)=(d-λm)
LET p(2,2)=d

!----Pの逆行列P^-1 pg(,)
!Pが直交行列でなく、転置行列不可。
MAT pg=INV(p)

!----初期角度
LET A1_0=0.2
LET A2_0=0.5*SQR(2)

! |F1|=|pg11 pg12||A1|
! |F2| |pg21 pg22||A2|
LET F1_0=pg(1,1)*A1_0+pg(1,2)*A2_0
LET F2_0=pg(2,1)*A1_0+pg(2,2)*A2_0

!----初期速度
LET dF1_0=0
LET dF2_0=0

!----解の関数
DEF F1(t)=F1_0*COS(rλp*t)-dF1_0/rλp*SIN(rλp*t)
DEF F2(t)=F2_0*COS(rλm*t)-dF2_0/rλm*SIN(rλm*t)

! |A1|=|p11 p12||F1|
! |A2| |p21 p22||F2|
DEF A1(t)=p(1,1)*F1(t)+p(1,2)*F2(t)
DEF A2(t)=p(2,1)*F1(t)+p(2,2)*F2(t)

!----run
SET WINDOW -60,60,-60,60
LET r1=SQR(m1)
LET r2=SQR(m2)
LET tb=999
LET t0=TIME !開始
DO
LET t=(TIME-t0)*5
IF t<>tb THEN
LET tb=t
SET DRAW mode hidden !裏ページに書く。
CLEAR
PLOT TEXT ,AT 0,55:"マウス 右ボタンで、終了。"
FOR y=-10 TO 50 STEP 30
FOR x=-39 TO 39 STEP 26
DRAW 振子0 WITH ROTATE(A1(t))*SHIFT(x,y)
LET t=t+SQR(2)
NEXT X
NEXT Y
SET DRAW mode explicit !裏ページの表示。
!stop
END IF
WAIT DELAY 0.05
MOUSE POLL mx,my,mlb,mrb !マウスの状態取得。
LOOP UNTIL mrb=1

PICTURE 振子0
SET AREA COLOR (A1(t)+PI)*1.28
DRAW circle WITH SCALE(1)
DRAW 振子1(L1,r1)
DRAW 振子1(L2,r2) WITH ROTATE(A2(t)-A1(t))*SHIFT(0,-L1)
END PICTURE

PICTURE 振子1(L,r)
PLOT LINES: 0,0;0,-L
DRAW disk WITH SCALE(r)*SHIFT(0,-L)
END PICTURE

END

   └!訂正(注釈) SECOND 2006/12/01 02:16:27  ツリーへ

Re: !更新 返事を書く
SECOND 2006/12/01 02:16:27
!訂正(注釈)
!2重振り子のおもちゃ

!振れ角が小さい場合に制限して、簡略化された微分方程式。
! |A1"(t)|=|1   m2/(m1+m2)||A1(t)| ;A1(t):上の振り子の角度(重力方向0度)
! |A2"(t)| |L1/L2  L1/L2  ||A2(t)| ;A2(t):下の振り子の・・

! |A1"(t)|=(P)|λp 0|(P)^-1 |A1(t)| ;λpλm:固有値
! |A2"(t)|   |0 λm|    |A2(t)| ;(P) :固有ベクトルの列 行列

! |A1"(t)|=(P)|F1"(t)|
! |A2"(t)|   |F2"(t)|

!        |F1"(t)|=|λp 0||F1(t)|
!        |F2"(t)|=|0 λm||F2(t)|

!                 |F1(t)|(P)^-1 |A1(t)| 
!                 |F2(t)|    |A2(t)|
! F1"(t)=λp F1(t)
! F2"(t)=λm F2(t)

DIM p(2,2),pg(2,2)

LET m1=2 !錘(上)
LET m2=8 !錘(下)
LET L1=20 !吊り棒(上)
LET L2=20 !吊り棒(下)

LET c=m2/(m1+m2)
LET d=L1/L2

!----固有方程式
! |1-λ c|=0
! |d d-λ|
!λ^2-(1+d)λ+(1-c)d=0
LET λp=(1+d +SQR((1-d)^2+4*c*d))/2
LET λm=1+d-λp
LET rλp=SQR(λp)
LET rλm=SQR(λm)

!----固有ベクトルで、列ベクトル行列Pを作る。p(,)
!種の行列が対称でなく、固有ベクトルは直交しない。
LET p(1,1)=(d-λp)
LET p(2,1)=d
LET p(1,2)=(d-λm)
LET p(2,2)=d

!----Pの逆行列P^-1 pg(,)
!Pが直交行列でなく、転置行列不可。
MAT pg=INV(p)

!----初期角度
LET A1_0=0.2 !0.3
LET A2_0=0.5*SQR(2) !0.45*SQR(2)

! |F1|=|pg11 pg12||A1|
! |F2| |pg21 pg22||A2|
LET F1_0=pg(1,1)*A1_0+pg(1,2)*A2_0
LET F2_0=pg(2,1)*A1_0+pg(2,2)*A2_0

!----初期速度
LET dF1_0=0
LET dF2_0=0

!----解の関数
DEF F1(t)=F1_0*COS(rλp*t)-dF1_0/rλp*SIN(rλp*t)
DEF F2(t)=F2_0*COS(rλm*t)-dF2_0/rλm*SIN(rλm*t)

! |A1|=|p11 p12||F1|
! |A2| |p21 p22||F2|
DEF A1(t)=p(1,1)*F1(t)+p(1,2)*F2(t)
DEF A2(t)=p(2,1)*F1(t)+p(2,2)*F2(t)

!----run
SET WINDOW -60,60,-60,60
LET r1=SQR(m1)
LET r2=SQR(m2)
LET tb=999
LET t0=TIME !開始
DO
LET t=(TIME-t0)*5 !速さ
IF t<>tb THEN
LET tb=t
SET DRAW mode hidden !裏ページに書く。
CLEAR
PLOT TEXT ,AT 0,55:"マウス 右ボタンで、終了。"
FOR y=-10 TO 50 STEP 30
FOR x=-39 TO 39 STEP 26
DRAW 振子0 WITH ROTATE(A1(t))*SHIFT(x,y)
LET t=t+SQR(2)
NEXT X
NEXT Y
SET DRAW mode explicit !裏ページの表示。
!stop
END IF
WAIT DELAY 0.05
MOUSE POLL mx,my,mlb,mrb !マウスの状態取得。
LOOP UNTIL mrb=1

PICTURE 振子0
SET AREA COLOR (A1(t)+PI)*1.28
DRAW circle WITH SCALE(1)
DRAW 振子1(L1,r1)
DRAW 振子1(L2,r2) WITH ROTATE(A2(t)-A1(t))*SHIFT(0,-L1)
END PICTURE

PICTURE 振子1(L,r)
PLOT LINES: 0,0;0,-L
DRAW disk WITH SCALE(r)*SHIFT(0,-L)
END PICTURE

END

    └!訂正 SECOND 2006/12/01 11:11:27  ツリーへ

Re: !訂正(注釈) 返事を書く
SECOND 2006/12/01 11:11:27
!訂正
!2重振り子のおもちゃ

!振れ角が小さい場合に制限して、簡略化された微分方程式。
! |A1"(t)|=|1   m2/(m1+m2)||A1(t)| ;A1(t):上の振り子の角度(重力方向0度)
! |A2"(t)| |L1/L2  L1/L2  ||A2(t)| ;A2(t):下の振り子の・・

! |A1"(t)|=(P)|λp 0|(P)^-1 |A1(t)| ;λpλm:固有値
! |A2"(t)|   |0 λm|    |A2(t)| ;(P) :固有ベクトルの列 行列

! |A1"(t)|=(P)|F1"(t)|
! |A2"(t)|   |F2"(t)|

!        |F1"(t)|=|λp 0||F1(t)|
!        |F2"(t)| |0 λm||F2(t)|

!                 |F1(t)|=(P)^-1 |A1(t)| 
!                 |F2(t)|     |A2(t)|
! F1"(t)=λp F1(t)
! F2"(t)=λm F2(t)

DIM p(2,2),pg(2,2)

LET m1=2 !錘(上)
LET m2=8 !錘(下)
LET L1=20 !吊り棒(上)
LET L2=20 !吊り棒(下)

LET c=m2/(m1+m2)
LET d=L1/L2

!----固有方程式
! |1-λ c|=0
! |d d-λ|
!λ^2-(1+d)λ+(1-c)d=0
LET λp=(1+d +SQR((1-d)^2+4*c*d))/2
LET λm=1+d-λp
LET rλp=SQR(λp)
LET rλm=SQR(λm)

!----固有ベクトルで、列ベクトル行列Pを作る。p(,)
!種の行列が対称でなく、固有ベクトルは直交しない。
LET p(1,1)=(d-λp)
LET p(2,1)=d
LET p(1,2)=(d-λm)
LET p(2,2)=d

!----Pの逆行列P^-1 pg(,)
!Pが直交行列でなく、転置行列不可。
MAT pg=INV(p)

!----初期角度
LET A1_0=0.2 !0.3
LET A2_0=0.5*SQR(2) !0.45*SQR(2)

! |F1|=|pg11 pg12||A1|
! |F2| |pg21 pg22||A2|
LET F1_0=pg(1,1)*A1_0+pg(1,2)*A2_0
LET F2_0=pg(2,1)*A1_0+pg(2,2)*A2_0

!----初期速度
LET dF1_0=0
LET dF2_0=0

!----解の関数
DEF F1(t)=F1_0*COS(rλp*t)-dF1_0/rλp*SIN(rλp*t)
DEF F2(t)=F2_0*COS(rλm*t)-dF2_0/rλm*SIN(rλm*t)

! |A1|=|p11 p12||F1|
! |A2| |p21 p22||F2|
DEF A1(t)=p(1,1)*F1(t)+p(1,2)*F2(t)
DEF A2(t)=p(2,1)*F1(t)+p(2,2)*F2(t)

!----run
SET WINDOW -60,60,-60,60
LET r1=SQR(m1)
LET r2=SQR(m2)
LET tb=999
LET t0=TIME !開始
DO
LET t=(TIME-t0)*5 !速さ
IF t<>tb THEN
LET tb=t
SET DRAW mode hidden !裏ページに書く。
CLEAR
PLOT TEXT ,AT 0,55:"マウス 右ボタンで、終了。"
FOR y=-10 TO 50 STEP 30
FOR x=-39 TO 39 STEP 26
DRAW 振子0 WITH ROTATE(A1(t))*SHIFT(x,y)
LET t=t+SQR(2)
NEXT X
NEXT Y
SET DRAW mode explicit !裏ページの表示。
!stop
END IF
WAIT DELAY 0.05
MOUSE POLL mx,my,mlb,mrb !マウスの状態取得。
LOOP UNTIL mrb=1

PICTURE 振子0
SET AREA COLOR (A1(t)+PI)*1.28
DRAW circle WITH SCALE(1)
DRAW 振子1(L1,r1)
DRAW 振子1(L2,r2) WITH ROTATE(A2(t)-A1(t))*SHIFT(0,-L1)
END PICTURE

PICTURE 振子1(L,r)
PLOT LINES: 0,0;0,-L
DRAW disk WITH SCALE(r)*SHIFT(0,-L)
END PICTURE

END

     └!背景に○と□を置いた・・ SECOND 2006/12/03 08:23:45  ツリーへ

Re: !訂正 返事を書く
SECOND 2006/12/03 08:23:45
! 背景に○と□を置いた・・

!振れ角が小さい場合に制限して、簡略化された2重振り子。
! |A1"(t)|=|1   m2/(m1+m2)||A1(t)| ;A1(t):上の振り子の角度(重力方向0度)
! |A2"(t)| |L1/L2  L1/L2  ||A2(t)| ;A2(t):下の振り子の・・

! |A1"(t)|=(P)|λp 0|(P)^-1 |A1(t)| ;λpλm:固有値
! |A2"(t)|   |0 λm|    |A2(t)| ;(P) :固有ベクトルの列 行列

! |A1"(t)|=(P)|F1"(t)|
! |A2"(t)|   |F2"(t)|

!        |F1"(t)|=|λp 0||F1(t)|
!        |F2"(t)| |0 λm||F2(t)|

!                 |F1(t)|=(P)^-1 |A1(t)| 
!                 |F2(t)|     |A2(t)|
! F1"(t)=λp F1(t)
! F2"(t)=λm F2(t)

DIM p(2,2),pg(2,2)

LET m1=2 !錘(上)
LET m2=8 !錘(下)
LET L1=20 !吊り棒(上)
LET L2=20 !吊り棒(下)

LET c=m2/(m1+m2)
LET d=L1/L2

!----固有方程式
! |1-λ c|=0
! |d d-λ|
!λ^2-(1+d)λ+(1-c)d=0
LET λp=(1+d +SQR((1-d)^2+4*c*d))/2
LET λm=1+d-λp
LET rλp=SQR(λp)
LET rλm=SQR(λm)

!----固有ベクトルで、列ベクトル行列Pを作る。p(,)
LET p(1,1)=(d-λp)
LET p(2,1)=d
LET p(1,2)=(d-λm)
LET p(2,2)=d

!----Pの逆行列P^-1 pg(,)
MAT pg=INV(p)

!----初期角度
LET A1_0=0.2 !0.3
LET A2_0=0.5*SQR(2) !0.45*SQR(2)

! |F1|=|pg11 pg12||A1|
! |F2| |pg21 pg22||A2|
LET F1_0=pg(1,1)*A1_0+pg(1,2)*A2_0
LET F2_0=pg(2,1)*A1_0+pg(2,2)*A2_0

!----初期速度
LET dF1_0=0
LET dF2_0=0

!----解の関数
DEF F1(t)=F1_0*COS(rλp*t)-dF1_0/rλp*SIN(rλp*t)
DEF F2(t)=F2_0*COS(rλm*t)-dF2_0/rλm*SIN(rλm*t)

! |A1|=|p11 p12||F1|
! |A2| |p21 p22||F2|
DEF A1(t)=p(1,1)*F1(t)+p(1,2)*F2(t)
DEF A2(t)=p(2,1)*F1(t)+p(2,2)*F2(t)

!----run
SET WINDOW -60,60,-60,60
LET r1=SQR(m1)
LET r2=SQR(m2)
LET tb=999
LET t0=TIME !開始
DO
LET t=(TIME-t0)*5 !速さ
IF t<>tb THEN
LET tb=t
SET DRAW mode hidden !裏ページに書く。
CLEAR
PLOT TEXT ,AT 0,55:"マウス 右ボタンで、終了。"
SET AREA COLOR 15
DRAW disk WITH SCALE(17)*SHIFT(-26,37)
DRAW disk WITH SCALE(17)*SHIFT( 26,37)
PLOT AREA:-39,-10;-13,-10;-13,20;-39,20
PLOT AREA: 13,-10; 39,-10; 39,20; 13,20
FOR y=-10 TO 50 STEP 30
FOR x=-39 TO 39 STEP 26
DRAW 振子0 WITH ROTATE(A1(t))*SHIFT(x,y)
LET t=t+SQR(2)
NEXT X
NEXT Y
SET DRAW mode explicit !裏ページの表示。
!stop
END IF
WAIT DELAY 0.05
MOUSE POLL mx,my,mlb,mrb !マウスの状態取得。
LOOP UNTIL mrb=1

PICTURE 振子0
SET AREA COLOR (A1(t)+PI)*1.28
DRAW circle WITH SCALE(1)
DRAW 振子1(L1,r1)
DRAW 振子1(L2,r2) WITH ROTATE(A2(t)-A1(t))*SHIFT(0,-L1)
END PICTURE

PICTURE 振子1(L,r)
PLOT LINES: 0,0;0,-L
DRAW disk WITH SCALE(r)*SHIFT(0,-L)
END PICTURE

END


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。