ガウス求積法またはシンプソン求積法を使用した数値積分で重大なエラーを生成する関数を探しています。
2 に答える
Simpson と Gaussian の方法は、2 次多項式などの単純な滑らかな関数の断片でおそらく滑らかな関数を当てはめようとしており、それ以外の場合は低次多項式と $$a+5/6 などの他の単純な代数関数を利用しています。 $$、最大の課題は、2 次多項式ではない関数、またはそれらの単純な関数に似ている関数であることは理にかなっています。
ステップ関数、またはより一般的には、短い実行に対して一定である関数は、別の値にジャンプします。階段、またはウォルシュ関数 (バイナリ フーリエ変換の一種に使用される) は興味深いはずです。単なる単純な単一ステップは、多項式近似にうまく適合しません。
高次多項式を試してください。大きな n の x^n だけでも興味深いはずです。大きな n については x^n - x^(n-1) を引くかもしれません。「大」ってどのくらい?シンプソンの場合、おそらく 4 つ以上です。k 点を使用するガウスの場合、n>k です。(控えめな 2 桁の数を超えて n を試してみないでください。それは、積分とは別に厄介な計算になります。)
極のような数値積分法はほとんどありません。つまり、a の近傍の 1/(xa) に似た関数です。実際の無限大を扱うのは面倒かもしれないので、実線から押し出すか、複素共役対を試してみてください。1/( (xa)^2 + b) を使用して、大きくても有限のスパイクを作成します。ここで、b>0 は小さいです。または、その式の平方根、または正弦または指数です。「2」をより大きな力に置き換えることができますが、それは厄介なことになるでしょう。
昔々、数値積分ルーチンをテストしたいと思っていました。一連のポイントでサンプリングされた、階段状の関数、または一連の矩形パルスから始めました。
Savitzky-Golay フィルターを使用して近似導関数を計算しました。SG は、通常は平滑化に使用されますが、隣接点の有限ウィンドウを使用して数値データを微分できます。ウィンドウ サイズ (点の数)、多項式の次数 (実際には 2 または 4 ですが、より高いものを使用することもできます)、および微分次数 (通常は 0 で平滑化、1 で導関数を取得) が必要です。
その結果、一連のパルスが得られ、それを統合しました。適切なルーチンは、元の階段または矩形パルスを再現します。SG パラメータが適切に選択されていれば、Simpson と Gauss を墓場で転がすことができると思います。