06/03/03 12:54:26
>>218
範囲を広げるという意味が良くわからんので、適当に書いてみるw
EK=E(K)*CEXP(CMPLX(0.0d0,(GANMA2(K))))
EK=EK*EXP(CMPLX(0.0d0,(GANMA3(K))))
EK=EK*CEXP(CMPLX(0.0d0,(GANMA4(K))))
この式で、EK(K)は最後に掛けたほうがいい。なぜなら、それ以外の部分は
全部位相因子なので幾ら掛けても、絶対値は1になるはずの量だから。
まずはそこでチェックしてみたらどうか?
つまり
EK = EXP(CMPLX(0.0d0,(GANMA2(K))))
EK = EK * EXP(CMPLX(0.0d0,(GANMA3(K))))
EK = EK * EXP(CMPLX(0.0d0,(GANMA4(K))))
ここでABS(EK)=1.0d0のはず(誤差を抜かして)
もう一つの式でも同様にして、その段階で虚部を比較すれば、
より限定的な情報が得られて問題解決に近づくだろう。
EK = EK(N) * EK
(ここで後ろのEKはpahase_factorとかの変数名にしたほうがいいと思うが
まぁ好みの問題だ)
あとCEXPは総称名EXPに統一したほうがいいだろう。
精度の規定値が気になるなるが、KIND=8をつければ強制できるはず。