ラベル 偏光板 の投稿を表示しています。 すべての投稿を表示
ラベル 偏光板 の投稿を表示しています。 すべての投稿を表示

2024年2月12日月曜日

数学グラフ計算機Desmosで偏光板アプリを作る

 以前のこのブログ記事で、量子計算に基づく、偏光板のスマホアプリを作成した。
これと同等機能のアプリを、最近知ったDesmos(2D3D数学グラフ計算機)を用いて作成してみた。Desmosの素晴らしさに感嘆!

 ノーコードで(というよりも、宣言的記述だけで)、インタラクティブに動作するアプリが簡単に作れてしまう。例えば、関数の計算式に未定義のパラメータ名が出てくると、そのパラメータを設定するスライダーが自動的に出てくる。それを動かすとパラメータを変化させたアニメーションも簡単に作れる。プログラミングにとらわれず、やりたいことを数学的に記述すれば良い、という感があって嬉しい。

 さらにwebで作成したアプリは、ほとんどそのままスマホアプリのように使うこともできる。
これで、ビジュアライゼーションの強力なツールを身につけられる!

 以下の図1、図2をご覧いただきたい。説明はほとんど不要であろう。
 以下の短いビデオもご覧ください。
 さらに、国際数学アートコンテストもやっていて、楽しく、ためになる。

 なお、上記はDemosの「幾何ツール」と呼ばれるものを使った。この中で、角度θに偏光した光子が軸角度αの偏光板を通過する確率p(θ, α)を使ったいるのだが、その3Dグラフを見たい場合は、別途「3Dgraph」で描いたものを参照できる。以下の例をご覧いただきたく。

2023年5月16日火曜日

光子が偏光板を通過する確率のグラフ表示

[要旨] 偏光板の重ね合わせで起こる不思議な現象を再現するスマホアプリを前回作成しました。そこでの要点は、量子重ね合わせの原理に基づき、光子が偏光板を通過する確率を計算することでした。今回は、単にそのビジュアライゼーションに過ぎませんが、2D、3Dグラフ表示で通過確率の様子を楽しみます。

光子が偏光板を通過する確率のグラフ表示
 偏光角度θの光子が軸角度αの偏光板に到達した場合、光子がそこを通過する確率pは、量子計算の基礎事項にも基づき以下のように計算できます。

p = (cosθcosα + sinθsinα)の平方

 この確率pを3Dグラフ表示したのが図1です。ちょっとたいそうなグラフになってしまいました。角度θとαが等しい場合だけ確率p = 1.0(最大値)となり、両者が直交する場合はp = 0.0(底面の最小値)となることが確認できます。また、全体としては、対角線に直交して進むsin波のようになっています。

 さらにもう少し分かりやすくするため、光子の偏光θの軸でスライスして、2Dグラフ表示したものが図2です。

 
 ついでに、Mac Grapherによる、方程式からのグラフ描画も載せておきます。

2023年5月14日日曜日

量子力学計算に基づいて偏光板を模擬するスマホアプリ

[要旨] 偏光板の重ね合わせで起こる不思議な現象は、量子コンピューティングの数学モデルによって、すでに説明がついている。→こちら→こちらにその記事を書いた。今回の記事では、その原理に基づいて開発したスマホアプリ(with MIT App Inventor)について述べる。実物の偏光板で行ったのとほぼ完全に同じ結果を得ることができた。

その後の改訂版はこちらです。

スマホアプリの概要
 今回のスマホアプリの外観は図1のようである。動作原理は、既報と同じなので詳細は略す。要点は、ある偏光板に到達した光子の偏光角度がθで、その偏光板の軸角度がαである場合、光子がそこを通過する確率を計算できることである。αとθが等しい場合は通過確率 = 1.0、両者が直交する場合は通過確率 = 0.0 となる。
 スマホ画面での見え方は、偏光板に相当する円盤の塗りの透明度を、その通過確率を適用して調整すれば良いのである。実際の偏光板は正方形が多いが、ここでは、回転処理を簡単にするため円形を用いた。その円盤の回転を明示するため、スライダーを用いて、中心から円周に至る1本の直線を回転させた。 
 なお、最初の偏光板1に到達する光子の偏光角度は全くランダムなのであるが、ここではそれを何らかのフィルターを通して、ある偏光角度になっていると仮定する。一例として、偏光板1に到達する光子はデフォルトでは45°に偏光しているが、ランダムな角度に設定することもできる。


スマホアプリの実行例

 3枚の偏光板を使う操作例を図2に示す。以下の手順で観察する。
  1. 画像に1枚目の偏光板を置くため、偏光板1にチェックをつける。軸角度は0°になっており、この方向に偏光した光子だけが通過するので少し暗くなる。(上記仮定から、光子の通過確率は0.5となるためである。)
  2. 次に、一番手前の偏光板3にもチェックをつけて、偏光板3を重ねた状態にする。偏光板3のスライダーを右へ動かすと段々暗くなる。軸角度90°では光子は全く通らなくなり、真っ暗になってしまう。
  3. さらに、偏光板1と偏光板3の間に入れる偏光板2にもチェックをつける。そして、その偏光板2のスライダーを右へ動すと段々見えてくる。軸角度45°の時が一番よく見える!この場合、偏光板1を通過した光子が偏光板3も通過する確率は、下図右側の通り、0.25となり、ある程度が画像が見えてくる。

 この操作例はYoutubeビデオとしてここに公開しているので、ご覧いただきたい。

感 想
 光子がどのように種々の軸角度の偏光板を通過するか(あるいは吸収されるか)は、量子力学計算で明らかにできる。それを、これまでに、机上計算、IBM Quantum実機、今回のスマホアプリの3通りで実現できた。量子コンピューティングの最も基本的な概念の一部の理解を深めるのに非常に有効だと感じた。

 今回のアプリは、MIT App Inventorを用いて、着想から半日程度で実装することができた。(ただし、ユーザインタフェースはその後も手直しはした。)この経験から、「実感する科学」「身の回りの数学」「セミナー」などの題材検討にご参考になれば幸いである。

2023年5月8日月曜日

"Quantum Computing for Everyone" 再訪2 - IBM Qによる測定

[要旨] 偏光板の重ね合わせによる不思議については、すでに、前報(こちら)で述べた数学モデルが、その全てを説明している。だが、それを量子コンピュータ実機(IBM Quantum)でも確認することにした。それによって、"量子の測定"への理解を深め、Qiskitによる量子プログラミングにも親しむことができる。

複数の偏光板を重ねて物を見る
 その実験を図1に再掲する。2枚の偏光板の軸を共に0°で重ねた場合は良く見える(a)が、2枚目を90°に傾けると全く見えない(b)。しかし、それら2枚の間に、45°に傾けた偏光板を挿入するとだいぶ見えてくる(c)。それを解明する数学モデルに従って、各偏光板を通過する光子(photon)の個数を、量子コンピュータ実機で計測するのである。

偏光板を通過する光子の個数の測定(IBM Quantum利用)
 蛍光灯などの環境下では毎秒膨大な数の光子が放出されるが、ここでは、見ている画像「年賀」から、2万個の光子が放出されていると仮定する。図1(c)のケースで、3枚目(一番手前)の偏光板を通過した光子の数は何個か?これを、IBM Quantum実機で計測した結果を図2に示した。
 偏光板を見ることが量子(本例では光子)の測定となる。その結果、偏光板を通過した光子は、その偏光板の軸と同じ方向に偏光している。その方向は、対応する正規直交基底の第一ベクトルと同一である。そして、測定結果の古典ビット0は通過した光子に、古典ビット1は吸収された光子に対応させる。測定結果を古典ビット0, 1の出現カウントで表したのが図2である。
 数学モデルによれば、図1(c)のケースでは、各偏光板を通過するごとに、その光子の個数は確率的にちょうど半減する。しかし、図3に示した量子コンピュータによる実測では、古典ビット0の方が、1よりも多く出現する傾向が見られる。利用したマシンibmq_manilaは、無料で使える少し以前のものである。エラー発生率が比較的高いように見える。ただし、最近、急速に進化した新機種が投入されているので、そのエラー率は低減していると思われる。だが、使用料はかなり高額なので、試していない。

 ここで、「実測」という言葉を使ったが、「シミュレーションではない」という意味である。シミュレーションでは、計算された確率に従って測定結果が決まるが、今回の量子コンピュータの利用においては、その確率は当方が計算したものではなく、量子現象そのものとして決まるという意味合いである。

 念の為、ほとんど何も見えない、図1(b)のケースもやってみた。図4に示す通り、1枚目を通過した光子の8.4%しか2枚目を通過しない(94.6%は吸収された)という結果となった。図5は、測定結果の0, 1出現頻度である。これでもやや多め(理論的には0%)だが、実験的な量子コンピュータによる結果として受け入れ、納得する。



Qiskitプログラミング補足
 今回のQiskitを利用した量子プログラミングで気づいたことを忘備録として残す。
  • 2万光子を発生させるのだが、量子ビットは1ビットのみとした。それは|0>に初期設定されているので、それにアダマールゲートHを施した。宙ぶらりんの状態にするためだ。不特定方向の2万光子を発生させることは、量子測定を2万ショット行うことで代用する。
  • 偏光板による測定では、軸方向を任意に設定できるように、組み込みのゲートを使わずに、ユニタリ行列を与えてゲート機能として動作させた。
  • 1枚目は軸方向0°なので、それを通過する光子は確実に半数となり、その状態は全て|0>となる。ここから本実験は始まる。
  • 2枚目の偏光板(軸方向45°)へ入ってくる光子は垂直に偏光しており、3枚目の偏光板(軸方向90°)へ入ってくる光子は45°の向きに偏光していることに注意する。
  • 偏光板へ入ってくる光子の個数は、前段の偏光板を通過した光子の個数となるので、それがその偏光板による測定のショット回数となるように(人手で)設定した。すなわち、各偏光板毎に新たなjobとして順にマシンへ投入した。もっと良い方法があるかもしれない。
  • Qiskitコード例は、ChatGPTとの対話からも得られた。例えば、ユニタリ行列をゲートとして利用する具体例など。
感 想
 数学モデルで解明されているなら、量子コンピュータを使う必要はないだろう、という声も聞こえてきそうだが、それは違う。実際に量子プログラミングを行い、実行結果を観察すれば、それまで気づかなかった重要な事項も発見でき、また、量子現象への理解は確実に深まる。

----------------------------------------
FoYo private note:
IBM Quantum lab /Orthogonal_Bases/UnitaryMatrix_ex3.ipynb