二分法で方程式の根を求める計算機
関数f(x)と符号が変わる区間を入力し、二分法の近似根、区間半幅、残差を最大100行の反復表で確認します。
計算結果
- 二分法の求根計算の反復結果
-
計算すると数値表を表示します。
二分法の求根計算の反復結果。反復番号、近似値x、直前更新の絶対量、関数値f(x)を最大100行で表示します。 反復番号 近似値 x 更新量 |Δx| 関数値 f(x)
使い方
- 関数f(x)を安全な式記法で入力し、定義域と求めたい実根の位置を先に確認します。
- 異なる端点a、bを指定し、端点根または関数値の符号変化を確認します。
- 1e-15〜1の許容値と1〜100回の反復上限を設定して計算します。
- 反復表のx、更新量、f(x)を確認し、別条件・別方式・元の式への代入で検算します。
計算式・考え方
m=(a+b)/2を評価し、f(a)f(m)<0ならb=m、それ以外はa=mとして符号変化を含む半区間を残します。
注意事項
- 二分法は、連続なfについて端点a、bの関数値が異符号なら、その間に少なくとも一つの根があるという中間値の考え方を使います。各反復で中点m=a+(b−a)/2を評価し、符号変化を含む半区間だけを次へ残します。端点の順序は逆でも構いません。毎回区間幅が半分になるため収束は速くありませんが、連続性と区間条件が正しければ進み方を予測しやすい方法です。
- 表のabsolute-stepはその行を計算する直前の区間半幅です。したがって二分法ではxの位置に関する区間的な目安になります。ただし不連続点をまたぐ場合は幅が小さくなっても根へ近づいた証拠になりません。本実装は残差低下も同時に要求し、符号変化を各行で維持できない場合やbinary64で中点が端点と同じになった場合は停止します。
- 二分法を使う前に、候補区間内で式が実数かつ連続かを確認してください。偶数重根のように符号が変わらない根は、端点に厳密に置かない限り検出できません。複数根を含む広い区間ではどの根へ絞られるかを根の一覧としては制御できないため、グラフや標本評価で区間を分割し、一つの単純根だけを含む狭い区間を与えるのが基本です。
- 必要反復回数の概算は、初期幅|b−a|を2^nで割った値から判断できます。非常に広い区間と厳しい許容値の組み合わせでは50回で足りないことがあり、最大100回まで増やせます。反対に許容値だけを機械的に1e-15へ下げると、式評価の丸め誤差が支配し、幅は縮んでも残差条件を満たせないことがあります。
- この求根計算機が探すのは、実数xについてf(x)=0を満たす数値です。表示した近似値は入力した式、区間または初期値、許容値、反復上限に依存します。同じ式に複数の零点があるとき、別の区間や初期値から同じ零点へ到達する保証はありません。反復表には反復番号、近似値x、直前更新の絶対量、f(x)を並べ、最終値だけでなく収束過程を確認できるようにしています。
- 収束判定は厳密なf(x)=0を除き、xの更新量と初期残差に対する相対的な残差低下を同時に要求します。小さいf(x)だけで成功とすると、根を持たない微小定数関数を誤って根と扱います。更新量だけで成功とすると、不連続点や極へ近づいただけの列を根と誤認します。二条件は誤判定を減らす安全策ですが、根の存在、一意性、連続性を数学的に証明するものではありません。
- 関数式は変数x、定数pi・π・e、四則演算、べき乗、丸括弧、abs、sqrt、exp、ln、log、log10、三角関数、逆三角関数、双曲線関数、floor、ceilだけを有界パーサーで処理します。evalやnew Functionを使わず、200文字、128トークン、32段までに制限します。代入、配列、プロパティ参照、セミコロン、未知の名前、スクリプト断片は受理しません。
- 各関数評価と反復値はIEEE 754 binary64の有限値でなければなりません。xの絶対値は1,000,000以下、許容値は1e-15以上1以下、反復は最大100回・表は最大100行です。0除算、対数や平方根の実数定義域外、指数のオーバーフロー、非有限な更新、範囲外へのジャンプが起きたときは、値を丸めて続行せず失敗理由を表示します。
- 不連続関数では端点の符号が違っても、その間に零点があるとは限りません。例えば極をまたぐ1/(x-c)は左右で符号が変わりますがf(x)=0を満たしません。floorやtanのような跳躍・極を含む式も同様です。結果を採用する前にグラフ、定義域、連続性を確認し、既知の不連続点で区間を分け、最終xを元の式へ独立に代入してください。
- 多重根ではf(x)がx軸へ接して符号が変わらないことがあり、区間法は端点が厳密な根でない限り開始できません。Newton法やHalley法は開始できても、導関数が小さくなって理論上の収束次数より遅くなる場合があります。逆に単純根の近くでも導関数、2階導関数、初期値の組み合わせが悪いと、大きな更新、往復cycle、停滞、別の根への収束が起こります。
- 許容値を小さくするほど正しい桁数が単調に増えるとは限りません。binary64では約16桁の精度しかなく、式の相殺、条件数、導関数の大きさ、関数値のスケールによって有効桁が失われます。表のabsolute-stepとfunction-valueを両方確認し、許容値を変えた再計算、別方式、任意精度ライブラリ、解析解との比較を使って必要な精度を判断してください。
- 既定例f(x)=x−cos(x)は単純な実根を一つ持ち、近似値は0.7390851332151607です。区間法では−10と10、開放型の方法では初期値1を使います。この値はアルゴリズムの基本検算には便利ですが、任意の入力で同じ反復回数や安定性が得られることを意味しません。式を変更したら定義域、根の個数、導関数、初期条件を改めて確認してください。
- 計算、関数式の構文解析、最大100回の反復、表描画、TSVコピーはすべて利用者のブラウザ内で完結します。入力した式、区間、初期値、導関数、許容値、結果をサーバーや外部APIへ送信・保存しません。外部CDNや実行時fetchにも依存せず、サーバー側で求根処理を行わないため、サイト側の負荷を抑え、利用者端末の有限なCPUとメモリだけを使います。
- 反復式、停止条件、区間法と開放型手法の注意点は2026年7月13日にNIST Digital Library of Mathematical Functions §3.8の非線形方程式の記述と、SciPy optimizeの公開API説明を照合しました。実装は高精度mpmathの独立解、端点根、逆向き区間、多重根、微小導関数、非区間、極、cycle、式注入拒否、PythonとJavaScriptの一致で検証します。本ページは教育・一般的な数値試算向けで、証明付き解や安全判断の保証ではありません。
- binary64の有限反復による近似です。収束表示は根の存在・一意性・正しい桁数を保証しません。
よくある質問
二分法の求根計算で値が出れば根は一意ですか?
いいえ。数値反復が停止条件を満たしたことを示すだけで、根の存在や一意性の証明ではありません。複数根、極、不連続点、入力した導関数の誤りを確認し、別区間・別初期値・別方式でも検算してください。
許容値を1e-15にすれば15桁正しいですか?
保証されません。binary64の丸め、式の条件数、相殺、導関数の大きさが精度を制限します。更新量と残差を両方見て、許容値を変えた再計算や高精度計算との比較で有効桁を評価してください。
計算に失敗したら根が存在しないという意味ですか?
違います。その区間または初期値、導関数、binary64、反復上限では安全に収束を確認できなかったという意味です。定義域を確認し、区間を狭める、初期値を変える、別方式へ切り替える順で原因を分けてください。
関数式、区間、初期値、導関数、許容値、反復表はブラウザ内だけで処理され、サーバーや外部APIへ送信・保存されません。