ガウス・ルジャンドル求積法の分点と重みを計算
次数nを指定し、区間[−1,1]のGauss-Legendre求積に使う分点と重みを一覧表示します。
計算結果
- Gauss-Legendre分点・重みの数値表
-
計算すると数値表を表示します。
Gauss-Legendre分点・重みの数値表。分点の小さい順に、1始まりの番号、分点、Gaussian重みと必要に応じて通常積分用係数を示します。 番号 i 分点 x_i 重み w_i
使い方
- 求積方式と積分区間、重み関数が目的の式に一致することを確認し、次数nを2〜100で入力します。
- 計算後、分点の昇順、重みの正値、対称性または重み総和を確認し、必要な行をTSVとしてコピーします。
- 被積分関数を各x_iで評価して対応する係数と掛け、nを変えた結果や独立した求積法と比較します。
計算式・考え方
∫_{−1}^{1}f(x)dx≈Σ_{i=1}^{n}w_i f(x_i)。x_iはLegendre多項式P_n(x)の零点で、w_i=2/((1−x_i²)[P'_n(x_i)]²)です。n点則は2n−1次以下の多項式に正確です。
注意事項
- Gauss-Legendre則は有限区間における重み関数1の標準形です。一般区間[a,b]ではx=(a+b)/2+(b−a)t/2と変数変換し、表の重みへ(b−a)/2を掛けます。端点−1と1は分点に含まれないため、端点の関数値を必ず評価したい境界値問題にはLobatto則の方が扱いやすい場合があります。
- 左右対称性から、偶数次数では正負の分点が対になり、奇数次数では中央に0が現れます。定数の検算はΣw_i=2、奇関数の検算は対になる関数値を合算すると0です。区間変換後は総重みがb−aになることも確認してください。
- 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数値表です。任意精度または誤差保証付き積分器ではありません。
よくある質問
任意区間へ使えますか?
はい。[−1,1]の表を線形変換し、分点を区間中央へ移して重みを区間長の半分倍します。
端点−1と1が表にないのは誤りですか?
誤りではありません。標準Gauss-Legendre則の分点はP_nの内部零点で、端点を含む方式はGauss-Lobatto則です。
入力した次数とパラメータ、生成した分点・重みは利用者の端末内だけで処理され、外部へ送信または保存されません。個人情報の入力欄もありません。