いろいろ

モンテカルロ法の例

いつになったら、3.141592・・・になるでしょうか?

 M回
π =
誤差 =


カラーコード


コンピュータでは色を赤R、緑G、青Bの組み合わせで表現しています。
それぞれの色は256段階に分けられ、その組み合わせによって、合計1677万7216色を表します。
色の強さは16進数 #00〜#ff で表し、R, G, B の順に並べます。
赤は#ff0000、 緑は#00ff00、 青は#0000ff、 黒は#000000、となります。
なお、このページの文字は#336666 、周りの緑色の四角は#adff8f です。

Web Safe Color
WindowsやMacintoshに共通の216色をWeb Safe Colorといいます。
RGBの3色が #00(0), #33(51), #66(102), #99(153), #cc(204), #ff(255) の組み合わせでできています。
これらを白(#ffffff)から黒(#000000)の順番に並べると下図のようになります。

Color Circle 01
Color Circle 02
Color Circle 03
Color Circle 04
Color Circle 05
Color Circle 06

トップ

CIE x-y Y 表色系


R(700nm), G(546.1nm), B(435.8nm)の組み合わせでほぼ全ての色を表すことができますが、一部の色(カラースペクトルの波長 540nm から440nm)が表現できません。( R を負にすれば表すことができます )

そこで、仮想の色 X, Y, Z を用いて色を表す表色系が考えだされました。
X, Y, Z は R, G, B の値から次の式を用いて求めることができます。

X = 2.76883 R + 1.75171 G + 1.13014 B
Y = 1.00000 R + 4.59061 G + 0.06007 B
Z = 0.00000 R + 0.05651 G + 5.59417 B

この中で Y が明るさを表します。

下の図は、Web Safe Color 216色の X, Y, Z を求めて、グラフにしたものです。
右上は白(#ffffff) と黒(#000000)が重なるようにグラフを回転させたものです。

Color_XYZ

しかし、このままでは色の関係がわかりにくいので、絶対的な色合いを表現するために、X, Y, Z の絶対値 x, y, z を使うこととしました。

x = X / (X+Y+Z)
y = Y / (X+Y+Z)
z = Z / (X+Y+Z)

x+y+z =1となります。
ここで、x と y がわかれば z が決まることから、x と y で色を表したのが x-y 色度図です。

Color

グラフ上の各点は Web Safe Color の x, y を求めたものです( 一部明るさを補正してあります )。
#00ff00 から #0000ff の直線の左側の部分が R, G, B の組み合わせでは表せない色です。
例えば、x = 0.1, y = 0.5 は R = -146, G = 255, B = 145 になります。

x-y 色度図では、Red 赤 #ff0000, #cc0000, ・・・ #330000 が同じ値 (0.735, 0.265) になります。ただし、明るさ Y は異なります。

R G B X, Y, Z x, y
#ff0000 706.1, 255, 0 0.735, 0.265
#cc0000 565, 204, 0
#330000 151, 51, 0
#ffff001152.8, 1425.6, 14.4 0.445, 0.550
#cccc00 922.2, 1140.5, 11.5
#333300 230.6, 285.1, 2.9
#ffffff 1441.0, 1441.0, 1441.0 0.333, 0.333
#cccccc 1152.8, 1152.8, 1152.8
#333333 288.2, 288.2, 288.2
#000000 0, 0, 0 ???, ???


G - R線上の色を横から見ると下図のようになります。縦軸は明るさ Y です。

Color

トップ

ホワイトバランス


レストランなどの室内で料理などの写真を撮って、白っぽい食器などが赤く写ったことはないですか。

クレープ

鎌倉、アルモリックにて

見ているものは白なのに、写真には赤く写っている。これは照明の光が太陽光と違うためです。

まず、色が見えるとはどういうことでしょうか?
白い物体は太陽光をほとんどすべて反射して、その光が目に入ると、白く見えます。

白い物体  赤い物体

赤い物体は太陽光の中の赤の光を反射して、赤く見えます。

ここで、物体にあたっている光が太陽光ではなく、赤っぽい光だったらどうなるでしょうか。
目に入る光
白い物体が反射する光は赤っぽい光になり、目には赤い光だけが届きます。 しかし、それを見て脳は「これは白いものなんだから、赤く見えるけど、白なんだ」と判断します。
カメラの場合は、このような判断はしませんから、そのまま赤く写ります。
カメラ
これを正しい色に写すために、フィルムではタングステンタイプというフィルムがあります。
感光材の特性を白熱電球の赤っぽい光に合わせてあります。

デジタルカメラでは、デジタルデータに補正をかけます。赤を少なくする、青を多くする、など
これがホワイトバランスです。
ところで、色を補正するためには、光にRGBの成分がどれくらい含まれているかを知らなければなりません。 以前のビデオカメラでは、あらかじめ白い板などを写して、ホワイトバランスの調整をしていました。

最近のデジタルカメラは、太陽光や白熱電球などいろいろな光に合わせて、調整値が設定されています。この調整値の基準となるものが「色温度」です。

太陽光(5200K)、白熱電球(3200K)、日陰(7000K)のRGBの比率を模式的に表すと下図のようになります。

太陽光
5200K

白熱電球
3200K

日陰
7000K

太陽光
白熱電球
日陰

前述のクレープの写真を白熱電球の設定で撮ると、このようになります。

クレープ

料理によっては赤っぽい方がおいしく見えることもあります。いろいろな設定で写しておいて、よいと思うものを採用?しましょう。

次に、太陽光と白熱電球と各設定の組み合わせでのRGBの分布を示します。

太陽光の下で「太陽光」の設定

変換

白熱電球の下で「太陽光」の設定

変換

白熱電球の下で「白熱電球」の設定

変換

そして最後が、太陽光の下で「白熱電球」の設定で撮った場合です。

変換

注意
室内で、白熱電球の設定で撮影したまま、設定を太陽光に戻すのを忘れて、屋外で撮影すると、真っ青になります。戻し忘れにはくれぐれも注意しましょう。

トップ

色温度


物体を暖めていくと、その温度によって、電磁波を放出します。 物体の温度が上がっていくと、波長はどんどん短くなって、赤外線、可視光、紫外線と変化していきます。
これを黒体放射といいます(黒体輻射ともいう)。
(物体に色がついていると、その色の影響が出てしまいますので、真っ黒な物体 = 黒体を仮定します)
電磁波の波長とエネルギー分布は次の式で表されます。

光のエネルギー
プランク定数 h
光の速度 c、波長 λ
ボルツマン定数 k
物体の温度(絶対温度) T

この式で、太陽光 5200K、日陰 7000K、くもり 6000K、白熱電球 3200K、白色蛍光灯 4000Kのエネルギー分布を計算すると、下図のようになります。
(温度設定は Canon EOS Kiss Digital X による)
光のエネルギー
(エネルギーの合計が等しくなるように正規化してあります。)

これらの光を、5200Kの分布を基準にして、RGBに分解すると次の表のようになります。
(表はグラフに合わせてBGRの順番に並べてあります)

温度

B
435.8nm

G
546.1nm

R
700nm

色調

7000K

255

185

142

#8eb9ff

6000K

255

216

187

#bbd8ff

5200K

255

255

255

#ffffff

4000K

126

184

255

#ffb87e

3200K

58

129

255

#ff813a


表の右端の「色調」は、これらの光を白い物体に当てたときに、どのような色に見えるかを示してあります。

トップ  戻る

デジタルカメラの撮像素子


デジタルカメラに使われている撮像素子をまとめました。

撮像素子

横 × 縦

画素数
Mpix

画素の面積
μm2

機種

35mm

36 × 24

21.1

40.95

Canon D1

APS-C

22.2 × 14.8

10.1

32.53

Canon EOS Kiss Digital X

1/ 1.7

12.43 × 8.29

10

10.30

Ricoh GR 2

1/ 2

10.57 × 7.04

8

9.31

1/ 2.3

9.19 × 6.13

10.1

5.63

Casio EXILIM FC150

1/ 2.7

7.53 × 5.64

2

21.27

Nikon Coolpix 2000

1/ 3.6

5.68 × 4.28

8.1

3.06

Casio EXILIM
 ケータイ CA004

撮像素子

96dpiのモニターで、ほぼ実物大になります。


画素の面積は一つ一つの受光素子の面積です。受光素子の横×縦の面積を素子数で割って求めました。

最近の撮像素子1/ 2.3型は画素の面積は5μm2程度ですが、一昔前?の撮像素子では21μm2もあったんですね。総画素数は少ないですが、一つ一つの素子の面積はデジタル一眼レフ並みです。
実際、階調性はきれいです。

ケータイのカメラの3μm2では、RGB各色256階調を求めるのは無理なんでしょうか?
でも、けっこうきれいです。


トップ



先日、通勤途中できれいな虹を見ることができました。思わず持っていた携帯電話で写真を撮ったのがこの写真です。

虹

JR海老名駅から、大山方面

虹の図

虹の原理は、教科書では、このように水滴内部で屈折と反射をして7色に分かれる、と説明されています。

それで、ずーっと納得していたのですが、ふと、水滴に当たる光はこれ一本じゃないよねぇ、と思い始めました。他の部分に当たった光はどうなるの?、と考え始めると、夜も寝られない・・・なんてことはなかったのですが、しばらく気になっていて、ついに、エイ、自分で計算してしまえ、と思い立ち、エクセルで計算してみました。

まず、水の屈折率を理科年表で調べました。
虹の7色「赤橙黄緑青藍紫」の波長に対する屈折率はありませんでしたが、主な波長に対する屈折率は次のようなものでした。

波長 [ nm ]

屈折率

1256.0

1.3210

赤外線

656.3

1.3311

赤/橙

589.3

1.3330

546.1

1.3345

404.7

1.3428

303.4

1.3581

紫外線

理科年表<平成17年>より抜粋
注) 色名は筆者

これをもとに水滴に入る光を計算しました。

虹の赤

656.3 nm

虹の緑

546.1 nm

虹の紫

404.7 nm


45度ぐらいの範囲でいろいろな方向に広がっていることがわかります。
ここで、角度によってどれくらいの光量があるか、計算してみます。

虹の角度

赤/橙(656.3nm)は約43度、緑(546.1nm)は約42度、紫(404.7nm)は41度が光量が多いことがわかります。
39度以下は全部の光がほぼ均等にありますから、白になります。また、この角度の外側では光が来ませんので、ちょっと暗くなります。上の写真で、虹の左側(外側)が暗くて、右側(内側)が明るいのがわかりますね。

さて、この角度が虹の視半径となるわけですが、虹の写真を撮る場合、カメラの画角は長辺で86度以上ないと、丸い虹(上半分)を収めることができません。35mmカメラでいうと18mmの超広角レンズになります。

虹の写真

画面の中央が観察者、虹の中心は観察者の影



ところで、某鉄道会社の青森のCMで、「今何時だ」「2時です」「ほら、虹だ」というものがあります。
では、本当に2時に虹は見えるでしょうか?

青森の緯度は40度49分です。春分の日、秋分の日の南中高度は49度11分になります。午後2時には少し下がって38度になりますので、虹のてっぺんが水平線の上にでてきます。
冬至の午後2時には、太陽の高度は18度まで下がりますから、虹の上端が水平線から25度のところに来ます。

春分の日の虹
冬至の虹

単位は角度。横軸は0度が北、90度が東。

CMではもっと高い位置にあったような・・・、まあ、CMですから・・・。


トップ


太陽電池の向きと効率

屋根に太陽電池が乗っている家をたくさん見るようになりましたが、中にはこの向きで本当に大丈夫か?というような取り付け方をしている家があります。
それで、太陽電池の向きと効率を計算してみました。
 緯度は36.5度

(1) 南向きで角度は緯度とほぼ同じ35度

南向き 35度

 季節に関わらず、お昼頃に最大効率になって、春分の日、秋分の日には太陽電池にほぼ直角に太陽光線があたります。
 また、6月や12月でも最大効率は0.9になります。


(2) 東向き、20度

東向き 20度

 6月頃は午前10時頃に最大効率になりますが、12月は効率は0.6にもなりません。


(3) 西向き、20度

西向き 20度

 6月頃は午後1時頃に最大効率になりますが、12月は効率は0.6にもなりません。


以上、当然のことですが、年間を通して安定に発電したい場合は、太陽電池を南向きに設置することが必須条件となります。
敷地の関係で南向きにならなくても、できるだけ南向きに取り付けられるように屋根の設計をする必要があります。
( 東や西向きに取り付けた場合の冬の発電量はどれくらいになるのでしょうか?
 苦情は来ないのか、と人ごとながら心配になります。)

トップ


ロシュ限界 (Roshe Limit )

円軌道の場合

惑星や衛星がその主星に近づくと、主星の潮汐力によってバラバラになります。その様子をアニメーションにしました。
主星が地球で、伴星の比重は2.5、高度3750kmの円軌道、周期170分で周回しているとしています。
(この比重では、高度4070kmが計算式から導かれるロシュ限界なのですが、明確にバラバラにならないので、高度を低くしてあります)
下が主星になるように表示しています。
左上の数字は経過時間で、単位は「分」。60分ぐらいから分離が始まります。

Roshe Limit

小惑星の分裂

氷でできた小惑星(直径 2km, 比重 0.92)が、放物線軌道で地球に接近した場合、どのように分解していくか、を計算しました。
最接近の高度は300km、このときの速度 10900m/s
ロシュ限界は 14566km (高度 8200km)
小惑星がロシュ限界に達した時点を 0 とし、10分ごとの小惑星の状態を表示しています。

Roshe

ロシュ限界に達した時点で分解は始まりますが、20分ぐらいまでは大きな変化は見られません。
約30分後に最接近し、この時点で約2倍程度に広がります。
60分後、バラバラになった小惑星はロシュ限界を抜け出します。この時点で約5倍の大きさになります。
その後も各破片は離れ続けて地球から遠ざかります。

トップ

軌道計算


軌道計算などという偉そうなものではありませんが、ケプラーの法則などを使って、楕円軌道の解析などをしてみました。
下の図は地上 200kmのパーキング軌道から、静止衛星軌道(地上 約36000km)へのホーマン遷移軌道を表したものです。 (パーキング軌道は地球に近すぎるので省略)
Vc は離心率 e = 0 (円軌道)としたときの周回速度。
V は遠地点から θ[度] 進んだ時の速度。
R1, V1 は近地点(θ = 180度)、R2, V2 は遠地点(θ = 0度)での距離と速度となります。

遷移軌道

ホーマン遷移軌道


ケプラーの第三法則「公転周期の2乗は、軌道の長半径の3乗に比例する」を式で表すと次のようになります。
第三法則の式
(G : 重力定数、M : 主星の質量)
これは離心率 e が変わっても公転周期が一定であることを示しています。
アニメーションにすると次のようになります。

第三法則

ケプラーの第三法則



惑星、小惑星、彗星

地球の公転と惑星、小惑星などの公転を JavaScript で表現してみました。

惑星
 水星
 金星
 火星

小惑星
 リュウグウ
 イトカワ
 2012 DA14
 チェリャビンスクに
 落下した小惑星


彗星
 ハレー彗星
 パンスターズ彗星
 (C/2011 L4)


彗星軌道

月軌道付近において 10km/s で地球に接近する小惑星がどのようなコースで地球に突入するか、を計算しました。

衝突コース

地球の中心から約9300km以上ずれると地球にはぶつかりません。
地球に突入するときの速度は約15km/sとなります。


トップ

小町算


計算式を解く

計算式の欄に計算式を入力します。
整数の四則演算(+, -, *, /) 最後に = を忘れずに

計算式


答え


小町算

小町算の解を求めます。
小町算にはいろいろなルールが有りますが、ここでは数字の間に +, -, *, /, 空白 の5つを入れて計算します。
この解は全部で101通り有りますが、全てを表示できないので5つ表示します。
最後まで行くと最初に戻ります。

小町算






フラグ

トップ

フェイズド・アレイ・レーダー


こんごう

護衛艦 こんごう 横浜港にて

答え イージス艦の目、フェイズド・アレイ・レーダー(Phased Array Radar)

八角形の中に数千のレーダーアンテナがおさめられています。

規則正しく並べたアンテナから電波を発信させると電波同士が干渉します。
下の図は5個のレーダーから電波を発信した場合をシミュレーション(大げさ)したものです。
左側の図のように電波の位相を合わせると、電波はまっすぐ進みます。
右側のように位相をずらすと電波の向きが変わります。

Radar

電波の強い部分だけ表すと下図のようになります。

Radar

位相ズレ 0.25

Radar

位相ズレ −0.2

実際のフェイズド・アレイ・レーダーではアンテナの数は数千個あるため、ビームの広がりは小さく(2度以下に)なります。
機械式のレーダーでは向きを変えるのに0.数秒かかりますが、フェイズド・アレイ・レーダーでは数ミリ秒で電波の向きを変えることができます。
このため、数十個の目標をほぼ同時に監視することができます。

トップ

GIFアニメ


土浦の花火 (2008年)です。

たーまやー




ガス作動式自動小銃(アサルトライフル)のアニメ

Rifle

1秒間に10〜15回繰り返されます

別ウィンドーで開きます




ステップモータの1-2相励磁の動作アニメ

Step_Motor

Step_Motor

励磁のシーケンス




星型7気筒エンジンのアニメ

星型エンジン

零戦のエンジン栄は複列14気筒です

トップ

フライング ウインドウズ


画面をウインドウがさまよい歩きます

注) さまよい歩くためには JavaScript が有効になっている必要があります。

トップ

π の計算


計算の手順は

1) 乱数で x (0<= x <=1), y (0<= y <=1) を発生させる
2) L = √(x*x + y*y) を求める
3) L が 1以下ならば、カウンターの値に1加える
4) これを何万回も繰り返して、カウンターの値を繰り返した回数で割って、4倍する
5) これで、π が求まります。

計算自体は簡単なのですが、なかなか π = 3.141592 にはなりません。
100万回(1M回)繰り返して、3.141844、二回目は3.140716、10回繰り返して平均が3.142054。
1000万回(10M回)を10回繰り返して、平均が3.141743。

πの分布

この分布は二項分布なのですが、n がめちゃくちゃ多いので、正規分布で近似できます。
標準偏差 σ を計算すると、

繰り返し回数

標準偏差 σ

範囲 2σ

1M回
10M回
100M回
1,000M回
10,000M回

0.0016422 
0.0005193 
0.0001642 
0.0000519 
0.0000164 

3.138308〜3.144877
3.140554〜3.142631
3.141264〜3.141921
3.141489〜3.141697
3.141560〜3.141626


3.14159265 を求めるにはとんでもない回数を繰り返さなければならないようです。

実際の π は、グレゴリー級数やマチンの公式などを使って計算します。
グレゴリー級数
グレゴリー級数
マチンの公式
 4 arctan(1/5) - arctan(1/239) = π/4

この式を使うとn = 6までで 3.14159265 が得られます。
何とも簡単・・・

トップ

ビンゴゲームの確率


ビンゴって何個めでビンゴになるのが多いのかな、という疑問から確率を計算してみようということになりました。ただ、一般のビンゴゲームは 1 から 75 の数字の書かれたボールを使いますが、数が多すぎるのと、穴が開かないことが多いので、ここでは簡易的に 1 から 25 の数字で考えます。

(1) 5つ目でビンゴになる確率
5個の並び方は縦 5 列、横 5 行、斜め2つの12通りあります。5個並ぶ順番は5x 4x 3x 2x 1 = 120 通りになります。全部で 12 x 120 = 1440 通り
5x 5 のマス目に5個置く置き方は 25x 24 x 23x 22x 21 = 6,375,600 通り
確率は
1440 / 6375600 = 1 / 4427.5 = 0.0002259 = 0.023%

約 5000 回やれば、一回ぐらいは5つめでビンゴになるかもしれません。

(2) 6つ目でビンゴになる確率
列以外のところに置くのは1回目、2回目、3回目、4回目、5回目の5通りでそれぞれ20箇所に置けるので100通り、それに5個並べる並べ方が 120 通り。
全部で12x 100x 120 = 144000 通り
6個の置き方は 25x 24x 23x 22x 21x 20 = 127,512,000
6つめでビンゴの確率は
144000 / 127512000 = 1 / 885.5 =0.00113 = 0.11%

(3) 7つ目でビンゴになる確率
列以外のところに置くのは1から7の間で、
1-2, 1-3, 1-4, 1-5, 1-6, 2-3, 2-4, 2-5, 2-6, 3-4, 3-5, 3-6, 4-5, 4-6, 5-6 の15通り、
置き場所はそれぞれ 20x 19 = 380通り。
全部で 12x 15x 380x 120 = 8,208,000
7個の置き方は 25x 24x 23x 22x 21x 20x 19 = 2,422,728,000
7つめでビンゴの確率は
8208000 / 2422728000 = 1 / 295.17 = 0.00339 =0.34%

(4) 8つ目でビンゴになる確率
途中は省略
確率は
344736000 / 43609104000 = 1 / 126.5 = 0.0079 = 0.79%

(5) 21個目でビンゴになる確率
9つ目でのビンゴを考えると、別のところでビンゴになる場合もあり、重複の考え方が難しいので一気に最後21個目まで行きます。
20個まででビンゴにならない置き方、つまり、5個の空白をどのように配置すればいいかを考えます。
縦と横に並ばないようにすることを考えると、120通りの置き方ができますが、これでは斜めでビンゴになる場合があります。斜めのビンゴにならないように考えると48通りになります。
最後の一個(21個目)の置き方は 5 通り
これまでに置いた20個の置き方は、
20! = 2.43×10^18

25の升目に21個置く置き方は
25! / 4! = 6.46×10^23

21個目でビンゴになる確率は
2.43×10^18 × 48 × 5 / (6.46×10^23) = 1 / 1107.7 = 0.000903 = 0.09%

1000回に一回は21個目でビンゴになることになります。5個目でビンゴになる確率(0.023%)よりも大きいのです、びっくり。

(6) 9つ目から20個目の確率
組み合わせを考えるのがめんどくさいので、エクセルのマクロなどを使って、モンテカルロ法で計算します。
手順を簡単に説明すると、乱数で1〜25の数字を発生させて、マス目を埋めていって、何個目でビンゴになるかを求めます。それを何回も繰り返していって、何個目が一番多いかを求めていきます。当然数が多い方が精度が高くなります。
下のグラフは2000回の結果を示しています。

ビンゴのグラフ


7つ目は0.35%、8つ目は0.8% となって、上記の計算とほぼ一致していました。

グラフから一番ビンゴになりやすい回数(穴数)は15, 16ということがわかります。

一般のビンゴゲームは75個のボールを使うので 25 の3倍、ビンゴになる確率が一番大きいのはボールの数で45個から48個目となるのでしょう。

トップ

とあるゲームの数列

表の数列

裏の数列


1
11
21
31
41

51
61
71
81
91

101
111
121
131
141

151
161
171


52513 44451
13351 54115
14115 55145
61456 25452
64224 62152

45264 26332
46351 54366
45534 21662
34325 14221
26134 15412

13645 62665
41221 11323
42411 15522
46665 33563
11116 62525

64526 16652
52661 21435
12623 65153


1
11
21
31
41

51
61
71
81
91

101
111
121
131
141

151
161
171
181
191

201
211
221
231
241

251
261
271
281
291

301
311
321
331
341

351
361
371
381
391

401
411
421
431
441

451
461
471
481
491

501


35111 44356
61361 64455
66524 26321
36124 33452
13162 46354

65415 35215
43355 26155
24541 15212
41221 24635
62461 23265

34665 26664
24131 61244
22264 16141
22322 22555
23662 41455

31633 61322
14131 13245
35521 35531
26644 56221
35465 55565

66362 65264
41362 63231
63265 11422
66523 61364
53556 55653

54515 41424
15236 26512
44146 32251
61465 21362
41611 61126

34655 63113
41266 66526
55412 36256
32233 64454
56356 33543

43543 34663
51352 62226
63545 53264
14436 44423
13116 41355

52615 31632
52145 15522
16243 33252
43443 16336
63643 63341

43526 26161
53642 31664
13252 21456
23451 21514
54652 36163

13155 2215