投稿

相対性理論 (1回目)

イメージ
2023/5/15(月) 相対性理論 (1回目)   (特殊相対性理論:Special relativity theory)   1回目は t = t'/√{1-(v/c) 2 }と 微小不変量(時空間内の微小距離)dsについて ds 2  = -(cdt) 2  + dx 2  + dy 2  + dz 2   の導出       ■ t = t'/√{1-(v/c) 2 } の導出     光:電車内を真上に進光とする   電車内から見た値 t':時間 ct':光の移動距離 v'= 0:観測者の速度   電車外から見た値 t:時間 v:電車の移動速度 vt:電車の移動距離 ct:光の移動距離   図より (ct') 2  = (ct) 2  - (vt) 2   ct' = t√(c 2  - v 2 ) t' = t√{1 - (v/c) 2 } より t = t'/√{1-(v/c) 2 }   電車の速度vがcに近づくと tはt'の∞倍に近づく つまり 静止している場所のtは速く進み 移動している場所のt'はゆっくり進む   ただし 速度は相対的なものなので 移動しているのは加速した方 と考えられる       ■ 微小不変量の導出 図より (ct') 2  = (ct) 2  - (vt) 2   ここで v' = 0なので (ct') 2  - (vt') 2  = (ct) 2  - (vt) 2   も成り立つ vt = x、vt' = x'と置き、符号を正にとると -(ct') 2  + x' 2  = -(ct) 2  - x 2   これを3次元に拡大しs 2 と置くと s 2  = -(ct) 2 +x 2 +y 2 +z 2  = -(ct') 2 +x' 2 +y' 2 +z' 2   微小区間で書くと ds 2  = -(cdt) 2 +dx 2 +dy 2 +dz 2  = -(cdt') 2 +dx' 2 +dy' 2 +dz' 2   dsは時空間内の微小距離で 座標系('の有無)によらず不変なので 不変量と

N88-BASICでZ80アセンブリ (2回目)

イメージ
2023/5/12(金) N88-BASICでZ80アセンブリ (2回目)   N88-BASIC(PC-8801)互換?XL-BASICのMONで アセンブリを動かして見ます   XLBasic01.exeをダブルクリックして XL-BASICを起動して下さい   mon でモニターに入り a9000 でアセンブリを打って行きます (小文字は大文字に変換されます)   LD A,80H     … Aレジスタに文字コード&h80を入れる LD HL,0F3C8H … HLレジスタにT-VRAM(&hF3C8)を入れる LD B,80      … Bレジスタに文字数(80)を入れる LD (HL),A    … HL番地にAを入れる INC HL       … HL = HL + 1 INC A        … A = A + 1 DJNZ 9007H   … B = B - 1:IF B <> 0 THEN LD (HL),Aへ RET          … RETURN(終了)   相対ジャンプ命令も絶対アドレスで指定して下さい 自動で相対アドレスに変換されます   T-VRAMの先頭から キャラクターコード&h80~ 文字を80文字書込む プログラムです   (XL-BASICはT-VRAMアドレスの変更には 対応していませんので常に&hF3C8~です)   g9000,- で9000hからRETまで実行します (途中のCALL,RETのペアでは止まりません)   tで1命令ずつトレース出来ます t2で2命令ずつ,t-でRETまでトレースします   XLBasic/Doc/ReferenceXL.txtの MONの所にコマンドの説明がありますので 参照して下さい       l9000,+d で9000h~dhバイトの逆アセンブルを表示します   l9000,+d,d でDATA文として逆アセンブルを XLBasic01prn.txtに出力します   LOADすると行番号が付加されます   BASICプログラムからアセンブリを実行するのに 使用して下さい   XL-BASIC付属のアセンブリのサンプル (XLBasic/AZ/z1.bas~z3.bas)は この方法で作成しています     また、TRONの状態

N88-BASICで量子力学

イメージ
2023/5/8(月) N88-BASICで量子力学   (Quantum mechanics)   シュレディンガー方程式の導出 https://ulprojectmail.blogspot.com/2023/05/quantum-1.html 量子力学 (1回目)   時間に依存しないシュレディンガー方程式の分離 https://ulprojectmail.blogspot.com/2023/05/quantum-2.html 量子力学 (2回目)   井戸型ポテンシャル https://ulprojectmail.blogspot.com/2023/05/quantum-3.html 量子力学 (3回目)     ■ 記号 x :位置(m) m :質量(kg) E :エネルギー(J) h :プランク定数(6.62607015×10 -34 J・s) ℏ :ディラック定数 [ℏ = h / (2π)] φ n (x):波動関数   ■ 井戸型ポテンシャル E n  = n 2 ℏ 2 π 2 /(2mL 2 ) φ n (x) = √(2/L)・sin{(nπ/L)x} (n = 1,2,3,…)     ■ 式変形 E n  = n 2 ℏ 2 π 2 /(2mL 2 ) = n 2 {h/(2π)} 2 π 2 /(2mL 2 ) = n 2 (h/2) 2 /(2mL 2 ) = n 2 h 2 /(8mL 2 )   コンピュータの数値は有限の為 2乗はOver flowや0(10e-40は0) になるなどの 不具合が起きる場合があるので 計算順序に工夫が必要   (10 -20 ) 2  / (10 -20 ) 2  は1だが (10 -20 ) 2  = 10 -40  はコンピュータでは0となり 0 / 0となってしまうので (10 -20  / 10 -20 ) 2  としなければならない     ■ 状況設定 電子の質量m e  = 9.1093837015×10 -31  kg 水素の直径0.2 nm 水素が入るくらいの井戸に 電子が入っている状況を使用しました     nに自然数を入力すると エネルギー 存在確率 波動関数 を表示します   VL,NL,XL-BASICと blg~.zip (quan001.bas)は 以下のリンクからダウ

量子力学 (3回目)

2023/5/7(日) 量子力学 (3回目)   (Quantum mechanics)   今回は井戸型ポテンシャルの解です   時間依存しない(定常状態) シュレディンガー方程式の階   ■ 微分方程式の解 (∂ 2 /∂x 2 )φ(x) = -k 2 φ(x)   aexp{i(kx+b)} = exp(ib)aexp(ikx) = Aexp(ikx) なので微分して定数項kが出ているので φ(x) = Cexp(ikx) + Dexp(-ikx)と置くと   (∂ 2 /∂x 2 )φ(x) = (ik) 2 Cexp(ikx) + (-ik) 2 Dexp(-ikx) = -k 2 {Cexp(ikx) + Dexp(-ikx)} = -k 2 φ(x) となり、解であると分かる   オイラーの公式より φ(x) = Cexp(ikx) + Dexp(-ikx) = C{cos(kx)+isin(kx)}+D{cos(-kx)+isin(-kx)} = C{cos(kx)+isin(kx)}+D{cos(kx)-isin(kx)} = (C+D)cos(kx)+(C-D)isin(kx) ここでB = C+D、A = (C-D)iと置き直すと   φ(x) = Bcos(kx) + Asin(kx) となる       ■ 記号 t :時間(s) x :位置(m) x :位置ベクトル(m) m :質量(kg) E :エネルギー(J) h :プランク定数(6.62607015×10 -34 J・s) ℏ :ディラック定数 [ℏ = h / (2π)] φ( x ):時間を含まない波動関数 V( x ):ポテンシャルエネルギー H :ハミルトニアン ∇:ナブラ [∇ = (∂/∂ x )] L :井戸の底の長さ(m)   時間を含まない1次元のシュレディンガー方程式 [{-ℏ 2 /(2m)}(∂ 2 /∂x 2 ) + V(x)]φ(x) = Eφ(x)       ■ 井戸型ポテンシャル 底の長さLの井戸(両壁の高さが∞)   ▼ x < 0, x > L のとき V(x) = ∞ φ(x) = 0 … 存在確率|φ(x)| 2  = 0   ▼ 0 ≦ x ≦ L のとき V(x) = 0 {-ℏ 2 /(2m)}(∂ 2 /∂x 2 )φ

量子力学 (2回目)

2023/5/5(金) 量子力学 (2回目)   (Quantum mechanics)   今回は時間に依存しない シュレディンガー方程式の導出です       ■ 記号 y :変位(m) A :振幅(m) λ:波長(m)(m/回) f :波の振動数(Hz)(回/s) v :速度(m/s) [波の速度v = λf] k :角波数(rad/m) [k = 2π/λ] ω:各振動数(rad/s) [ω = 2πf] x :位置(m) t :時間(s) ν:物質波などの振動数(Hz) c :光速(m/s) x :位置ベクトル(m) m :質量(kg) E :エネルギー(J) p :運動量(kg・m/s) [p = mv] h :プランク定数(6.62607015×10 -34 J・s) ℏ :ディラック定数 [ℏ = h / (2π)] Ψ( x ,t):波動関数 V( x ,t):ポテンシャルエネルギー [またはV( x )] H:ハミルトニアン ∇:ナブラ [∇ = (∂/∂ x )]       ■ シュレディンガー方程式の変数分離 iℏ(∂/∂t)Ψ(x,t) = [{-ℏ 2 /(2m)}(∂ 2 /∂x 2 ) + V(x,t)]Ψ(x,t) EΨ(x,t) = HΨ(x,t)   Ψ(x,t) = φ(x)f(t)と置く E{φ(x)f(t)} = H{φ(x)f(t)} φ(x)Ef(t) = f(t)Hφ(x) … 定数項を出す   {1/f(t)}Ef(t) = {1/φ(x)}Hφ(x) = Eと置く 左辺はxに依存せず、右辺はtに依存しないので Eは一定となる   {1/φ(x)}H{φ(x)} = E = const.より Hφ(x) = Eφ(x) [{-ℏ 2 /(2m)}(∂ 2 /∂x 2 ) + V(x)]φ(x) = Eφ(x)   一方 {1/f(t)}Ef(t) = E iℏ(∂/∂t)f(t) = Ef(t) (∂/∂t)f(t) = (E/iℏ)f(t) (∂/∂t)f(t) = (-iE/ℏ)f(t)       ■ まとめ 時間を含むシュレディンガー方程式 EΨ( x ,t) = HΨ( x ,t) iℏ(∂/∂t)Ψ( x ,t) = [{-ℏ 2 /(2m)}(∂ 2 /∂ x 2 ) + V( x ,t)]Ψ( x

N88-BASICでZ80アセンブリ (1回目)

イメージ
2023/5/3(水) N88-BASICでZ80アセンブリ (1回目)   N88-BASIC(PC-8801)互換?XL-BASICの MONで お手軽に Z80アセンブリを 動かして見ます   (実機のmonと機能が違うので注意して下さい)   XLBasic01.exeをダブルクリックして XL-BASICを起動して下さい   mon でモニターに入り a9000 でアセンブリを打って行きます LD A,1  … Aレジスタに1を入れる LD B,2  … Bレジスタに2を入れる ADD A,B … A = A + B RET     … サブルーチンの終わり   xでレジスターの内容を表示出来ます g9000 で9000から1命令実行 t で続き(PCが示すアドレス)から1命令実行 t- でRET実行まで進みます (途中のCALL,RETのペアでは停止しません)   最終的に Aレジスターに1+2の結果3が入ります   l9000,+6 で9000番地から6バイト逆アセンブルできます   XL-BASICでは CALLされていない(RETでSPが0になる) 状態でRETが実行されると それ以上実行されないようにしてあります   CLEAR ,&H8FFFなどでSPが書き変わった後は 安全処置が働かなくなるので注意して下さい   Ctrl+bまたはBreakキーでMONを終了し BSAVE "ファイル名.bin",&H9000,6 (6はバイト数) でセーブ BLOAD "ファイル名.bin" でロード できます   注意 アセンブリの実行は固まって動かなくなることが ありますので保存(セーブ)を忘れないようにして下さい       BASICのDATA文をつくる   l9000,+6 で9000h~6バイトの逆アセンブルを表示します   l9000,+6,d でDATA文として逆アセンブルを XLBasic01prn.txtに出力します   LOADすると行番号が付加されます   BASICプログラムからアセンブリを実行するのに 使用して下さい   XL-BASIC付属のアセンブリのサンプル (XLBasic/AZ/z1.bas~z3.bas)は この方法で作成しています   XLBasic/Doc/

量子力学 (1回目)

2023/5/1(月) 量子力学 (1回目)   (Quantum mechanics)   今回はシュレディンガー方程式の導出です       ■ 記号 y :変位(m) A :振幅(m) λ:波長(m)(m/回) f :波の振動数(Hz)(回/s) v :速度(m/s) [波の速度v = λf] k :角波数(rad/m) [k = 2π/λ] ω:各振動数(rad/s) [ω = 2πf] x :位置(m) t :時間(s) ν:物質波などの振動数(Hz) c :光速(m/s) x :位置ベクトル(m) m :質量(kg) E :エネルギー(J) p :運動量(kg・m/s) [p = mv] h :プランク定数(6.62607015×10 -34 J・s) ℏ :ディラック定数 [ℏ = h / (2π)] Ψ( x ,t):波動関数 V( x ,t):ポテンシャルエネルギー [またはV( x )] H:ハミルトニアン ∇:ナブラ [∇ = (∂/∂ x )]       ■ 正弦波 位置による変位 x = 0のときy = 0とする x = 2λのときx/λ=波2回分なので 位相は2π×2(=2πx/λ)となるので y = Asin(2πx/λ)   時間による変位(正弦波は右に移動するとする) t = 0のときy = 0とする t = 2s、f=3Hzのときft=波3×2回分なので 位相は2π×3×2(=2πft)となるが 正弦波が右方向に進行すると 初め波は負の方向に変位するので y = Asin(-2πft) となる   位置と時間による位相を合わせて y = Asin(2πx/λ - 2πft) y = Asin{2π(x/λ - ft)} k = 2π/λ、ω = 2πfより   y = Asin(kx - ωt)       ■ 正弦波の指数表記 y = Asin(kx - ωt)と y = Acos(kx - ωt)は位相が違うだけで 同じく波を表している y = A{cos(kx - ωt) + isin(kx - ωt)} の実部も同じく波を表している オイラーの公式 exp(iθ) = e iθ  = cosθ+isinθより y = Ae i(kx - ωt)  = Aexp{i(kx - ωt)} 波動関数 Ψ(x,t) = Aexp