実験結果か何かで、散乱振幅の角度分布が得られているとする。
ここからサイト行列を復元する方法を考える。
サイト行列が求まれば、そこからArgand diagramを作って、(準)共鳴準位があるとかないとか、追加で情報が得られる(もし角度分布のエネルギー依存性まで測っていればの話だが、、、)。
サイト行列のArgand diagramは前回紹介した方法が使える。
koideforest.hatenadiary.com
散乱振幅は、以下の形で与えられる。
はLegendre多項式である。
Legendre多項式には、直交性が成り立つ。それは以前の記事で確認した。
koideforest.hatenadiary.com
したがって、
例えば、角運動量のサイト行列のみからなる散乱振幅の角度分布は次のようになる。
当たり前であるが、思いっ切りの形である。
この時、と適当に設定したが、導出した式からちゃんとが復元されることが以下のソースで確認出来る。
import numpy as np import matplotlib.pyplot as plt from scipy.special import legendre from scipy.integrate import quad def Plx( l, x ): return legendre( l )( x ) cp_f = 1. t_2 = 0.1234 + 0.5678j f = lambda theta: cp_f * ( 2 * 2 + 1 ) * t_2 * Plx( 2, np.cos( theta ) ) thetas = np.linspace( 0., 2. * np.pi, 100 ) fig = plt.figure( figsize = ( 4.72, 4.72 ) ) ax = fig.add_subplot( 1, 1, 1, polar = True ) ax.plot( thetas, abs( f( thetas ) ) ) plt.show() #plt.savefig( 'scattering_amplitude_2.png' ) #plt.close() r0 = quad( lambda x: np.real( f( np.arccos( x ) ) * Plx( 0, x ) ), -1, 1 )[ 0 ] / ( 2 * cp_f ) i0 = quad( lambda x: np.imag( f( np.arccos( x ) ) * Plx( 0, x ) ), -1, 1 )[ 0 ] / ( 2 * cp_f ) print( r0, i0 ) # 0.0, 0.0 r2 = quad( lambda x: np.real( f( np.arccos( x ) ) * Plx( 2, x ) ), -1, 1 )[ 0 ] / ( 2 * cp_f ) i2 = quad( lambda x: np.imag( f( np.arccos( x ) ) * Plx( 2, x ) ), -1, 1 )[ 0 ] / ( 2 * cp_f ) print( r2, i2 ) # 0.1234, 0.5678