見出し画像

今話題の量子力学の最小単位QubitをPythonでグラフ化しよう | Study with Me #8

はじめに

みなさん、こんにちは。投資エンジニアです。

最近、量子力学(Quantum Computer)の進化についてニュースで流れますよね。Googleは、2029年までに普通に使える量子力学のシステムを製品化ができると発表しました。

量子力学を仕事でかじっている自分にとっては今の所、冷却化する装置を作っている会社が一番儲かっている気がします(笑)冷却化をする理由は、量子は温度から発生する微量なノイズでも簡単に壊れるからです。

画像1

今回は、量子力学の最小単位Qubitが何なのか、ソフトウェアエンジニアがQubitをどのようにビジュアル化できるかを一緒に学びます。最後にこのようなQubitのグラフがPythonで作れます。

画像3

説明を飛ばしたい方は、このGoogleColabにサンプルのコードを置いておきます。

今回使用するソフトウェアの紹介

必要なのは、パソコンとPythonが使用可能なソフトウェアです。このStudy with Meでは、Thonnyを使っています。初心者向けに下の記事を参考にしてください。

PythonのパッケージはIBMのQiskitを使っています。このYoutubeのビデオでIBMが簡単に説明しています。

作り方

Qiskitを使うには、まずqiskitとqiskitの教材をインストールしましょう。ここにコマンドを載せておきます。

pip install qiskit
pip install git+https://github.com/qiskit-community/qiskit-textbook.git#subdirectory=qiskit-textbook-src

自分は、このようにこの課題を設計しました。plot_bloch_sphere([x,y,z])の関数をつくりQubitを三次元で表示します。

画像2

### Import

import matplotlib as mpl
mpl.use('TkAgg')
import matplotlib.pyplot as plt
from qiskit import QuantumCircuit, assemble, execute, Aer

### Plot Bloch Sphere in vector format
def plot_bloch_sphere(coords): #coords = [x, y, z]
  from qiskit.visualization import plot_bloch_vector
  plot_bloch_vector(coords, title='My Bloch Sphere')
  plt.show()


if __name__ == '__main__':
   print('Investment Engineer meets Qiskit')

   simulator = Aer.get_backend('statevector_simulator')

   ########## Study with Me Example ##########
   plot_bloch_sphere([1, 0, 0]) #[x, y, z]
  

Google Colabでもできます。リンクをShareしておきます。

完成遊び方

plot_bloch_sphereの関数を使うと、量子の最小単位Qubitを三次元で表示できます。ここでは、PythonのListを使って3次元のVectorを入力します。

plot_bloch_sphere([1, 0, 0])

これは、xが1でyが0なので、(x,y,z) = (1,0,0)。つまりX-Y軸で(1,0)のところをベクトルが指します。

画像5

plot_bloch_sphere([1, 1, 0])

これは、xとyが1ずつで、(x,y,z) = (1, 1, 0)。つまりX-Y軸で(1,1)のところをベクトルが指します。

画像4

今回はこれでおしまいです。量子力学がこれからどうなるか楽しみですね。ではまた!


この記事が気に入ったらサポートをしてみませんか?