くだすれFORTRAN(超初心者用)at TECH
くだすれFORTRAN(超初心者用) - 暇つぶし2ch219:デフォルトの名無しさん
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をつければ強制できるはず。



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch