2016年8月19日金曜日

ゼロ除算(division by zero)

NEW !
テーマ:

ゼロ除算

ゼロ除算(ゼロじょざん、division by zero)は、0 で除す割り算のことである。このような除算は除される数を a とするならば、形式上は a0 と書くことができるが、数学において、この式と何らかの意味のある値とが結び付けられるかどうかは、数学的な設定にまったく依存している話である。少なくとも通常の実数の体系とその算術においては、意味のある式ではない。
コンピュータなど計算機においても、ゼロ除算に対するふるまいは様々である。たとえば浮動小数点数の扱いに関する標準であるIEEE 754では、数とは異なる無限大を表現するものが結果となる。他には、例外が起きてプログラムの中断を引き起こすかもしれないし、例えばナイーブに取尽し法を実行しようとしたなら無限ループに陥るか、なんらかの最大値のようなものが結果となるかもしれない。
計算尺では、対数尺には0に相当する位置が存在しない(無限の彼方である)ため不可能である。

目次

  [非表示

算数的解釈[編集]

算数レベルでは、除算は何らかの物の集合をそれぞれ同数になるように分けることで説明される。例えば、10個のリンゴを5人で分ける場合、各人は 10 ÷ 5 = 2個のリンゴを受け取ることになる。同様に、10個のリンゴを1人で分ける場合、各人は 10 ÷ 1 = 10個のリンゴを受け取る。
この考え方を使ってゼロ除算を説明できる。10個のリンゴを0人で分けるとする。各人は何個のリンゴを受け取るだろうか? 10 ÷ 0 を計算しようとしても、元の設問自体が無意味なので無意味となる。この場合、各人が受け取る個数は、0個でも、10個でも、無限個でもない。なぜなら、元々受け取るべき人はいないからである。以上のように算数レベルで考える場合、ゼロ除算は無意味または未定義となる。
ゼロ除算の未定義性を理解する別の方法として、減法の繰り返し適用という考え方がある。すなわち、余りが除数より少なくなるまで除数を繰り返し引くのである。たとえば 13 ÷ 5 を考えると、13 から 5 は 2 回引くことができ、余りは 3 となる。結果は 13 ÷ 5 = 2 あまり 3 などと記される。ゼロ除算の場合、ゼロを何度引いても余りがゼロより小さくなることはないため、無限に減法を繰り返すだけとなる。

初期の試み[編集]

628年ブラーマグプタが著した『ブラーマ・スプタ・シッダーンタ』では、0 を数として定義し、その演算結果も定義している。しかし、ゼロ除算の説明は間違っていた。彼の定義に従うと代数的不合理が生じることを簡単に証明できる。ブラーマグプタによれば、次の通りである。
「正または負の数をゼロで割ると、分母がゼロの分数となる。ゼロを正または負の数で割ると、ゼロになるか、またはゼロを分子とし有限数を分母とする分数になる。ゼロをゼロで割るとゼロになる」
830年マハーヴィーラはブラーマグプタの間違いを著書 『ガニタ・サーラ・サングラハ』で以下のように訂正しようとして失敗した。
「数はゼロで割っても変化しない」
バースカラ2世は n0 = ∞ と定義することで問題を解決しようとした。この定義はある意味では正しいが、後述の「ゼロ除算と極限」に示す問題もあり、注意深く扱わないとパラドックスに陥る。このパラドックスは近年まで考察されなかった[1]

代数学的解釈[編集]

ゼロ除算を数学的に扱う自然な方法は、まず除算を他の算術操作で定義することで得られる。整数有理数実数複素数の一般的算術規則では、ゼロ除算は未定義である。の公理体系に従う数学的体系では、ゼロ除算は未定義のままとされなければならない。その理由は、除法乗法の逆演算として定義されているためである。つまり、ab の値は、bx = a という方程式を x について解いたときに値が一意に定まる場合のみ存在する。さもなくば、値は未定義のままとされる。
b = 0 のとき、方程式 bx = a は 0x = a または単に 0 = a と書き換えられる。つまりこの場合、方程式 bx = a は a が 0 でないときには解がなく、a が 0 であれば任意の x が解となりうる。いずれにしても解は一意に定まらず、ab は未定義となる。逆に、においては ab は b がゼロでないとき常に一意に定まる。

ゼロ除算に基づく誤謬[編集]

ゼロ除算を代数学的記述に用いて、例えば以下のように 1 = 2 のような誤った証明を導くことができる。
以下を前提とする。
{\displaystyle 0\times 1=0\quad }
{\displaystyle 0\times 2=0\quad }
このとき、次が成り立つ。
{\displaystyle 0\times 1=0\times 2}
両辺をゼロ除算すると、次のようになる。
{\displaystyle \textstyle {\frac {0}{0}}\times 1={\frac {0}{0}}\times 2}
これを簡約化すると次のようになる。
{\displaystyle 1=2\quad }
この誤謬は、暗黙のうちに 00 = 1 であるかのように扱っていることから生じる。
上の証明が間違いであることは多くの人が気づくと思われるが、これをもっと巧妙に表現すると間違いを分かりにくくできる。例えば、1 を x と y に置き換え、ゼロを x − y、2 を x + y で置き換える。すると上記の証明は次のようになる。
{\displaystyle (x-y)x=x^{2}-xy=0}
{\displaystyle (x-y)(x+y)=x^{2}-y^{2}=0}
したがって、
{\displaystyle (x-y)x=(x-y)(x+y)}
両辺を x − y で割ると次のようになる。
{\displaystyle x=x+y}
x = y = 1 を代入すると、次のようになる。
{\displaystyle 1=2}

解析学的解釈[編集]

ゼロ除算と極限[編集]


関数 y = 1x のグラフ。x が 0 に近づくと、y は無限大に近づく。
直観的に a0 は ab で 正数b を 0 に漸近させたときの極限を考えることで定義されるように見える。
a が正の数の場合、次のようになる。
{\displaystyle \lim _{b\to 0+}{\frac {a}{b}}=+\infty }
a が負の数の場合、次のようになる。
{\displaystyle \lim _{b\to 0+}{\frac {a}{b}}=-\infty }
したがって、a が正のとき a0 を +∞、a が負のとき −∞ と定義できるように思われる。しかし、この定義には2つの問題点がある。
第一に、正と負の無限大実数ではない。実数の範囲内で考えたい場合、この定義には意味がない。この定義を使いたければ、何らかの形で実数を拡張する必要がある。
第二に、右側から極限に漸近するのは恣意的である。左側から漸近して極限を求めた場合、a が正の場合に a0 が −∞ となり、a が負の場合に +∞ となる。これを等式で表すと次のようになる。
{\displaystyle +\infty ={\frac {1}{0}}={\frac {1}{-0}}=-{\frac {1}{0}}=-\infty }
このように、+∞ と −∞ が等しいことになってしまい、これではあまり意味がない。これを意味のある拡張とするには、「符号のない無限大」という概念を導入するしかない。
実数に、正負の区別が有る、あるいは無い、無限大が含まれるように拡張したものが拡大実数である。アフィン拡大実数では区別が有り、射影拡大実数では区別が無い(無限遠点)。
物理学においてはブラックホールや宇宙の始まりを考察する際に質量/体積(密度)の体積が 0 となる特異点が発生するためゼロ除算による無限大発散の難問が生じている。この場合質量・体積は正であるため正の無限大への発散となる。
直接のゼロ除算以外では、三角関数の tan 90° などの計算においても、同様の問題が生じてしまう。
00 についても、極限
{\displaystyle \lim _{(a,b)\to (0,0)}{\frac {a}{b}}}
は存在しないため、うまく定義できない。さらに一般に、x が 0 に漸近すると共に f(x) も g(x) も 0 に漸近するとして、極限
{\displaystyle \lim _{x\to 0}{\frac {f(x)}{g(x)}}}
を考えても、これは任意の値に収束する可能性もあるし、収束しない可能性もある。したがって、この手法では 00 について意味のある定義は得られない。

リーマン球面[編集]

リーマン球面は、複素平面に無限遠点 ∞ の1点を付け加えて得られるもの C ∪ {∞} である。上記実射影直線(射影拡大実数)の複素数版とも考えられる。リーマン球面は複素解析において重要な概念であり、演算は例えば 1/0 = ∞、1/∞ = 0、などとなるが、∞+∞ や 0/0 は定義されない。

コンピュータにおけるゼロ除算[編集]


SpeedCrunchという電卓ソフトでゼロ除算を実行したときの様子。エラーが表示されている。
現在のほとんどのコンピュータでサポートされているIEEE 754 浮動小数点に関する標準規格では、全ての浮動小数点演算を定義している。ゼロ除算も例外ではなく、どういう値になるかが定義されている。IEEE 754の定義によれば、a/0 で a が正の数であれば、除算の結果は正の無限大となり、a が負の数であれば負の無限大となる。そして、a も 0 であった場合、除算結果は NaN(not a number、数でない)となる。IEEE 754 には −0 も定義されているため、0 の代わりに −0 で除算をした場合は、上述の符号が反転する。
整数のゼロ除算は通常、浮動小数点とは別に処理される。というのは整数ではゼロ除算の結果を表す方法がないためである。 多くのプロセッサは整数のゼロ除算を実行しようとすると例外を発生させる。この例外に対する対処がなされていない場合、ゼロ除算を実行しようとしたプログラムは強制終了(アボート)される。これは、ゼロ除算がエラーと解釈されるためで、エラーメッセージが表示されることも多い。
1997年、民生品の応用を研究していたアメリカ海軍タイコンデロガ級ミサイル巡洋艦ヨークタウンを改造して主機のガスタービンエンジンの制御にマイクロソフトソフトウェアを採用したが、試験航行中にデータベースのゼロ除算が発生してソフトウェアが例外を返し、結果として主機が停止、回復するまでカリブ海を2時間半ほど漂流する事態となっている[2]

ポップカルチャー[編集]

再生核研究所声明316(2016.08.19) ゼロ除算における誤解
(2016年8月16日夜,風呂で、ゼロ除算の理解の遅れについて 理由を纏める考えが独りでに湧いた。)

6歳の道脇愛羽さんたち親娘が3週間くらいで ゼロ除算は自明であるとの理解を示したのに、近い人や指導的な数学者たちが1年や2年を経過してもスッキリ理解できない状況は 世にも稀なる事件であると考えられる。ゼロ除算の理解を進めるために その原因について、掘り下げて纏めて置きたい。
まず、結果を聞いて、とても信じられないと発想する人は極めて多い。割り算の意味を自然に拡張すると1/0=0/0=z/0 となる、関数y=1/xの原点における値がゼロであると結果を表現するのであるが、これらは信じられない、このような結果はダメだと始めから拒否する理由である。
先ずは、ゼロでは割れない、割ったことがない、は全ての人の経験で、ゼロの記録Brahmagupta(598– 668?) 以来の定説である。しかも、ゼロ除算について天才、オイラーの1/0を無限大とする間違いや、不可能性についてはライプニッツ、ハルナックなどの言明があり、厳格な近代数学において確立した定説である。さらに、ゼロ除算についてはアインシュタインが最も深く受け止めていたと言える:(George Gamow (1904-1968) Russian-born American nuclear physicist and cosmologist remarked that "it is well known to students of high school algebra" that division by zero is not valid; and Einstein admitted it as {\bf the biggest blunder of his life} :Gamow, G., My World Line (Viking, New York). p 44, 1970.)。
一様に思われるのは、割り算は掛け算の逆であり、直ぐに不可能性が証明されてしまうことである。ところが、上記道脇親娘は 割り算と掛け算は別であり、割り算は、等分の考えから、掛け算ではなく、引き算の繰り返し、除算で定義されるという、考えで、このような発想から良き理解に達したと言える。
ゼロで割ったためしがないので、ゼロ除算は興味も、関心もないと言明される人も多い。
また、割り算の(分数の)拡張として得られた。この意味は結構難しく、何と、1/0=0/0=z/0 の正確な意味は分からないというのが 真実である。論文ではこの辺の記述は大事なので、注意して書いているが 真面目に論文を読む者は多いとは言えないないから、とんでもない誤解をして、矛盾だと言ってきている。1/0=0/0=z/0 らが、普通の分数のように掛け算に結びつけると矛盾は直ぐに得られてしまう。したがって、定義された経緯、意味を正確に理解するのが 大事である。数学では、定義をしっかりさせる事は基本である。― ゼロ除算について、情熱をかけて研究している者で、ゼロ除算の定義をしっかりさせないで混乱している者が多い。
次に関数y=1/xの原点における値がゼロである は 実は定義であるが、それについて、面白い見解は世に多い。アリストテレス(Aristotelēs、前384年 - 前322年3月7日)の世界観の強い影響である。ゼロ除算の歴史を詳しく調べている研究者の意見では、ゼロ除算を初めて考えたのはアリストテレスで真空、ゼロの比を考え、それは考えられないとしているという。ゼロ除算の不可能性を述べ、アリストテレスは 真空、ゼロと無限の存在を嫌い、物理的な世界は連続であると考えたという。西欧では アリストテレスの影響は大きく、聖書にも反映し、ゼロ除算ばかりではなく、ゼロ自身も受け入れるのに1000年以上もかかったという、歴史解説書がある。ゼロ除算について、始めから国際的に議論しているが、ゼロ除算について異様な様子の背景にはこのようなところにあると考えられる。関数y=1/xの原点における値が無限に行くと考えるのは自然であるが、それがx=0で突然ゼロであるという、強力な不連続性が、感覚的に受け入れられない状況である。解析学における基本概念は 極限の概念であり、連続性の概念である。ゼロ除算は新規な現象であり、なかなか受け入れられない。
ゼロ除算について初期から交流、意見を交わしてきた20年来の友人との交流から、極めて基本的な誤解がある事が、2年半を越えて判明した。勿論、繰り返して述べてきたことである。ゼロ除算の運用、応用についての注意である。
具体例で注意したい。例えば簡単な関数 y=x/(x -1) において x=1 の値は 形式的にそれを代入して 1/0=0 と考えがちであるが、そのような考えは良くなく、y = 1 + 1/(x -1) からx=1 の値は1であると考える。関数にゼロ除算を適用するときは注意が必要で、ゼロ除算算法に従う必要があるということである。分子がゼロでなくて、分母がゼロである場合でも意味のある広い世界が現れてきた。現在、ゼロ除算算法は広い分野で意味のある算法を提起しているが、詳しい解説はここでは述べないことにしたい。注意だけを指摘して置きたい。
ゼロ除算は アリストテレス以来、あるいは西暦628年インドにおけるゼロの記録と、算術の確立以来、またアインシュタインの人生最大の懸案の問題とされてきた、ゼロで割る問題 ゼロ除算は、本質的に新しい局面を迎え、数学における基礎的な部分の欠落が明瞭になってきた。ここ70年を越えても教科書や学術書における数学の基礎的な部分の変更 かつて無かった事である。と述べ、大きな数学の改革を提案している:
再生核研究所声明312(2016.07.14) ゼロ除算による 平成の数学改革を提案する

以 上

0 件のコメント:

コメントを投稿