ガウス・クロンロッド法で数値積分を計算

ガウス・クロンロッド法で数値積分を計算

有限区間の関数式を固定Gauss–Kronrod則で計算し、埋込みGauss値、Kronrod値、両者の差を比較します。

入力

変数x、定数pi・π・e、四則演算、^、許可済み実関数を200文字以内で入力します。

−1,000,000以上1,000,000以下の有限実数です。反対側の端点と異なる値にします。

−1,000,000以上1,000,000以下の有限実数です。反対側の端点と異なる値にします。

QUADPACKで係数が公開された6組から選びます。KはKronrod点数、Gは埋込みGauss点数です。

使い方

  1. 許可済み文法で被積分関数f(x)を入力し、異なる有限端点a、bを指定します。
  2. G7/K15からG30/K61までの6組から固定Gauss–Kronrod則を選び、計算します。
  3. Gauss推定値、Kronrod推定値、両者の絶対差を確認し、差を真値誤差や誤差上界と解釈しません。
  4. 難しい関数では区間を分割して別方式・別精度と比較し、式、区間、G/K組を結果とともに保存します。

計算式・考え方

m=(a+b)/2、h=(b−a)/2、x_i=m+ht_iとして、I_G=hΣw_i^G f(x_i)、I_K=hΣw_i^K f(x_i)、表示差は|I_K−I_G|です。

注意事項

  • 数値積分ページの既定値はf(x)=4/(1+x^2)、区間[0,1]、G7/K15です。Gauss推定値は約3.1415926562537495、Kronrod推定値は約3.141592653589793、絶対差は約2.664×10^−9です。Kronrod値が円周率に近いことは良い検算例ですが、この一例から他の関数でも差が真値誤差を包むとは結論できません。
  • 結果は一行に選択したKronrod分点数、埋込みGauss推定値、Kronrod推定値、両者の絶対差を並べます。rule-orderはK側の15、21、31、41、51、61です。対応するG側の点数は画面の選択肢に明記します。絶対差には区間の向きによる符号を付けず、二推定値それぞれはa>bで符号反転します。
  • 定数関数f(x)=1では、任意の有効な有限区間についてGauss値とKronrod値がともにb−aとなります。対称区間の奇関数では左右の項が相殺して0付近になります。これらは写像、重み総和、対称展開を確かめる単体検算です。一般関数の精度確認にはならないため、既知値を持つ複数の関数でも比較してください。
  • 区間内部に極がある式を通常積分として自動処理しません。たとえば[0,1]の1/(x−0.5)は中央分点で非有限になりエラーです。極が分点と一致しない場合も、有限値が表示されたから積分が存在するとは限りません。Cauchy主値、可積分特異点、複素枝を推測せず、数学的な定義に合わせた変数変換や専用法を選んでください。
  • 選択肢をK61へ上げても、一区間一回の固定則である点は変わりません。局所的な急変を扱うQUADPACKの適応積分は、区間を再帰的に分割し、resabsやresascを使って別の誤差推定を構成します。このページはその適応制御やQUADPACKのabserrを再現せず、生のG/K差だけを透明に表示します。差をabserrや保証誤差と呼ばないでください。
  • Gauss–Kronrod則は、Gauss則の分点を残したまま新しい分点を加え、同じ関数評価から二つの近似値を得る埋込み求積則です。この計算機はQUADPACKで係数が公開されているG7/K15、G10/K21、G15/K31、G20/K41、G25/K51、G30/K61だけに限定します。任意の奇数を入力して未検証係数を生成する機能ではありません。
  • 係数はNetlibの倍精度QUADPACK一次ソースdqk15、dqk21、dqk31、dqk41、dqk51、dqk61にあるxgk、wgk、wgをローカルへ固定しています。実行時に外部API、CDN、fetch、ファイル取得を行いません。元資料は正側の分点だけを対称性により掲示するため、このページでは負側と正側へ展開し、分点の小さい順に並べます。
  • 埋込みGauss則の多項式正確度はG7からG30について13、19、29、39、49、59次です。対応するKronrod則は23、31、47、61、77、91次までのモーメントを丸め誤差の範囲で再現します。この性質は多項式に対する検算条件であり、不連続関数、特異関数、急な振動を含む一般の関数へ同じ精度を約束するものではありません。
  • Kronrod推定値とGauss推定値の絶対差は、同じ区間で二つの埋込み則がどれだけ離れたかを表す指標です。真値誤差、信頼区間、証明付き上界ではありません。両方の分点が狭い異常や極を見落とせば差が小さくても結果は不正確になり得ます。必要な精度は区間分割、別次数、別方式、解析値、高精度実装との比較で判断してください。
  • 有限区間[a,b]では標準分点tをx=(a+b)/2+(b−a)t/2へ写像し、重み付き和へ(b−a)/2を掛けます。a>bも向き付き積分として受理し、半区間幅が負になるため二つの推定値も符号反転します。a=b、非有限端点、絶対値または区間幅が1,000,000を超える条件は、意味のない計算や極端な中間値を避けるため拒否します。
  • 関数式は変数x、定数pi・π・e、四則演算、べき乗、丸括弧と、許可済みの初等関数だけを有界な字句解析器で評価します。evalやnew Functionは使いません。200文字、128トークン、32段の上限があり、未知の名前、プロパティ参照、代入、配列、文字列、セミコロンを受理しません。分点で0除算や定義域外が生じた場合は数値を推測せず中止します。
  • 計算は利用者のブラウザ内で完結し、入力した関数式、区間、選択した則、結果をサーバーへ送信または保存しません。最大61回の関数評価に固定されるため、サーバー側CPUや外部サービスへ負荷を移しません。端末を閉じると条件は残らないので、TSVを保存するときは関数式、区間、G/Kの組、表示桁数、確認日も一緒に記録してください。
  • 画面表示とTSVコピーは最大12有効桁です。内部はIEEE 754 binary64で計算し、Netlibに記された十進係数も読み込み時にbinary64へ丸められます。12桁表示は12桁の正しさや誤差幅を意味しません。桁落ち、巨大値の相殺、非常に小さい積分、ほぼ等しい二推定値の差では、表示前の丸めと加算順序の影響を考慮してください。
  • 低い組から高い組へ変更すると分点集合は増えますが、K15の全分点がK21へそのまま含まれるわけではありません。各組の内側でGauss分点がKronrod分点へ埋め込まれている、という意味です。異なるKronrod次数間の単純な差を自動収束判定として扱わず、難しい関数では既知の不連続点や特異点で区間を分けることを優先してください。
  • 係数、埋込み位置、標準区間の重みはNetlib QUADPACKの6本の倍精度ルーチンを2026年7月13日に照合しました。K15とK21はSciPy内部のGauss–Kronrod実装とも独立比較し、全6組について対称性、正のKronrod重み、Gauss重み総和2、Kronrod重み総和2、多項式モーメントを確認しています。このページは教育、実装確認、一般的な数値試算向けで、任意精度や安全判断の保証を提供しません。
  • binary64・最大12有効桁の固定求積則です。G/K差は真値誤差や誤差上界ではありません。

よくある質問

絶対差より真値誤差は必ず小さいですか?

いいえ。差は同じ標本集合から得た二推定値の不一致量です。未標本の異常、特異点、相殺などにより真値誤差を過小評価する場合があります。

K61なら適応積分と同じですか?

同じではありません。この計算機は一区間へ一回だけ固定則を適用し、区間の自動細分化やQUADPACKのresabs・resasc・abserr推定を実装しません。

関数式、積分区間、選択したG/K組、計算結果は利用者の端末内だけで処理され、サーバーや外部APIへ送信・保存されません。