ガウス型求積法を選んで分点と重みを計算

ガウス型求積法を選んで分点と重みを計算

8種類のGauss型求積法を切り替え、分点、主重み、通常積分用または埋込み用の副重みを統一表で比較します。

入力

8方式から選びます。有限区間か自然領域か、副重みの意味を結果説明で確認してください。

2〜100の整数です。Kronrodは15、21、31、41、51、61だけを受理します。

−0.99〜100の有限値です。LaguerreとJacobiで使い、他方式でも安全のため検証します。

−0.99〜100の有限値です。Jacobiで使い、他方式でも安全のため検証します。

使い方

  1. 8種類から求積方式を選び、2〜100の次数nを入力します。Kronrodは許可された6点数だけです。
  2. Laguerreではα、Jacobiではαとβを設定し、選択方式ごとの自然領域と重み関数を確認します。
  3. 4列表で主重みと副重みの意味を方式説明と照合し、対称性、正値性、重み総和を検算します。
  4. TSVを保存するときは方式、n、α、β、副重みの意味、binary64・最大12有効桁表示を併記します。

計算式・考え方

主重みw_iは選択方式の自然重み付き公式に使います。副重みW_iは通常積分用のw_i/ρ(x_i)、Legendre・Lobattoではw_i、Kronrodでは埋込みGauss重みです。

注意事項

  • 分点・重みページは、どの方式を選んでも番号、分点、主重み、副重みの4列だけを表示します。主重みは選択したGauss型公式が本来持つ重みです。副重みは通常の非重み付き積分へ使う換算重みで、LegendreとLobattoでは主重みと同じ、Chebyshev、Laguerre、Hermite、Jacobiでは自然重みを取り除いた係数、Kronrodでは埋込みGauss重みを表します。
  • Kronrodの副重みが0の行は、Kronrod側だけが追加した分点です。0は行を削除してよいという意味ではなく、Kronrod推定値にはその行の正の主重みが必要です。K15、K31、K51の中央には奇数点Gauss則の正の副重みがあり、K21、K41、K61の中央は偶数点Gauss則に0分点がないため副重み0になります。列の意味を方式名と一緒に保存してください。
  • 通常積分用副重みは便利ですが、自然重みが非常に小さい分点では大きくなります。Hermiteなら主重みにe^(t²)、Laguerreならe^t/t^α、Jacobiなら1/((1−t)^α(1+t)^β)を掛けるためです。係数が大きくても、被積分関数との積が安定とは限りません。表から実装するときは先に巨大な副重みだけを丸めず、積の組み立てと加算順序を検討してください。
  • 簡易検算は、分点が昇順であること、対称族では左右が符号反転すること、主重みが正であることから始めます。Legendre、Lobatto、Kronrodの標準区間主重み総和は2です。Chebyshev、Hermite、Laguerre、Jacobiは各自然重みの0次モーメントへ一致します。副重み総和は一般に自然重みの0次モーメントではないので、主重みと同じ検算式を機械的に適用しないでください。
  • 表を別言語へコピーするときは、画面の1始まり番号を配列の0始まり添字と混同しないでください。最大12有効桁のTSVは閲覧・簡易試算向けで、内部係数の全桁を移植するデータ源ではありません。高精度検証やライブラリ実装では一次資料の係数、独立な固有値計算、モーメント試験を併用し、選択した方式、n、α、β、確認日を記録します。
  • この方式選択計算機は、Legendre、Chebyshev第1種・第2種、Laguerre、Hermite、Jacobi、Lobatto–Legendre、Kronrodの8方式を一つの入力画面で比較するためのハブです。各方式は同じ名前の別アルゴリズムへ曖昧に丸めず、個別ページで検証済みの分点・重み生成処理をそのまま呼び出します。方式を変えたときに式や次数を同条件で試せますが、自然な積分区間と重み関数まで同じになるわけではありません。
  • Legendreは重み1の標準的な有限区間則です。Chebyshev第1種は1/√(1−t²)、第2種は√(1−t²)、Jacobiは(1−t)^α(1+t)^βを自然な重みとします。Laguerreはt^αe^(−t)を伴う[0,∞)、Hermiteはe^(−t²)を伴う実数全体が自然領域です。Lobatto–Legendreは有限区間の両端を分点に含み、Kronrodは埋込みGauss則と対にした有限区間則です。
  • 次数nは2から100までの整数に制限します。ただしKronrodだけはQUADPACK一次ソースで係数を照合できるK15、K21、K31、K41、K51、K61の6種類だけです。K側の点数15、21、31、41、51、61を次数欄へ入力し、それ以外の奇数や偶数をKronrod係数として自動生成しません。未検証の係数を便利さのために補間する機能でもありません。
  • αとβは−0.99以上100以下の有限値へ共通に有界化しています。Laguerreではαだけ、Jacobiではαとβを使い、その他の方式では数式へ入りません。それでも未使用欄を無検証のまま残さず、方式切替後に古いNaNや無限大が突然有効になることを防ぐため常に入力検査します。Jacobiではα+β=−1となる組も、漸化係数の共通因子を解析的に約分して0/0を避けています。
  • 有限区間方式では標準変数t∈[−1,1]をx=(a+b)/2+(b−a)t/2へ写像します。a>bは向き付き積分として許可し、半区間幅が負になるため推定値も符号反転します。a=bは有限区間方式では拒否します。HermiteとLaguerreでは自然領域がそれぞれ(−∞,∞)と[0,∞)に固定され、画面上のa、bは計算に使いませんが、切替時の安全のため有限かつ絶対値・幅1,000,000以下かは確認します。
  • 計算はIEEE 754 binary64で行い、表示とTSVコピーは最大12有効桁です。次数を増やしたから常に誤差が単調減少するとは限りません。関数値の相殺、端点特異性、巨大な換算重み、急な振動、丸め誤差により隣接次数が偶然近づいたり離れたりします。表示行の差は収束の参考であり、真値誤差、証明付き上界、信頼区間ではありません。
  • 関数式を扱うページは変数x、定数pi・π・e、四則演算、べき乗、丸括弧と許可済み初等関数だけを有界パーサーで処理します。evalやnew Functionは使わず、200文字、128トークン、32段の上限を設けています。未知の名前、プロパティ参照、配列、代入、セミコロン、スクリプト断片を受理せず、分点で0除算や定義域外が生じれば数値を推測せず停止します。
  • 8方式の選択、分点生成、関数評価、集計、表描画、TSVコピーはすべて利用者のブラウザ内で完結します。入力した式、端点、次数、α、β、計算結果をサーバーや外部APIへ送信・保存しません。CDNや実行時fetchにも依存しないため、サーバー側で重い数値処理を行わず、利用者端末の有限なCPUとメモリだけを使います。
  • 方式比較では、同じnが同じ関数評価回数や同じ精度を意味しない点に注意してください。Lobattoは端点を含み、KronrodはK点と埋込みG点を同じ評価集合で使い、他のGauss則は自然重みに直交する多項式の零点を使います。多項式正確度も自然な重み付き積分について定義されるため、通常積分用へ重みを換算した結果を方式名だけで優劣付けしないでください。
  • 式、係数、自然領域、パラメータ条件は2026年7月13日にNIST Digital Library of Mathematical Functionsの直交多項式・Gauss求積の記述と、Netlib QUADPACKのdqk15〜dqk61を照合しました。実装では分点の昇順、対称性、正の主重み、重み総和、既知多項式モーメント、PythonとJavaScriptの数値一致を検査しています。本ページは教育・実装確認・一般的な試算向けで、任意精度計算や安全判断の保証を提供しません。
  • binary64・最大12有効桁の固定求積です。次数差やG/K差は真値誤差の保証ではありません。

よくある質問

主重みと副重みはどちらを使えばよいですか?

方式本来の自然重み付き積分には主重み、通常の非重み付き積分には副重みを使います。ただしKronrodの副重みは換算重みではなく埋込みGauss重みなので、方式名と列説明を必ず一緒に確認してください。

αとβを使わない方式でも入力が必要なのはなぜですか?

方式切替後に古い非有限値や範囲外値が突然有効になることを防ぐためです。使わない方式の数式には入りませんが、全入力を有限かつ有界に保ちます。

方式、次数、α、β、生成した分点・重みは端末内だけで処理され、サーバーや外部APIへ送信・保存されません。