wien.bas


 19世紀にWienは、黒体輻射の曲線の最大値λmaxが次の式に従って
温度とともに変移することを実験的に観測した。

  λmax = 2.90 × 10-3 m K     (1)

 Planckは、エネルギーの量子化を行うと、

  ρ(λ, T) = {8πhc/λ5 }dλ/[ exp (hc/λkT) - 1]     (2)

となることを示した。

   dρ/dλ=0        (3)

とおくと、微分して、式

   e-x + x/5 = 1      (4)

が、最大値を与えることが示される。

 ここで、 x = hc/λkT

 式(4)の方程式を解く一つの方法は、十分に小さな x の値を選び、方程式を
満たすまで x の値を少しずつ増やしていくものである。

 x の初期値を1とする。( e-1 + 1/5 < 1 である。)


10 ' Program wien : ' アポストロフィーはREMと同じ働きをする
20 X = 1 :
' コロンで区切ると一行に複数の命令を書ける
30 X = X + 0.1 :
' この増分は変更できる
40 A = EXP(-X)+(X/5)
50 PRINT "X=";X;" A="; A
60 IF A < 1 THEN GOTO 30 :
' 処理系によってはGOTOがいらない
70 END


実行結果

回数 e-x + x/5
1 1 .567879441171442
2 1.1 .55287108369808
3 1.2 .541194211912202
     
39 4.8 .96822974704902
40 4.9 .987446583070924
41 5 1.00673794699909



 Active Basic にはバグがあり、行60で
60 IF (A-1) < 0 THEN GOTO 30
とすると、正しくない結果を与える。

2002 Copyright 木原 寛