ガウス・エルミート法で全実数の数値積分を計算

ガウス・エルミート法で全実数の数値積分を計算

Gauss-Hermite則で(−∞,∞)の通常積分またはe^(−x²)付き積分を計算します。

入力

変数x、定数pi・e、四則演算、^、許可済み実関数を200文字以内で入力します。暗黙の掛け算は使えません。

2以上100以下の整数です。nが3以上ならn−1とn、n=2ならnだけを表示します。

重みなしの通常積分g(x)か、方式固有の重みを含む積分のf(x)かを選びます。

使い方

  1. 被積分関数を許可済みの式文法で入力し、通常積分と重み付き積分があるページでは目的に合うモードを選びます。
  2. 有限区間方式では異なる下端aと上端bを指定し、Laguerre方式では重みx^αe^(−x)に対応するαを確認します。
  3. 次数nを2〜100で指定して計算し、n−1とnの推定値、絶対変化、相対変化を既知値や別方式と比較します。
  4. 必要なら列見出し付きTSVをコピーし、方式、式、区間、モード、次数、パラメータを結果と一緒に保存します。

計算式・考え方

∫_{−∞}^{∞}f(x)e^(−x²)dx≈Σw_i f(x_i)です。通常積分g(x)には調整係数w_i e^(x_i²)を使います。分点x_iは物理学者型Hermite多項式H_nの零点で、正負対称に並びます。

注意事項

  • Gauss-Hermite則は全実数区間とGaussian重みe^(−x²)に適合します。重み付きfモードでf(x)=1なら重み総和は√π、奇関数f(x)=xなら対称な分点と重みにより0です。n=2でも定数の重み付き積分を√πとして再現します。標準正規分布e^(−z²/2)/√(2π)へ使う場合はz=√2xという尺度変換が必要で、物理学者型と確率論型Hermite多項式を混同しないでください。
  • 通常積分gモードではw_i e^(x_i²)を係数として重みを打ち消します。既定式1/(1+x²)の全実数積分の真値はπですが、有限次数では裾と原点付近の近似が残り、canonicalのn=29は約2.86505253832022、n=30は約2.86996237078532です。次数間の変化が小さくなってもπとの差は残るので、値が収束済みと断定せず別の無限区間積分法と比較してください。
  • 分点の絶対値が大きい行では生のGaussian重みが非常に小さく、通常積分用係数ではexp(x_i²)による打消しが入ります。内部の専用係数を使うことで丸め済みの二値を再合成する誤差を避けていますが、g(x)が急増する場合は項または総和が非有限になります。被積分関数が十分減衰して通常積分が存在することを解析的にも確認してください。
  • Gaussian数値積分は、対象の重み関数に直交する多項式の零点を評価点へ選び、関数値と正の係数の重み付き和から積分を近似します。標準的なn点Gaussian則は、重み関数を含めた2n−1次以下の多項式を丸め誤差の範囲で正確に積分します。ただしLobatto則は両端を含めるため代数的精度が2n−3次です。このページでは指定次数nの推定値だけでなく、nが3以上ならn−1の推定値も同じ条件で計算し、隣り合う次数の変化を表で比較できます。
  • 表のabsolute-changeはnとn−1の推定値の絶対差、relative-changeはその差を現在の推定値の絶対値で割った値です。最初の行には比較対象がないため両方を0と表示します。これらは収束の様子を見る指標であり、真の誤差の上界でも正しい桁数の保証でもありません。次数を一つ増やした値が偶然近い場合や、両方の次数が同じ特徴を見落とした場合もあるため、既知値、別方式、区間分割、より高精度な実装を併用してください。
  • 入力できる関数式は変数x、定数piとe、四則演算、べき乗^、丸括弧、およびabs、sqrt、exp、ln、log、log10、sin、cos、tan、asin、acos、atan、sinh、cosh、tanh、floor、ceilです。暗黙の掛け算には対応しないため2xではなく2*xと入力します。式は200文字、128トークン、32段以内に制限し、未知の名前、代入、配列、プロパティ参照、セミコロン、文字列は受理しません。
  • 関数式は許可された記号だけを字句解析し、構文木に相当する逆ポーランド記法へ変換して評価します。JavaScriptのevalやnew Functionは使わず、外部API、CDN、fetch、サーバー側計算にも依存しません。入力した式、区間、次数、パラメータ、計算結果は利用者のブラウザ内だけで処理されます。したがって大きな次数を選んでもWebサーバーへ計算負荷や入力内容を送ることはありません。
  • 次数nは2から100までの整数です。n=2では比較対象となる許可次数がないため1行だけを表示し、変化量を0とします。nが3以上ならn−1とnの2行を表示します。次数を増やすと滑らかな関数では急速に改善することがありますが、不連続、鋭いピーク、高周波振動、重み関数と合わない端点特異性では単調に改善するとは限りません。100次を常に最終解と考えず、問題の形に合う方式を選ぶことが重要です。
  • 内部計算と表示値はIEEE 754 binary64を使い、画面とTSVでは最大12有効桁へ整えます。参照サイトが22桁以上を表示する場合でも、その全桁を正確さとして再掲すると計算精度以上の確かさを示すため採用していません。大きさの異なる項は安定した総和で合成しますが、桁落ち、アンダーフロー、オーバーフロー、強い正負相殺を完全には除けません。任意精度や証明可能な誤差区間が必要なら専用実装で再確認してください。
  • 通常積分g(x)モードは、公式固有の重み関数を数値係数側で打ち消し、入力したg(x)を重みなしのdx積分として近似します。重み付きf(x)モードは、数式に示した重み関数を公式側へ含めたままf(x)を評価します。この二つを取り違えると有限な数値が表示されても別の積分を計算したことになります。モード、区間、重み関数、入力式を一組として記録し、結果だけを切り離して再利用しないでください。
  • 被積分関数が評価点で非有限値になると計算を中止します。平方根や対数の定義域、分母が0になる位置、指数関数のオーバーフローを事前に確認してください。評価点に特異点が偶然一致しなかっただけで積分が収束するとは限りません。区間内部の極は特異点で分割しても非可積分の場合があり、Cauchy主値を通常積分として自動解釈しません。端点を含むLobatto則では端点特異性が直ちにエラーになる点にも注意が必要です。
  • TSVコピーは表の列順を保ち、次数、推定値、絶対変化、相対変化を表計算ソフトや検証スクリプトへ移せます。最大12有効桁の出力なので、転載時には方式名、関数式、区間、次数、モード、Laguerreならα、計算日を併記してください。relative-changeだけを正答率や誤差率と呼ばず、連続する次数間の変化であることを明記すると、後から監査した人が過大な精度解釈を避けられます。
  • この計算機は学習、実装確認、一般的な数値試算を対象とし、医療投与量、安全限界、法定値、金融取引の最終判断を直接保証しません。入力式の単位や係数を取り違えても数値だけは生成できる場合があります。重要な用途では式の出典、入力データ、採用した重み、許容誤差をレビューし、独立したライブラリまたは解析値との一致を確認して、再現可能な条件とともに保存してください。
  • Gaussian求積の一般則と各直交多項式の区間・重み関数は、NIST Digital Library of Mathematical Functions §3.5(v)およびTable 18.3.1を2026年7月13日に照合しました。分点・重み生成は有限次数2〜100へ有界化し、Legendre、Lobatto、Chebyshev第1種・第2種、一般化Laguerre、Hermiteを明示的に区別します。適応積分、複素積分、主値積分、任意精度積分器の代替ではありません。
  • binary64・最大12有効桁の有限次数による近似値です。次数間の差は真の誤差上界ではありません。

よくある質問

標準正規分布へそのまま使えますか?

尺度が異なります。z=√2xへ変換し、期待値では重み付き和を√πで割る形へ直してください。

通常積分の真値πへすぐ一致しない理由は?

Hermite分点はe^(−x²)重みに最適化されています。重みを打ち消す通常積分では有限次数の収束が遅い場合があります。

関数式、積分区間、次数、モード、パラメータ、計算結果は利用者の端末内だけで処理され、サーバーや外部APIへ送信・保存されません。