ガウス・エルミート求積法の分点と重みを計算

ガウス・エルミート求積法の分点と重みを計算

次数nから、実数全域の重みexp(−x²)に対応するGauss-Hermite分点・重み・通常積分用係数を表示します。

入力

2以上100以下の整数です。表はn行になります。

使い方

  1. 求積方式と積分区間、重み関数が目的の式に一致することを確認し、次数nを2〜100で入力します。
  2. 計算後、分点の昇順、重みの正値、対称性または重み総和を確認し、必要な行をTSVとしてコピーします。
  3. 被積分関数を各x_iで評価して対応する係数と掛け、nを変えた結果や独立した求積法と比較します。

計算式・考え方

∫_{−∞}^{∞}f(x)e^{−x²}dx≈Σw_i f(x_i)。x_iは物理学者型Hermite多項式H_nの零点です。重みなしの積分用係数はw_i e^{x_i²}です。

注意事項

  • Gauss-Hermite則は無限区間とGaussian重みe^{−x²}を同時に扱います。確率論でよく現れる標準正規密度e^{−z²/2}/√(2π)へ使う場合はz=√2xと変換し、期待値を(1/√π)Σw_i f(√2x_i)で計算します。物理学者型と確率論型Hermite多項式の尺度を取り違えないでください。
  • 追加列w_i e^{x_i²}は重みなしの全実数積分を同じ節点で書くための係数です。端のGaussian重みw_iは極めて小さくても、指数を戻した追加係数は小さいとは限りません。直接exp(x_i²)とw_iを別精度で丸めて掛け直すと誤差が増えるため、表の追加列をそのまま使ってください。
  • Gaussian求積は、決められた重み関数に対して直交する多項式の零点を分点に選び、少ない関数評価で高い代数的精度を得る方法です。次数nの標準Gaussian則は、重み関数を含めた2n−1次以下の多項式を丸め誤差の範囲で正確に積分します。ただし、ここで出すのは積分値ではなく分点x_iと重みw_iの一覧です。被積分関数を各分点で評価し、対象の公式どおりに重み付き和を作ってください。
  • 次数nは2から100までの整数に限定しています。表は分点の小さい順に並べ、iは1から始まります。同じnでもLegendre、Chebyshev、Hermite、Laguerre、Lobattoでは積分区間と重み関数が異なるため、別方式の表を流用できません。名称だけで選ばず、積分区間、端点を含むか、指数関数や平方根の重みをどちら側へ含めるかを数式と照合してください。
  • 内部計算は対称三重対角Jacobi行列のimplicit QL法を中心に、閉形式を持つChebyshev則と端点固定のLobatto則を組み合わせています。反復回数、次数、Laguerreのパラメータを有界にし、非有限値、非正の重み、未収束は結果を推測せずエラーにします。計算は利用者のブラウザだけで完結し、外部API、サーバー計算、CDN、fetchを使用しません。
  • 表示はbinary64で計算した値を最大12有効桁に丸めたものです。コピーされるTSVも表示列と同じ順序ですが、任意精度表ではありません。高次数の端に近い分点や非常に小さい重みは指数表記になることがあります。教材の例や実装テストでは十分な場合が多い一方、厳密証明、極端な桁落ち、100桁計算には多倍長ライブラリで再計算してください。
  • 基本的な検算は、すべての重みが正であること、分点が狭義単調増加であること、対称則ではx_i=−x_(n+1−i)かつw_i=w_(n+1−i)となることです。さらに定数関数の積分として重みの総和を確認できます。LegendreとLobattoは2、Chebyshev第1種はπ、Chebyshev第2種はπ/2、Hermiteは√π、一般化LaguerreはΓ(α+1)が基準です。
  • 関数値を合成するときは、表の丸め値だけを再入力するより、同じページ内の計算結果をTSVで保存し、必要な精度要件を明記してください。大きさが大幅に異なる項の総和にはmath.fsum、pairwise summation、Kahan summationなどを使うと丸め誤差を抑えられます。正負が強く相殺する問題では、次数を上げた結果だけで収束を断定せず、区間分割や変数変換も比較してください。
  • Gaussian則の高い次数は、被積分関数が滑らかで対象の重み関数と整合するときに効果を発揮します。不連続点、端点特異性、狭いピーク、振動が強い関数では、次数を増やしても単調に精度が上がるとは限りません。既知の特異点で区間を分割し、低い次数と高い次数の結果を比較し、必要なら適応型求積や特異性に合う別の直交多項式へ切り替えてください。
  • この表のindexは数式上の添字を読みやすくするため1始まりですが、JavaScriptやPythonの配列添字は0始まりです。たとえば表のi=1は配列の0番目に対応します。左右対称の節点を対にして処理するときは、表のiとn+1−iを組にします。奇数次数の対称則では中央にx=0の行が一つだけ現れ、丸め由来の微小値は内部で0へ整えています。
  • 結果を別資料へ転載するときは、方式名、次数n、Laguerreならα、分点と重みの定義、最大12有効桁表示であることを一緒に残してください。w_iだけでは、重み関数を含むGaussian形式の係数か、通常のdx積分へ換算した係数か判断できません。このページは必要な方式だけ追加の換算列を併記し、列見出しと本文で意味を区別しています。
  • 直交多項式、Gaussian求積の一般則、各重み関数はNIST Digital Library of Mathematical Functionsの§3.5および§18.3を2026年7月13日に照合しました。分点は対応する直交多項式の実零点、重みは正のChristoffel数として実装しています。有限次数2〜100の数値表であり、誤差保証付き積分器、複素積分、任意精度の代替ではありません。
  • 次数2〜100のbinary64数値表です。任意精度または誤差保証付き積分器ではありません。

よくある質問

標準正規分布の期待値にそのまま使えますか?

尺度が異なるためz=√2xへ変換し、重み付き和全体を√πで割ります。

無限区間なのに有限個の分点でよいのですか?

重みe^{−x²}に適合する多項式では高い精度を持ちますが、一般関数には次数比較と独立検算が必要です。

入力した次数とパラメータ、生成した分点・重みは利用者の端末内だけで処理され、外部へ送信または保存されません。個人情報の入力欄もありません。