ゼロ除算
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "ゼロ除算" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2017年2月)

ゼロ除算(ゼロじょさん、0除算、英語: division by zero)とは、0で除す割り算のことである。このような除算は除される数をaとするならば、形式上は .mw-parser-output .sfrac{white-space:nowrap}.mw-parser-output .sfrac.tion,.mw-parser-output .sfrac .tion{display:inline-block;vertical-align:-0.5em;font-size:85%;text-align:center}.mw-parser-output .sfrac .num,.mw-parser-output .sfrac .den{display:block;line-height:1em;margin:0 0.1em}.mw-parser-output .sfrac .den{border-top:1px solid}.mw-parser-output .sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}a/0と書くことができるが、数学において、このような式を矛盾なく定義することはできない。コンピュータにゼロ除算をさせようとした場合、処理が停止してしまうなど深刻なことが起きることがある。
概説

現代数学の観点では、いかなるアプローチから定義を試みようとも必ず破綻に至る。結局、「値を定義し得ないため、計算は不可能である」と理解する他ない概念であり、それ以上の議論によって数学的に有用な結果が得られることは期待できない。しかし、概念自体は極めて初等的な知識で捉えることができるため、しばしば数学的原則を前提としていない議論や独自な解釈が展開されることがある。そのような議論や解釈はいずれも論理的破綻を含むか信頼性のある根拠を伴わない為、学術的な評価の余地をほとんど有しない。

ゼロ除算の定義可能性に関する誤った理解の典型としては、例えば lim x → + 0 1 x {\displaystyle \lim _{x\to +0}{\frac {1}{x}}} のような極限が通常「+∞」という記号で表現されることから、「ゼロ除算の値を∞で定義することができる。」などと誤解し、これを起点として、ある種の集合においてはゼロ除算の定義可能性が排除されない、という旨の解釈を展開するケースである。すなわち、「 lim x → + 0 1 x {\displaystyle \lim _{x\to +0}{\frac {1}{x}}} = +∞」のような、極限についての単なる「記号的な表現式」を「等式」(1/0 = +∞)として成立させるために定義を拡張しようと試みるものであるが、いずれも基礎的な観点において破綻を招いてしまい、結局、ゼロ除算の定義可能性を生み出すことには繋がらない。例えば、実数体(または複素数体)に無限遠点を付加した集合におけるゼロ除算の定義可能性を議論する解釈については、無限遠点の付加によってそれらの集合の代数構造が破壊される(すなわち、既存の代数構造が維持できない)ことが直ちに確認できるため、除算はおろか加法や乗法という最低限の演算すら良く定義されない集合であるという事実に至る。結局、「1/0 = +∞」のような式は、極限計算の定義を表現するシンボルとして理解できるだけで、ある種の除算の値についての定義可能性を示唆するものではない。

コンピュータの整数演算[注釈 1]においては多くの場合、無限大に相当する値は定義されておらず《エラー》が発生し、またいくつかの除算アルゴリズムの単純な実装(取尽し法など)を採用しており《無限ループ》に陥りシステムが実質的に停止してしまう。浮動小数点数の国際標準規格のIEEE 754に浮動小数点の演算の結果 戻される値(戻されるべき値)の定義がされている[1]が、システムの挙動はその種類により異なる。→#コンピュータにおけるゼロ除算

一般的な電卓(普通電卓または事務用電卓)では、ゼロ除算の場合、画面には「E 0.」のように表示される。

計算尺では、対数尺には0に相当する位置が存在しない(無限の彼方である)ため計算不可能である。
算数的解釈

日本の小学校における算数では、除算は何らかの物の集合をそれぞれ同数になるように分けることで説明される[2]。例えば、6個のリンゴを3人で分ける場合、各人は2個ずつのリンゴを受け取ることになる[3]。これは 6 ÷ 3 = 2個の簡単な説明である。この考え方を使ってゼロ除算を説明できる。6個のリンゴを0人で分けるとする。これはすなわちリンゴを受け取る人がいないということを意味する。その場合、それぞれ何個ずつのリンゴを受け取るか?という問いは、そもそも問題の前提が破綻しており答えは定義できない。すなわち6 ÷ 0 を計算しようとしても、定義できないのである。以上のように算数レベルで考える場合、ゼロ除算は無意味または未定義となる[4]

ゼロ除算の未定義性を理解する別の方法として、減法の繰り返し適用という考え方がある[5]。すなわち、0になるまで被除数から除数を引き続けるのである。例えば96を8で割る場合、96-8-8-8-...=0となるまで8は12回引くことができるので、96÷8=12とする[6]。ゼロ除算で同様の例を考える。例えば卵が6個入っている籠から定期的に一定個数の卵を取り出して籠を空にするとする。このとき毎回0個ずつ取り出す、すなわち籠に手を入れるけれども1個も取り出さないという操作を考えると、この取り出す操作をどれだけ繰り返しても籠を空にすることはできない。つまり0で割る結果は未定義であるとする説明がある[4]
初期の試み

ブラフマグプタが著した『ブラーマ・スプタ・シッダーンタ』は、0を数として定義し、その演算結果も定義している著作としては最初期のものである[7]。しかし、ブラフマグプタによるゼロ除算の定義に従うと、代数的不合理が生じることを簡単に証明できる。ブラフマグプタによれば、次の通りである。.mw-parser-output .templatequote{overflow:hidden;margin:1em 0;padding:0 40px}.mw-parser-output .templatequote .templatequotecite{line-height:1.5em;text-align:left;padding-left:1.6em;margin-top:0}正であろうと負であろうと、ゼロで割ると、分母がゼロの分数になる。ゼロを割ると、割る数が正だろうと負だろうと、ゼロが分子にある分数によって表せ、分母は有限の量である……ゼロをゼロで割ってもゼロである—ブラフマグプタ、『ブラーマ・スプタ・シッダーンタ』、ロバート・カプラン、松浦俊輔 (訳)『ゼロの博物誌』[8]

830年マハーヴィーラはブラフマグプタの間違いを著書『ガニタ・サーラ・サングラハ』で「数はゼロで割っても変化しない」と訂正しようとしたが、これも失敗に終わった[7]

バースカラ2世は .mw-parser-output .frac{white-space:nowrap}.mw-parser-output .frac .num,.mw-parser-output .frac .den{font-size:80%;line-height:0;vertical-align:super}.mw-parser-output .frac .den{vertical-align:sub}.mw-parser-output .sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}n⁄0 = ∞ と定義することで問題を解決しようとした。この定義は一見正しいようにも見えるが、この定義に従うとパラドックスに陥る(後述の「ゼロ除算と極限」も参照)ため、結局これも失敗に終わった。このパラドックスは近年まで考察されなかった[9]
代数学的解釈

ゼロ除算を数学的に扱う自然な方法は、まず除算を他の算術操作で定義することで得られる。整数有理数実数複素数の一般的算術規則では、ゼロ除算は未定義である。の公理体系に従う数学的体系では、ゼロ除算は未定義のままとされなければならない。その理由は、除法乗法の逆演算として定義されているためである。つまり、a⁄b の値は、bx = a という方程式を x について解いたときに値が一意に定まる場合のみ存在する。さもなくば、値は未定義のままとされる。(ただし数学基礎論などでは全域的な関数を扱う議論が除法を含めても適用できるよう便宜的に a⁄0 = 0 と定義しておくことはある[10]。あるいは a ÷ 0 = a と定義しておくこともある[11]。)

b = 0 のとき、方程式 bx = a は 0x = a または単に 0 = a と書き換えられる。つまりこの場合、方程式 bx = a は a が 0 でないときには解がなく、a が 0 であれば任意の x が解となりうる。いずれにしても解は一意に定まらず、a⁄b は未定義となる。逆に、においては a⁄b は b がゼロでないとき常に一意に定まる。
ゼロ除算に基づく誤謬

ゼロ除算を代数学的記述に用いて、例えば以下のように 1 = 2 のような誤った証明を導くことができる。

以下を前提とする。 0 × 1 = 0 {\displaystyle 0\times 1=0\quad } 0 × 2 = 0 {\displaystyle 0\times 2=0\quad }

このとき、次が成り立つ。 0 × 1 = 0 × 2 {\displaystyle 0\times 1=0\times 2}

両辺をゼロ除算すると、次のようになる。 1 = 2 {\displaystyle 1=2\quad }

この誤謬は、暗黙のうちに 0/0=1 であるかのように扱っていることから生じる。

上の証明が間違いであることは多くの人が気づくと思われるが、これをもっと巧妙に表現すると間違いを分かりにくくできる。例えば、1 を x と y に置き換え、ゼロを x − y、2 を x + y で置き換える。すると上記の証明は次のようになる。

0 × 1 = 0 {\displaystyle 0\times 1=0\quad } のとき
( 0 ) × ( 1 ) = 0 {\displaystyle (0)\qquad \times (1)=0} ( x − y ) × ( x ) = ( x − y ) x = 0 {\displaystyle (x-y)\times (x)=(x-y)x=0} ( x − y ) x = x 2 − x y = 0 {\displaystyle (x-y)x=x^{2}-xy=0} …@また、xとyに1を代入すると x 2 − x y = ( 1 ) 2 − ( 1 × 1 ) = 1 − 1 = 0 {\displaystyle x^{2}-xy=(1)^{2}-(1\times 1)=1-1=0}

0 × 2 = 0 {\displaystyle 0\times 2=0\quad } のとき
( 0 ) × ( 2 ) = 0 {\displaystyle (0)\times (2)=0} ( x − y ) × ( x + y ) = ( x − y ) ( x + y ) = 0 {\displaystyle (x-y)\times (x+y)=(x-y)(x+y)=0} ( x − y ) ( x + y ) = x 2 − y 2 = 0 {\displaystyle (x-y)(x+y)=x^{2}-y^{2}=0} …Aまた、xとyに1を代入すると x 2 − y 2 = ( 1 ) 2 − ( 1 ) 2 = 0 {\displaystyle x^{2}-y^{2}=(1)^{2}-(1)^{2}=0} @とAの各左辺より、 ( x − y ) x = ( x − y ) ( x + y ) {\displaystyle (x-y)x=(x-y)(x+y)} 両辺を x − y で割ると次のようになる。 x = x + y {\displaystyle x=x+y} x = y = 1 であったからこれを代入すると、次のようになる。 1 = 2 {\displaystyle 1=2}
解析学的解釈
ゼロ除算と極限関数 y = 1/x のグラフ。x が 0 に近づくと、y の絶対値は無限大に近づく。

直観的に a/0 は a/b で 正数b を 0 に漸近させたときの極限を考えることで定義されるように見える。

a が正の数の場合、次のようになる。 lim b → 0 + a b = + ∞ {\displaystyle \lim _{b\to 0+}{\frac {a}{b}}=+\infty }

a が負の数の場合、次のようになる。 lim b → 0 + a b = − ∞ {\displaystyle \lim _{b\to 0+}{\frac {a}{b}}=-\infty }

したがって、a が正のとき a/0 を +∞、a が負のとき −∞ と定義できるように思われる。しかし、この定義には以下の2つの問題点があるため、こういう定義はできない。

第一に、正と負の無限大実数ではない。実数の範囲内で考えたい場合、この定義には意味がない。この定義を使いたければ、何らかの形で実数を拡張する必要がある。

第二に、右側から極限に漸近するのは恣意的である。左側から漸近して極限を求めた場合、a が正の場合に a⁄0 が −∞ となり、a が負の場合に +∞ となる。これを等式で表すと次のようになる。 + ∞ = 1 0 = 1 − 0 = − 1 0 = − ∞ {\displaystyle +\infty ={\frac {1}{0}}={\frac {1}{-0}}=-{\frac {1}{0}}=-\infty }

このように、+∞ と −∞ が等しいことになってしまい、これではあまり意味がない。これを意味のある拡張とするには、「符号のない無限大」という概念を導入するしかない。

実数に、正負の区別が有る、あるいは無い、無限大が含まれるように拡張したものが拡大実数である。アフィン拡大実数では区別が有り、射影拡大実数では区別が無い(無限遠点)。

物理学においてはブラックホールや宇宙の始まりを考察する際に質量/体積(密度)の体積が 0 となる特異点が発生するためゼロ除算による無限大発散の難問が生じている。この場合質量・体積は正であるため正の無限大への発散となる。

直接のゼロ除算以外では、三角関数の tan 90° などの計算においても、同様の問題が生じてしまう。

0/0 についても、極限 lim ( a , b ) → ( 0 , 0 ) a b {\displaystyle \lim _{(a,b)\to (0,0)}{\frac {a}{b}}}

は存在しないため、うまく定義できない。さらに一般に、x が 0 に漸近すると共に f(x) も g(x) も 0 に漸近するとして、極限 lim x → 0 f ( x ) g ( x ) {\displaystyle \lim _{x\to 0}{\frac {f(x)}{g(x)}}}

を考えても、これは任意の値に収束する可能性もあるし、収束しない可能性もある。したがって、この手法では 0⁄0 について意味のある定義は得られない。リーマン球面は、複素平面立体射影により球面に射影したものとして視覚化できる。
リーマン球面

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


リーマン球面」も参照


コンピュータにおけるゼロ除算SpeedCrunchという電卓ソフトでゼロ除算を実行したときの様子。エラーが表示されている。

ゼロ除算をしたときのコンピュータの挙動は整数演算の場合と浮動小数点演算の場合で異なる[13]


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:45 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef