アプリ版:「スタンプのみでお礼する」機能のリリースについて

お忙しいところすみません.
現在,私は大学院生で,研究でfortranを
使用しています.
解析のためにプログラムを組んでいるのですが発散がおき,なかなか研究が進みません.
理論的に間違えているのか,プログラムの組み方が悪いのか,わからずに困っています.
これが解決すれば研究が進むのですが・・・
そこでみなさんに質問です.このような経験をされ,見事解決された方いましたらその体験談をお聞かせ願いたいのですが.
暇な時に回答していただいて結構です.

A 回答 (6件)

No.5のお礼に対する解答。


私の言う特殊状態というのは、計算を続けていくと定常状態に達し、さらにそのまま計算を続行すると特殊な状態に到達する、という意味でした。
今回のご返事によって、計算の続行ではなく、初期条件を変えて再計算するものと考え直すことにしました。
ご質問のプログラムは、「相性のいい」初期データを与えれば収束して定常状態に達し、「相性の悪い」初期データを与えると定常状態にならず、振動してしまう性質があるようですね。
予想通りの値で定常状態に達する事例があるということは、計算式のプログラム化については問題ないないでしょうが、この実験には他に隠れた問題…"観測点"という言葉で推測できるのですが、「境界値問題」が含まれていませんか?
これは、式を適用する際のパラメタ(初期値)に制限があり、それを超えるような条件を与えるときは結果が保証されないというものです。微分方程式を解く場合などでは、境界値問題に目を向ける必要があります。
いま少しプログラミング作業から離れて、「境界値問題」のキーワードで実験を見直してみるか、発散,収束に関係なくもっと観測点を増やし、解の傾向を分析されてみてはいかがでしょうか?
    • good
    • 0
この回答へのお礼

お礼が遅れてしまいすみません.
度々,回答していただきありがとうございます.
プログラムのミスとかそのような問題ではないようですので,境界値問題をキーワードに発散の原因を調べていきたい思います.
見ず知らずの私に対してここまで検討していただき本当にありがとうございました.

お礼日時:2005/08/13 16:11

No.3です。


「定常状態を過ぎると発散」ということは、初期条件を変えるからですか?
「初期条件から出発→定常状態→特殊状態」という遷移の仕方であれば計算の方針は合っていると思います。
特殊状態に達するまでに何回の加減算,乗除算をやっているか見当がつきますか?
その回数は回答者側にとって参考になるので、できれば開示してください。
その他、余りにも大きな数と小さな数同士の加減算は、桁落ちどころか情報落ちという現象が発生して、加減算をしていないのと同じ事態になりますので、プログラムを工夫する必要がでてきます。私の推測ですが、目的の値が振動したりしていませんか?
発散なら、きれいに発散しているのですか?
    • good
    • 0
この回答へのお礼

2度も回答ありがとうございます.
媒質の値の設定により発散が起こらなかったりします.特殊状態というのは発散が起こる状態のことでしょうか.特殊状態に達するまでに何回の加減算,乗除算をやっているかは,式やその式に使う係数の数が多く,また係数にも加減算,乗除算を行っているので回数を数えるのがちょっと大変で今すぐはわかりません.すみません.発散の状況はある観測点において,値が収束せずに他の観測点よりも大きな値で振動してしまうという状況です.一応定常状態になるということは,理論的な考えはあっているけれども,プログラムの組み方が悪いということでしょうか.毎日プログラムをいじっていますが未だ解決せずです・・・(泣)

お礼日時:2005/08/11 12:43

発散の意味をはっきりさせた方が良いと思いますが。


データ解析を行うプログラムだとしますと、解析的に答えが出るような擬似的なデータを作り、そのプログラムによる解析結果と理論計算とを比較すれば、プログラムが間違っていればすぐ判ります。
プログラムが正しくて、実測データの解析結果が予測と違うなら、理論(モデル)が間違っているのでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます.
電磁界解析プログラムで,簡単なモデルを考え,その理論値と比較したりしています.定常状態直後でその理論値と比較した所,一致しました.ただ,定常状態を過ぎてしばらく経ったあたりから発散が起きてしまうのです.発散の状況はある観測点において,値が収束せずに他の観測点よりも大きな値で振動してしまうという状況です.毎日プログラムをいじっていますが未だ解決せずです・・・(泣)

お礼日時:2005/08/11 12:25

> 発散がおき,



・べき級数計算のプログラムで、収斂するはずが発散した。
・装置を用いてデータ収集したところ、理論的には収斂するはずが、
 発散(または振動)した。

どちらとも取れます。
前者なら計算誤差の累積、後者なら雑音(ノイズ)や分解性能を疑ってかかりましょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます.
電磁界解析プログラムで,簡単なモデルを考え,その理論的と比較したりしています.定常状態直後でその理論値と比較した所,一致しました.ただ,定常状態を過ぎてしばらく経ったあたりから発散が起きてしまうのです.モデルの値を変えると発散したりしなかったりします.やはり計算誤差の累積の為なのでしょうか・・・

お礼日時:2005/08/09 19:05

> 発散がおき,



・数値計算のプログラムでアルゴリズム的には収束して欲しいのに発散した。
・考えが発散し、集中できず、研究がはかどらない。

どちらとも取れます。
前者っぽいですが、どちらでしょう?


前者なら、
・モデルを単純化して実験し、理論値との比較から問題を切り分け、プログラムのバグを絞り込む。
・手計算やExcelなんかによる計算結果と比較、検討。
とか。


後者なら、大学の保健センターなんかが身近ですし、経験豊富で頼りになると思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます.
「・数値計算のプログラムでアルゴリズム的には収束して欲しいのに発散した。
・考えが発散し、集中できず、研究がはかどらない。
どちらとも取れます。
前者っぽいですが、どちらでしょう?」
・数値計算のプログラムでアルゴリズム的には収束して欲しいのに発散した。の方です.
電磁界解析プログラムで,簡単なモデルを考え,その理論的と比較したりしています.定常状態直後でその理論値と比較した所,一致しました.ただ,定常状態を過ぎてしばらく経ったあたりから発散が起きてしまうのです.今もプログラムとにらめっこしています.

お礼日時:2005/08/09 19:00

寝ること・・それにつきるのかもしれません。




今現在も、突然昼寝するかと思ったら、起きて、こつこつプログラムを組んでいたりもします。
#いいかえれば、夢の中で仕様を組み立てているということです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます.
夢の中で仕様を組み立てられるなんてすごいですね!

お礼日時:2005/08/09 18:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!