4つの振り子 SECOND 2008/02/14 17:29:41 (修正1回) ├修正1回の内容 SECOND 2008/02/14 18:51:20 └Linuxでの動き報告 島村1243 2008/02/16 10:52:17 └おしさしぶりで、嬉しいですね。ご報告あり... SECOND 2008/02/16 14:23:09 └気になって調べてみましたが, 白石 和夫 2008/02/16 15:23:35
4つの振り子 SECOND 2008/02/14 17:29:41 (修正1回) ツリーへ
4つの振り子 |
返事を書く ノートメニュー |
SECOND <jjqdmekgpt> 2008/02/14 17:29:41 ** この記事は1回修正されてます | |
!4つの振り子。少々気持ち悪い。
!2重振子Chaos LET g= 9.8 !m/s^2 LET m1=0.1 !kg LET m2=0.1 !kg LET L1= 5 !m LET L2= 5 !m ! LET dt=0.05 !sec. 演算ピッチ。 ! LET μ2=m2/(m1+m2) LET L21=L2/L1 DEF ss1(w2,θ1,θ2)=-g/L1*SIN(θ1) -μ2*L21*w2^2*SIN(θ1-θ2) DEF ss2(w1,θ1,θ2)=-g/L2*SIN(θ2) +w1^2*SIN(θ1-θ2)/L21 DEF D(θ1,θ2)=1-μ2*COS(θ1-θ2)^2 DEF α1(w1,w2,θ1,θ2)=( ss1(w2,θ1,θ2) -L21*μ2*COS(θ1-θ2)*ss2(w1,θ1,θ2) )/D(θ1,θ2) DEF α2(w1,w2,θ1,θ2)=(-ss1(w2,θ1,θ2)*COS(θ1-θ2)/L21 +ss2(w1,θ1,θ2) )/D(θ1,θ2) SUB RK(θ1,θ2,w1,w2) LET w11=w1 LET w12=w2 LET α11=α1(w1,w2,θ1,θ2) LET α12=α2(w1,w2,θ1,θ2) ! LET w21=w1+α11*dt/2 LET w22=w2+α12*dt/2 LET α21=α1(w21,w22,θ1+w11*dt/2,θ2+w12*dt/2) LET α22=α2(w21,w22,θ1+w11*dt/2,θ2+w12*dt/2) ! LET w31=w1+α21*dt/2 LET w32=w2+α22*dt/2 LET α31=α1(w31,w32,θ1+w21*dt/2,θ2+w22*dt/2) LET α32=α2(w31,w32,θ1+w21*dt/2,θ2+w22*dt/2) ! LET w41=w1+α31*dt LET w42=w2+α32*dt LET α41=α1(w41,w42,θ1+w31*dt,θ2+w32*dt) LET α42=α2(w41,w42,θ1+w31*dt,θ2+w32*dt) ! LET θ1=θ1+(w11+2*w21+2*w31+w41)*dt/6 LET θ2=θ2+(w12+2*w22+2*w32+w42)*dt/6 LET w1=w1+(α11+2*α21+2*α31+α41)*dt/6 LET w2=w2+(α12+2*α22+2*α32+α42)*dt/6 END SUB !----init. LET a_1=PI*0.8 !初期角度 LET a_2=PI*0.9 LET a_3=0 !初期角速度 LET a_4=0 ! LET b_1=-a_1+0.001 LET b_2=-a_2 LET b_3=0 LET b_4=0 ! LET c_1=a_1 LET c_2=a_2+0.002 LET c_3=0 LET c_4=0 ! LET d_1=-a_1 LET d_2=-a_2+0.003 LET d_3=0 LET d_4=0 ! !----run LET w=14 SET WINDOW -w,w,-w,w SET LINE width 4 SET LINE COLOR 43 LET r1=SQR(m1) LET r2=SQR(m2) LET t0=TIME DO LET t=TIME IF dt=<ABS(t-t0) THEN SET DRAW mode hidden CLEAR PLOT TEXT,AT 0.25*w,0.9*w:"マウス 右ボタンで、終了。" PLOT TEXT,AT -0.98*w,0.93*w,USING"演算ピッチ=#.### 秒":dt PLOT TEXT,AT -0.98*w,0.87*w,USING"描画ピッチ=#.### 秒":t-t0 LET t0=t DRAW PDL1X2(a_1,a_2) WITH ROTATE(a_1)*SHIFT(-3,3) DRAW PDL1X2(b_1,b_2) WITH ROTATE(b_1)*SHIFT(3,3) DRAW PDL1X2(c_1,c_2) WITH ROTATE(c_1)*SHIFT(-3,-3) DRAW PDL1X2(d_1,d_2) WITH ROTATE(d_1)*SHIFT(3,-3) CALL RK(a_1,a_2,a_3,a_4) CALL RK(b_1,b_2,b_3,b_4) CALL RK(c_1,c_2,c_3,c_4) CALL RK(d_1,d_2,d_3,d_4) SET DRAW mode explicit END IF WAIT DELAY 0 !電力セーブ MOUSE POLL mx,my,mlb,mrb LOOP UNTIL mrb=1 PICTURE PDL1X2(θ1,θ2) DRAW circle WITH SCALE(0.3) DRAW PDLM(L1,r1) DRAW PDLM(L2,r2) WITH ROTATE(θ2-θ1)*SHIFT(0,-L1) END PICTURE PICTURE PDLM(L,r) PLOT LINES: 0,0;0,-L DRAW disk WITH SCALE(r)*SHIFT(0,-L) END PICTURE END |
├修正1回の内容 SECOND 2008/02/14 18:51:20 ツリーへ
Re: 4つの振り子 |
返事を書く ノートメニュー |
SECOND <jjqdmekgpt> 2008/02/14 18:51:20 | |
修正1回の内容
!----init. LET a_1=PI*0.8 !初期角度 LET a_2=PI*0.8 −−−−−>変更。LET a_2=PI*0.9 LET a_3=0 !初期角速度 LET a_4=0 単なる動き方の好みで、あまり意味は ありません。 a_1~4, b_1~4, c_1~4, d_1~4 の初期角度(rad.)、初期角速度(rad./sec)を、 自由に変更すると、多彩なバリエーションが生じます。 |
└Linuxでの動き報告 島村1243 2008/02/16 10:52:17 ツリーへ
Re: 4つの振り子 |
返事を書く ノートメニュー |
島村1243 <bjllmpcujp> 2008/02/16 10:52:17 | |
Linuxでの動き報告
Win98SEで動作を楽しませて頂きました。 同じコードをLinux版6.4.5(OSはVine4.0とFedora7で実行)で見てみると下記が異なっていました。 (1)アーム(棒)の色:Winではオレンジ色。Linuでは黒。 (2)固定点丸の色と太さ:Winでは細いオレンジ色の丸。Linuxでは太い黒丸。 (3)固定点での棒の動き:Winでは丸の中央位置を棒が回転中心としている様に 見える。Linuxでは太い丸の内側に沿って棒が移動している様に見える。 (4)描画画面での右クリック停止後の再始動:Winでは停止した後、BASICウィン ドウの▲ボタンクリックでプログラムは正常に初期状態から再始動する。Linuxでは停止した後、 BASICウィンドウの▲ボタンクリックしても描画画面はクリアされて何も表示されない(プログ ラムは走っていない)。停止操作をBASICウィンドウの「中断」ボタンクリックで行うと、▲ボ タンクリックでプログラムは正常に初期状態から再始動する。 以上の動作の違いが有りました。 |
└おしさしぶりで、嬉しいですね。ご報告あり... SECOND 2008/02/16 14:23:09 ツリーへ
Re: Linuxでの動き報告 |
返事を書く ノートメニュー |
SECOND <jjqdmekgpt> 2008/02/16 14:23:09 | |
おしさしぶりで、嬉しいですね。ご報告ありがとうございます。
・・そろそろお互いに、還暦ですね。(^^) XPまでは、試したのですが、 うちは、殆んどが、過去のPCー98xxシリーズの残骸だらけ(約10台?)で、 その保守に追われて、Linuxの動作する環境が、なかなか、つくれません。 また、最近、自由時間が、ほとんど無くなってて・・ できれば、このプログラムの、Linuxコンパチブルへの改造を、 お願いできれば、幸です。 不可な事もありますので、無理はしないで、 遊びの範囲で、できるならばで・・? すみません。なにもしないで。 諏訪 雄治 |
└気になって調べてみましたが, 白石 和夫 2008/02/16 15:23:35 ツリーへ
Re: おしさしぶりで、嬉しいですね。ご報告あり... |
返事を書く ノートメニュー |
白石 和夫 <ynwythjfwu> 2008/02/16 15:23:35 | |
気になって調べてみましたが,
SET LINE COLOR 43 が原因です。43番の色は異なるバージョン間では統一が取れていません。 |