- ベストアンサー
シンプソンの法則について
数値積分において代表的な方法として台形積分とシンプソンの法則の2つがあります。 実際に、両者の結果を比較しています。(ある閉区間の積分) 離散点の間隔をどんどん小さくすると、精度が向上するのですが、 ある程度小さくなると、 間隔を小さくする→精度が上がる の法則が成り立たなくなります。 横軸に離散点の数、縦軸に誤差のグラフをとると、 誤差が振動してしまいます。 ところが、同じ条件で台形積分をすると、 振動せずに誤差は小さくなりつづけます。 これは丸め誤差の影響か?と考えているのですが、そうなのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
回答者側でも再現を行わないとなんとも言えないので、以下を情報追記してください。 1.何の関数をどの区間で数値積分しましたか?(計算対象がフラクタルな感じの物だったら・・・) 2.計算結果の離散間隔依存性はどこからどこの範囲で調べ異常が出始めたのはどこからですか? ([離散間隔-誤差]のEXCELグラフとかあるといいですね。) 丸め誤差を気にするなら、floatとdoubleで同じプログラムを組んでみて上記のグラフを作成し 比較してみるというのが一つの手です。 また、余裕があれば自分が作った物の正当性を示すにはどうやったら良いのかを考えてみてください。
その他の回答 (2)
- 正親町(@Ohgimachi)
- ベストアンサー率43% (110/252)
>誤差が振動してしまいます。 もしかして 分割数をインクリメントしていませんか? シンプソン公式は分割数が偶数の時だけ成立します。
- samtomsan
- ベストアンサー率55% (1060/1897)
誤差には方式による誤差と計算機の誤差(丸め誤差など)があります。 今行っていることはまさにそれらを認識するための課題ですね。 試しに演算精度を、短精度/倍精度/4倍精度など変えてみればより判ると思います。 頭の中では刻みを小さくすれば誤差は小さくなると認識しますが、実世界では(計算機上では)違うということを理解する課題だと思います。 「計算機 誤差」で検索しますといろいろな情報が得られます。
補足
奇数のときも成立するようにしたプログラムにしてあります。 ご回答ありがとうございます。