半無限領域(−∞,b)の二重指数型数値積分

半無限領域(−∞,b)の二重指数型数値積分

関数式と有限上端bから、区間(−∞,b)の積分を二重指数型変換の段階別に近似します。

入力

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

−1,000,000以上1,000,000以下の有限実数です。無限側の端点は変数変換が扱います。

計算量を有界にする選択肢から指定します。大きい値ほど常に正確とは限りません。

使い方

  1. 被積分関数を許可済みの式文法で入力し、暗黙の掛け算、内部極、定義域外がないか確認します。
  2. 有限区間では下端・上端・最大分割数、半無限では有限端点・最大段階、全実数では最大段階を指定します。
  3. 計算後は複数行の推定値と隣接段階の変化を既知値や別方式と比較し、収束しない設定を採用しません。
  4. 必要なら列見出し付きTSVをコピーし、式、区間、方式、精度設定、最大12有効桁表示を結果と一緒に保存します。

計算式・考え方

x=b−exp((π/2)sinh t)と変換し、正のJacobianの大きさ(π/2)cosh(t)exp((π/2)sinh t)を使って∫_{−∞}^b f(x)dxを近似します。

注意事項

  • 既定値f(x)=1/(1−x^3)、b=0の真値は2π/(3√3)、約1.20919957615615です。負の無限遠では|x|^(−3)として十分速く減衰し、区間内に分母0の点を含みません。正の半無限ページと似た式でも、符号と有限端点の向きが異なるため、Jacobianの符号を誤って結果を負にしないよう正の大きさを用います。
  • 有限上端bは−1,000,000〜1,000,000で指定します。変換後のxは常にbより小さく、tが負の側でbへ、正の側で負の無限遠へ進みます。exp(x)の(−∞,0]積分=1は簡単な検算です。bより小さい内部点に極がある式、たとえばb=2で1/(1−x)を積分する設定は通常積分として成立しないため使えません。
  • 負側へ十分速く減衰するかを必ず確認してください。定数関数、|x|の増加関数、1/|x|に近い遅い減衰は発散または尾部評価が困難です。cos(x)のような無限振動を有限の打切り和で処理しても、通常の意味での収束値を保証しません。変数u=−xで正の半無限積分へ写した独立計算と比較すると、端点や符号の入力ミスを見つけやすくなります。
  • 二重指数型求積は、元の積分区間を実数の補助変数tへ写し、変換後の関数を等間隔の台形和で近似する方法です。端点または無限遠へ向かう標本点の寄与が二重指数的に小さくなるよう変換するため、有限区間の可積分な端点特異性や、十分速く減衰する無限区間積分で高い精度を得られる場合があります。ただし方式名だけで収束が保証されるわけではなく、被積分関数と変換の相性を確認する必要があります。
  • 結果表のabsolute-changeは現在の推定値と直前の推定値との差の絶対値、relative-changeはその差を現在値の大きさで規格化した値です。どちらも真値との差を直接測ったものでも、厳密な誤差上界でもありません。隣接する二段階が偶然一致しながら同じ尾部や狭いピークを見落とす場合があります。既知の解析値、別の変数変換、区間分割、多倍長積分器と比較して必要精度を判断してください。
  • 関数式には変数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、サーバー側計算は使用しません。入力した関数式、端点、精度設定、計算結果は利用者のブラウザ内だけで処理されます。プロパティ参照、配列、代入、セミコロン、文字列、ネットワーク命令を実行可能な式として扱うことはありません。
  • 内部計算はIEEE 754 binary64で行い、画面とTSVには最大12有効桁で表示します。参照値が20桁以上で掲載されていても、その桁数を模倣すると実装精度以上の確かさを示すため採用していません。大きさの異なる項の和には安定した総和を使いますが、桁落ち、オーバーフロー、アンダーフロー、強い正負相殺を完全に除くものではありません。任意精度や証明付き区間が必要なら専用実装で再計算してください。
  • 無限区間で特に重要なのは減衰速度です。指数関数的または十分なべきで減衰する関数は扱いやすい一方、遅い減衰では変換後も遠い尾部が残ります。sin(x)のような終わりのない振動、条件収束、Cauchy主値を必要とする式、定数や増加関数のような発散積分を、有限回の数値和が自動判定して正しい値へ変えることはできません。段数を増やして値が安定しない場合は結果を採用せず、問題に合う振動積分法や解析処理へ切り替えてください。
  • 積分区間の内部に極、不連続点、平方根や対数の定義域境界がある場合は、分点がその場所へ偶然一致しなくても積分が存在するとは限りません。内部極をまたいだ通常積分を主値として解釈せず、既知の特異点で区間を分けるか、特異部分を解析的に差し引いてください。関数評価がNaNまたは無限大になった場合、変換のJacobianや総和が有限でない場合、反復上限で安全に計算できない場合は推測値を表示せずエラーにします。
  • 最大分割数または最大段数を増やすと標本点数と計算時間も増えます。入力値は有限の選択肢へ制限し、式の評価回数にも上限を設けています。ブラウザを長時間占有する無制限反復は行いません。最高設定が常に最適とは限らず、丸め誤差が支配すると推定値間の差が横ばいまたは増加します。最小設定から収束履歴を観察し、必要な精度を満たした段階で止めるのが実用的です。
  • 対称な区間と関数には独立した検算があります。全実数上の奇関数が絶対可積分なら積分は0、偶関数なら正側の積分の2倍です。正値関数の結果が負になる、既知の上限下限から外れる、単位や尺度が合わない場合は、式や端点、変換の選択を見直してください。数値積分器の表示だけを信頼せず、グラフ、概算面積、次元解析、代表点の関数値も合わせて確認します。
  • TSVコピーには列見出しと表示順を含めます。結果を保存または転載するときは、関数式、有限端点、方式名、最大分割数または最大段数、binary64・最大12有効桁であること、確認日を一緒に残してください。推定値だけでは、正の半無限、負の半無限、全実数のどの変換を使ったか、隣接段階の差がどの設定間で得られたかを後から再現できません。
  • この計算機は学習、実装確認、一般的な数値試算を目的とします。医療投与量、安全限界、法令上の判定、金融取引の最終判断を保証しません。重要な用途では式と入力データの出典を確認し、独立した実装、十分な精度、専門家のレビューを組み合わせてください。収束しない入力に値らしい有限数が一時的に現れても、判断根拠として採用しないでください。
  • Tanh–Sinhと二重指数型変換、数値積分の一般的な収束上の注意はNIST Digital Library of Mathematical Functions §3.5を2026年7月13日に照合しました。実装は実数関数、有界な次数・段数、クライアント側binary64計算へ限定しています。複素経路積分、解析接続、自動特異点分離、振動尾部の加速、任意精度積分器、厳密な誤差保証の代替ではありません。
  • 変換式の歴史的定義は高橋秀俊・森正武による二重指数型公式の原論文、関連実装と収束判定の背景は京都大学数理解析研究所のOouraによる公開bibliographyおよび日本応用数理学会論文を2026年7月13日に確認しました。本文の隣接段階差は、この実装固有の有界な収束指標として提示し、原論文や公開資料が与える条件を省略して厳密な誤差保証と呼ばない方針です。
  • binary64・最大12有効桁の有限反復による近似です。段階間の差は真の誤差上界ではありません。

よくある質問

正の半無限ページとの違いは何ですか?

こちらは負の無限遠から有限上端bまでを扱い、x=b−exp((π/2)sinh t)を使います。

結果の符号はどう決まりますか?

積分方向は−∞からbで固定し、変換ではJacobianの正の大きさを掛けます。

関数式、有限端点、精度設定、計算結果は利用者のブラウザ内だけで処理され、サーバーや外部APIへ送信・保存されません。