-((-1)^(1/7))を何度か2乗してみる話
計算用ライブラリ
math.js という計算ライブラリがあります。今回はこれを使って検証してみます。
math.js の導入
- Node.js 等で動かしたいのであれば npm 等で導入できる。
- Webサイトで使いたいのであれば、
- jsファイルを入手して設置しても良いし、
- CDN のファイルを直接参照する方法もある。
今回は CDN を参照する形で導入した。(このブログ自体に)
math.js 導入後
math.ほげほげ() みたいな形の数学関数がいっぱい利用できる。詳しくは公式ドキュメントを参考のこと。
たとえば
math.pow(2, 8) → 結果: 256
みたいな感じ。
2乗の件のプログラム的実践
\[a = -(-1)^{1/7}\]
a = math.multiply(-1, math.pow(-1, math.fraction("1/7"))) console.log("a: " + a) console.log("magniture: " + a.abs()) // 絶対値 console.log("angle: " + a.arg()) // 偏角
出力結果
a: -0.9009688679024191 - 0.4338837391175581i magniture: 1 angle: -2.6927937030769655
ここで複素数が登場します。マイナス値を7乗根してるので。内部値が小数表記になってしまうのがちょっとオシイですね。
\[b = a^2\]
b = math.pow(a, 2) console.log("b: " + b) console.log("magniture: " + b.abs()) // 絶対値 console.log("angle: " + b.arg()) // 偏角
出力結果
b: 0.6234898018587334 + 0.7818314824680299i magniture: 1 angle: 0.8975979010256554
\[c = b^2\]
c = math.pow(b, 2) console.log("c: " + c) console.log("magniture: " + c.abs()) // 絶対値 console.log("angle: " + c.arg()) // 偏角
出力結果
c: -0.22252093395631478 + 0.9749279121818235i magniture: 1 angle: 1.7951958020513108
\[d = c^2\]
d = math.pow(c, 2) console.log("d: " + d) console.log("magniture: " + d.abs()) // 絶対値 console.log("angle: " + d.arg()) // 偏角
出力結果
d: -0.9009688679024188 - 0.4338837391175588i magniture: 1 angle: -2.692793703076965
d == a の検証
judge = math.equal(d, a) console.log(judge)
出力結果
true
なるほどたしかに一致しました。
図について
Canvasに直に書いてます。興味ある方はこの記事のHTMLソース見てみると良いです。
自分で試してみたい方はコンソールにて
本記事には math.js をインポート済みですので、Chrome であれば F12 キー等でデバッグ用のコンソールを開き、以下を実行してみてください。
console.log("----") a = math.multiply(-1, math.pow(-1, math.fraction("1/7"))) console.log("a: " + a) console.log("magniture: " + a.abs()) // 絶対値 console.log("angle: " + a.arg()) // 偏角 console.log("----") b = math.pow(a, 2) console.log("b: " + b) console.log("magniture: " + b.abs()) // 絶対値 console.log("angle: " + b.arg()) // 偏角 console.log("----") c = math.pow(b, 2) console.log("c: " + c) console.log("magniture: " + c.abs()) // 絶対値 console.log("angle: " + c.arg()) // 偏角 console.log("----") d = math.pow(c, 2) console.log("d: " + d) console.log("magniture: " + d.abs()) // 絶対値 console.log("angle: " + d.arg()) // 偏角 console.log("----") judge = math.equal(d, a) console.log(judge)
上に書いた内容と同じ結果が表示されるはずです。
もちろん本家math.jsのページのコンソールでも同じことができます。