【論文368】代数的に等しい二つの式が、返す有効桁を 15 桁変える

要旨

数学的に同じ式は、同じ答を返すと考えたくなる。本稿が問うのは有限桁の計算でもそうかである。答えはそうならず、差は $15$ 桁に達する。新しい定理も法則も主張しない。

第一に、$x^2+10^{8}x+1=0$ の小さいほうの根を、二つの等価な式で計算する(第2節)。

第二に、これが本稿の芯である。素朴な式は有効桁 $\mathbf{0.59}$ 桁、有理化した式は $\mathbf{16}$ 桁を返す(第2節)。

第三に、原因は $\sqrt{b^2-4c}$ が $b$ と $\mathbf{15.83}$ 桁一致していることである(第3節)。

第四に、$b$ が小さければ両式は一致する($b=3$ で $-0.3819660112501051$ 対 $-0.3819660112501052$)(第3節)。

第五に、$b$ を $10^{2}$ から $10^{10}$ へ動かすと、素朴な式の有効桁は $12.91$ から $0$ へ落ちる(第2節)。

第六に、分離子は「ほとんど等しい二つを引くか」であって、式の複雑さでも桁数でもない(第5節)。

射程(何を示さないか)

新しい定理も法則も主張しない。桁落ち(相殺による精度喪失)・有理化・浮動小数点演算はすべて既知である。数値解析を作らない。丸め誤差の一般論や後退誤差解析には立ち入らない。名前を挙げるにとどめる。実装を扱わない。倍精度以外の演算や補償付き総和は主題ではない。条件数を扱わない。問題の条件数そのものは主題ではない。論文330 は条件数の二乗化を扱ったが、本稿が扱うのは同じ問題を二通りに書いたときの差である。根の求解法を論じない。高次方程式の数値解法は主題ではない。一般化しない。全ての等価な書き換えが桁を変えるとは主張しない。相殺が起きる場合だけである。既刊との関係:論文330 は条件数が二乗になるのが近似ではなく恒等式であることを示した。そこでは問題の側の性質だった。ここでは同じ問題の書き方の側である。論文360 は厳密な式が計算できないことがあると示した。そこでは項数が問題だった。ここでは項の引き算が問題である。論文300 は同根か別根かが判定できることを示した。「数学的に等しい」と「数値的に等しい」は、その基準で別根である。論文355 は経験則が自分の破れを指すことを示した。ここでは式が自分の壊れる $b$ を指す。加えたのは、二つの式の有効桁を五点で数に出したこと、差が $15$ 桁に達することを示したこと、原因である $15.83$ 桁の一致を数で示したこと、桁落ちしない領域で両式が一致することを対照として確かめたこと、分離子を「ほとんど等しい二つを引くか」に置いたことである。

1. 記法と問い

設定:$x^2+bx+c=0$ の、絶対値の小さいほうの根を二通りに書く。

$$x_{\text{素朴}}=\frac{-b+\sqrt{b^2-4c}}{2},\qquad
x_{\text{有理化}}=\frac{2c}{-b-\sqrt{b^2-4c}}$$

$b=10^{8}$、$c=1$ とする。二つは代数的に厳密に等しい。

観察 1.1 二つの式は、分子と分母に $(-b-\sqrt{b^2-4c})$ を掛けただけの関係にある。代数的な変形である。数学の上では区別がない。

観察 1.2 だが片方は引き算を含み、もう片方は含まない。$-b+\sqrt{\cdots}$ と $-b-\sqrt{\cdots}$、符号が一つ違うだけである。

観察 1.3 本稿はその一つの符号の帰結を数で出す。「精度が落ちる」ではなく「何桁落ちるか」、大きさが分かれば、書き換えるかどうかを判断できる。

問い:代数的に等しい式は、同じ答を返すか。

2. 有効桁が $0.59$ 桁と $16$ 桁である

計算 2.1:$b=10^{8}$、$c=1$ での二つの式(本稿で計算・倍精度)。

式 値
素朴な式 $-7.45058059692382812500\times10^{-9}$
有理化した式 $-1.00000000000000002092\times10^{-8}$
相対誤差(素朴) $2.549\times10^{-1}$
有効桁(素朴) $\mathbf{0.59}$ 桁
有効桁(有理化) $\mathbf{16}$ 桁

観察 2.2 これが本稿の芯である。素朴な式は $\mathbf{0.59}$ 桁しか合っていない。最初の一桁すら怪しい。相対誤差 $25$ パーセントである。

観察 2.3 $-7.45\times10^{-9}$ という値には見覚えがある。$10^{8}$ 付近の倍精度の刻み幅のちょうど半分($7.450580596923828\times10^{-9}$)である。計算した結果ではなく、丸めの残骸がそのまま答になっている。

計算 2.4:$b$ を動かしたときの有効桁(本稿で計算)。

$b$ 素朴な式の有効桁 有理化した式の有効桁
$10^{2}$ $12.91$ $16.00$
$10^{4}$ $8.95$ $16.00$
$10^{6}$ $5.12$ $16.00$
$10^{8}$ $\mathbf{0.59}$ $16.00$
$10^{10}$ $\mathbf{0.00}$ $16.00$

観察 2.5 $b$ が二桁増えるごとに、有効桁が約 $2$ 桁ずつ減る。$12.91\to8.95\to5.12\to0.59$、規則的である。偶然の事故ではない。

観察 2.6 $b=10^{10}$ で $0$ 桁になる。一桁も合っていない。式は答を返すが、その答には情報が無い。

3. 原因は $15.83$ 桁の一致である

計算 3.1:$\sqrt{b^2-4c}$ と $b$ の一致度(本稿で計算)。

$b$ 相対差 一致している桁
$10^{8}$ $1.490\times10^{-16}$ $\mathbf{15.83}$ 桁
$3$ 、 $0.59$ 桁

観察 3.2 $b=10^{8}$ では、二つが $15.83$ 桁まで同じである。$c=1$ に対して $b^2=10^{16}$ だから、$4c$ は $b^2$ の $16$ 桁下にある。その差は倍精度の分解能に埋もれる。

観察 3.3 ほとんど等しい二つを引くと、一致していた桁が消える。$15.83$ 桁一致していれば、引き算の後に残るのは $16-15.83=0.17$ 桁、実測の $0.59$ 桁と、桁の勘定として合う。

観察 3.4 つまり壊れているのは引き算だけである。$\sqrt{b^2-4c}$ そのものは正しく計算されている。どの演算が悪いのかを、名指しできる。

観察 3.5 有理化した式は引き算を足し算に変える。$-b-\sqrt{\cdots}$ は同符号どうしの和である。相殺が起きないので、桁が消えない。

観察 3.6 対照として、$b=3$ では両式が一致する。$-0.3819660112501051$ 対 $-0.3819660112501052$、そこでは $\sqrt{b^2-4c}$ と $b$ の一致が $0.59$ 桁しかなく、引いても何も消えない。

4. 式は自分の壊れる場所を指す

観察 4.1 $4c$ と $b^2$ の桁の比が判定になる。倍精度は約 $16$ 桁、$b^2/(4c)$ が $10^{16}$ に近づくほど危ない。

観察 4.2 だから計算する前に分かる。$b$ と $c$ を見れば、どちらの式を使うべきかが決まる。答を見てから気づくのでは遅い。

観察 4.3 論文355 と同じ形である。論文355 では経験則が自分の破れる速度を指した。ここでは式が自分の壊れる $b$ を指す。どちらも、式の中に限界が書いてある。

観察 4.4 実務上の作法は単純である。符号に応じて二つの式を使い分ける。$b>0$ なら小さい根に有理化した式を、$b<0$ なら大きい根に使う。

観察 4.5 正直に言えば、本稿は誤差解析をしていない。示したのは、一つの例で有効桁が $15$ 桁違うことと、その原因が一致度にあることだけである。一般の誤差限界は文献に譲る。

5. 分離子:ほとんど等しい二つを引くか

観察 5.1 分離子、式がほとんど等しい二つを引くかどうかであって、式の複雑さでも扱う数の大きさでもない。

演算 $b=10^{8}$ で $b=3$ で
素朴な式 $-b+\sqrt{\cdots}$(相殺する) $\mathbf{0.59}$ 桁 $16$ 桁
有理化した式 $-b-\sqrt{\cdots}$(相殺しない) $\mathbf{16}$ 桁 $16$ 桁

観察 5.2 右の二列が判定になる。$b=3$ では二つに差が無い。相殺が起きる領域でだけ、書き方が結果を変える。

観察 5.3 論文300 の基準で別根である。「数学的に等しい」は代数から、「数値的に等しい」は演算の丸めから決まる。前者が成り立っても後者は成り立たない。

観察 5.4 分離子は動かせる。精度を四倍精度にすれば $b=10^{8}$ でも耐える。だが $b=10^{16}$ では同じことが起きる。桁を増やすのは、境目を動かすだけで、消すことではない。

観察 5.5 正直に言えば、$0.59$ 桁も $15.83$ 桁も、倍精度・$b=10^{8}$・$c=1$ という明示した条件の上での値である。別の条件なら別の数が出る。動かないのは、相殺した桁数だけ有効桁が減るという構造だけである。

観察 5.6 最後に一つ、「式を整理する」という操作は、答を変えないとはかぎらない。代数的には変えないが、数値的には $15$ 桁変える。整理した式が読みやすいことと、正しい答を返すことは、別の性質である。

6. 点呼と結び

  1. 二つの式は代数的に厳密に等しい(第1節):有理化しただけ。
  2. 素朴な式は $0.59$ 桁(計算 2.1):相対誤差 $25$ パーセント。
  3. 有理化した式は $16$ 桁(計算 2.1):差は $15$ 桁。
  4. $b$ が二桁増えるごとに約 $2$ 桁減る(観察 2.5):規則的。
  5. $b=10^{10}$ で $0$ 桁(計算 2.4):答に情報が無い。
  6. $\sqrt{b^2-4c}$ は $b$ と $15.83$ 桁一致(計算 3.1):これが原因。
  7. $16-15.83=0.17$(観察 3.3):桁の勘定が合う。
  8. 壊れているのは引き算だけ(観察 3.4):平方根は正しい。
  9. $b=3$ では両式が一致(観察 3.6):対照。
  10. 精度を上げても境目が動くだけ(観察 5.4):消せない。

結び:数学的に同じ式は、同じ答を返すと考えたくなる。有限桁の計算では、そうならない。$x^2+10^{8}x+1=0$ の小さいほうの根を二通りに書く。素朴な $(-b+\sqrt{b^2-4c})/2$ と、有理化した $2c/(-b-\sqrt{b^2-4c})$ は代数的に厳密に等しく、符号が一つ違うだけである。ところが素朴な式は有効桁 $\mathbf{0.59}$ 桁、有理化した式は $\mathbf{16}$ 桁を返す。素朴な式の相対誤差は $25$ パーセントで、最初の一桁すら怪しい。返ってくる $-7.45\times10^{-9}$ は $10^{8}$ 付近の浮動小数の刻み幅そのもので、計算した結果ではなく丸めの残骸である。原因は名指しできる。$b=10^{8}$ では $\sqrt{b^2-4c}$ が $b$ と $\mathbf{15.83}$ 桁まで一致している($c=1$ に対して $b^2=10^{16}$ だから、$4c$ は倍精度の分解能に埋もれる)。ほとんど等しい二つを引けば、一致していた桁がそのまま消える。$16-15.83=0.17$ 桁という勘定は、実測の $0.59$ 桁と桁として合う。壊れているのは引き算だけで、平方根そのものは正しく計算されている。有理化した式は同符号どうしの和に変えるので、相殺が起きない。そして式は自分の壊れる場所を指す。$b$ を $10^{2}$ から $10^{10}$ へ動かすと素朴な式の有効桁は $12.91\to8.95\to5.12\to0.59\to0$ と、二桁増えるごとに約 $2$ 桁ずつ規則的に減る。$b^2/(4c)$ が倍精度の $16$ 桁に近づくほど危ないのだから、計算する前に、どちらの式を使うべきかが決まる。論文355 で経験則が自分の破れる速度を指したのと同じ形である。対照が、これが書き方の問題であることを示す。$b=3$ では両式が一致する($-0.3819660112501051$ 対 $-0.3819660112501052$)。そこでは $\sqrt{b^2-4c}$ と $b$ の一致が $0.59$ 桁しかなく、引いても何も消えない。分けているものは一つ、式がほとんど等しい二つを引くかどうかであって、式の複雑さでも扱う数の大きさでもない。精度を上げれば $b=10^{8}$ では耐えるが $b=10^{16}$ で同じことが起きる。桁を増やすのは境目を動かすだけで、消すことではない。正直に言えば、本稿は誤差解析をしておらず、一つの例で有効桁が $15$ 桁違うことと、その原因が一致度にあることを示しただけである。最後に一つ、「式を整理する」という操作は、答を変えないとはかぎらない。代数的には変えないが、数値的には $15$ 桁変える。整理した式が読みやすいことと、正しい答を返すことは、別の性質である。

参考文献

  1. Forsythe, G. E. (1966). How Do You Solve a Quadratic Equation? Technical Report CS40, Stanford University.
  2. Goldberg, D. (1991). What Every Computer Scientist Should Know About Floating-Point Arithmetic. ACM Computing Surveys.
  3. Higham, N. J. (2002). Accuracy and Stability of Numerical Algorithms (2nd ed.). Philadelphia: SIAM.
  4. Kahan, W. (2004). On the Cost of Floating-Point Computation Without Extra-Precise Arithmetic. University of California, Berkeley.
  5. IEEE (2019). IEEE Standard for Floating-Point Arithmetic, IEEE Std 754-2019.
  6. 山岸勇輝 (2026). 『第三百回の点呼、同根か別根かは判定できる』[論文300]. Zenodo. 10.5281/zenodo.22171914
  7. 山岸勇輝 (2026). 『条件数が二乗になるのは、近似ではなく恒等式である』[論文330]. Zenodo. 10.5281/zenodo.22681423
  8. 山岸勇輝 (2026). 『反発係数は材料の定数ではない。そして経験則は、自分が破れる速度を自分で指す』[論文355]. Zenodo. 10.5281/zenodo.22697011
  9. 山岸勇輝 (2026). 『厳密な式が計算できないとき、途中で切ると上下から挟める』[論文360]. Zenodo. 10.5281/zenodo.22697354

作成にあたって:本稿の着想と内容は、著者自身の考察に基づくものです。文章の構成整理や英訳、数式の確認には AI(大規模言語モデル)の助力を得ました。最終的な内容の解釈や誤りがあれば、それらはすべて著者の責に帰します。お気づきの点があれば、ご教示いただければ幸いです。

書誌

山岸勇輝(2026)「代数的に等しい二つの式が、返す有効桁を 15 桁変える」[論文368]. Zenodo.
DOI: 10.5281/zenodo.22697726

YOI 368第1版・2026年9月ビットコインに記録済み

日付の証拠(OpenTimestamps):日本語版の .ots・英語版の .ots・SHA256SUMS

予備の置き場所(ミラー。中身は上と同じです):PDF 日本語・PDF English・SHA256SUMS

住所:https://www.yamagishiyuuki.com/yoi/368・DOI 10.5281/zenodo.22697726・CC BY 4.0・プレプリント(査読を経ていません)・ORCID 0009-0006-8587-3450

引用するとき

山岸勇輝 (2026). 代数的に等しい二つの式が、返す有効桁を 15 桁変える [論文368]. YOI: https://www.yamagishiyuuki.com/yoi/368 ・ DOI: 10.5281/zenodo.22697726

Yamagishi, Y. (2026). Two Algebraically Equal Forms Return Answers Differing by 15 Digits [Paper 368]. YOI: https://www.yamagishiyuuki.com/yoi/368; DOI: 10.5281/zenodo.22697726

@misc{yamagishi2026yoi368,
  author = {Yamagishi, Yuuki},
  title = {Two Algebraically Equal Forms Return Answers Differing by 15 Digits},
  year = {2026},
  howpublished = {YOI: https://www.yamagishiyuuki.com/yoi/368},
  doi = {10.5281/zenodo.22697726},
  note = {Preprint, edition 1}
}
指紋(SHA-256)と確かめ方
6766ac3e391ee6d0cae2b1715e2c87d2080301960bff4f6ed837b62a40d8cb38 yamagishi_yoi368_v1_jp.pdf
d69844fa3dc9d9e2653b439b642b671c888dd34218a317f33771e3a53180f357 yamagishi_yoi368_v1_en.pdf

PDF と .ots を同じ場所に保存し、opentimestamps.org に .ots、続けて PDF を落とすと、記録された日時が表示されます。PDF が 1 バイトでも変わっていれば通りません。