仮想計算機構

IT業界と無縁な派遣社員のブログ

SageMath

電気力線みたいな線を描画する

SageMath を用いて電磁気学などで使われる概念についてプロットしてみます。物理学的な厳密性は投げ出しているので差し引いて読んでください。まず、電荷をA~Dと名付け、位置を xs に、電荷の値を qs に格納しておきます。 A = vector([0,0]) B = vector([5,…

極限としてデルタ関数が得られるもの

原島鮮『初等量子力学』10.2 より 連続関数がデルタ関数へ接近していく様子を可視化します。 ツールは SageShell を使います。 その1 sage: l = [plot(sin(a*x)/pi/x,(x,-15,15))+text("$a={}$".format(a),(15*0.7,a/pi*0.8),fontsize=20, bounding_box={'b…

ラザフォード散乱における粒子の軌道【SageMath】【Python】

小出昭一郎『量子力学(Ⅰ)』の 5.2 を参考にラザフォード散乱における粒子の軌道を可視化します。用いる変数を次のように定義します。 は以下の関係を満たします。 ここで は で定義されます。ほかの記号の意味については、下記のとおりです。真空の誘電率…

SageMathでラゲールの陪多項式を実装する【SageMath】【Python】

以前、Sageを使ってラゲール多項式を実装しました。プログラムを再掲します。 x = var('x') def L_k(x,k): f = x^k*exp(-x) for i in range(k): f = derivative(f,x) return exp(x)*f ラゲール多項式 に対し、陪多項式はで定義されるので、ラゲール多項式の…

SageMathでラゲール多項式を作ってみる【Sage】【Python】

ラゲール多項式は以下で定義されます。SageShellを起動して、関数L_kを定義します。 x = var('x') def L_k(x,k): f = x^k*exp(-x) for i in range(k): f = derivative(f,x) return exp(x)*f 上で定義した関数は任意の k に対して、多項式を計算してくれます…

球面調和関数の可視化【SageMath】【Python】

球面調和関数 の可視化を行います。量子力学でいうと l は方位量子数、m は磁気量子数になります。用いる式は以下のとおりです。自明ですが、r が定数の場合は球面となります。 l=3,m=1 SageShell を起動し、以下のとおり入力します。 sage: phi,theta = var…

デルタ関数と階段関数のシミュレーション【Sage】【Python】

デルタ関数 小出昭一郎『量子力学(Ⅰ)』の3章7節よりで定義される関数の極限をとるとデルタ関数になる。SageShellを立ち上げて、関数 f を下記で定義する。 x,a = var('x,a') x0 = 1 f = lambda x,a:sqrt(a/2/pi)*exp(-a*(x-x0)*(x-x0)/2) a を 1 から 50 …