デルタ関数
小出昭一郎『量子力学(Ⅰ)』の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 まで 1 刻みで変化させ、長さ 50 のリストを作る。
sage: l2 = [plot(f(x,a),(x,-1,3),ymin=0,ymax=3)+line([(x0,0),(x0,3)],color="gray") for a in sxrange(1,51,1)]
a=1 の場合のグラフを見る場合は以下のようにする。
sage: l2[0] Launched png viewer for Graphics object consisting of 2 graphics primitives
階段関数
a を 1 から50 まで変化させたときの関数 の様子を可視化するためにサイズ50のリストを作ります。
sage: l = [plot(lambda r:numerical_integral(f(x,a),-1,r)[0],(r,-1,3),ymin=0,ymax=1.2)+line([(x0,0),(x0,1)],color="gray")+line([(x0,1),(3,1)],color="gray")+text("a={}".format(a),(2,0.5),fontsize=20,bounding_box={'boxstyle':'round','fc':'w'}) for a in sxrange(1,51,1)]
a=1 のときの関数 のグラフを見る場合は下記のようにします。
sage: l[0] Launched png viewer for Graphics object consisting of 4 graphics primitives
a=1 のときの関数 f と関数 を並べて可視化するには
sage: graphics_array([[l2[0]],[l[0]]]) Launched png viewer for Graphics Array of size 2 x 1
とします。
最後に今まで作ってきたリストlとl2を使ってアニメーションを作ります。
sage: l3 = [graphics_array([[l2[i]],[l[i]]]) for i in range(len(l))] sage: animate(l3) Launched gif viewer for Animation with 50 frames