【可算直積可能な世界】三次方程式(cubic equation)から虚数(Imaginary Number)へ
「とりあえずコンピューターに計算させてみる」は数学嫌いを克服する上で最良の手段かもしれません。
統計言語R(with YACAS)による実行例
library(Ryacas)
yacas("Solve(x^3-2*x^2-x+2==0,x)")
Yacas vector:
[1] x == 1 x == -1 x == 2yacas("Solve(4*x^3-2*x^2-6*x+3==0,x)")
Yacas vector:
[1] x == 1/2 x == root(3/2, 2) x == -root(3/2, 2)
yacas("Solve(3*x^3+3*x^2+x+1==0,x)")
[1] x == -1 x == complex_cartesian(0, root(1/3, 2)) x == complex_cartesian(0, -root(1/3, 2))
まぁ、こんな「高校生にとっての難問(それどころか無理)」となる三次式の因数分解だってえげつないほどあっという間に解いてしまいます。いや、それどころか実はこの計算についてはさらなる秘密が隠されていたりして…
以下の因数分解の左辺は三次式だがそれが右辺では一次式三つに分解されており、これを使うと,三次方程式を一般的に解くことができる。
ただし,ωは1の3乗根。
と,の2次方程式とみて解の公式を使うと
これから
は大変きれいな因数分解で、右辺が見掛け上x,y,zの対称式でない点については以下の様に対処する。
結論的にいえば,二次方程式の重解の場合,「1つしかない」のが「解」であり 「同じものが2つある」のが「根」である.
異なる概念を混同しているのが今の高校教科書である.
「根」はrootから来ている言葉だ. 「根」という言葉は今の高校数学では「根号」とか「平方根」というところに残っているだけだ. しかし√という記号はもともとrootのrから来ているのだから, 毎日「根」は使っている.
「根」は「根っこ」であり「大地」である. こんなすばらしい言葉を高校数学から追放した現在の教科書の罪は深い。
根の公式というのは方程式の左辺を平方完成して移項し,平方根をとって,さらに移項して 未知数 x を求める方法を,一つの式にまとめたものである。
大切なことは,文字係数の四則演算と平方根をとるという操作で, 二次方程式の根が求まる,ということだ. だから,二次方程式の根が,係数の和差積商と根号で表される.これが根の公式だ.
n次方程式について,文字係数の四則演算とべき根をとるという操作で根が求まる 一般的な方法があれば,「解ける」といい,それをまとめたものが根の公式なのだ.
一般的にやろうとすると,最後は三つの実数解が得られるのにもかかわらず, 途中の計算では虚数が登場する.実数解になる場合は,yとzが共役な複素数になるわけだ。 だからもし虚数を認めないと,この一般論で実数の解が得られないことになる. イタリアでは虚数を用いることについての論争があったのだが,このようにして, 虚数の存在が人々に認識されるようになっていったのだ.
このように三次方程式が解けるようになったのは16世紀,イタリアのカルダノ(Girolamo Cardano 1501.9.24 - 1576.9.21)からである。
統計言語R(with YACAS)による実行例
library(Ryacas)
yacas("Solve(x^3+6*x+4==0,x)")
Yacas vector:
[1] x == (root(12, 2) - 2)^(1/3) - (root(12, 2) + 2)^(1/3)
[2] x == complex_cartesian(-(((root(12, 2) - 2)^(1/3) - (root(12, 2) + 2)^(1/3))/2), root(3/4, 2) * *1/2), -(root(3/4, 2) * ((root(12, 2) - 2)^(1/3) + (root(12, 2) + 2)^(1/3))))
より正確にはi^2=-1と定めたのは後続のラファエル・ボンベリ(Rafael Bombelli、1526年~1572年)だった様です。
で、こうした計算の延長線上に1の冪根(root of unity)理論が打ち立てられ、ガウスがそれが全て複素平面上の単位円の弧上に現れる事を証明したのです。
とどのつまり、これこそがこれまでこのサイトで正多角形を描くのに用いてきたアルゴリズムそのもの。まさしく コンピューター数理(Mathematical Computing)だったという次第なんですね。
*1:root(12, 2) - 2)^(1/3) + (root(12, 2) + 2)^(1/3)))
[3] x == complex_cartesian(-(((root(12, 2) - 2)^(1/3) - (root(12, 2) + 2)^(1/3