【理系】【文系】虚数iはおとぎの国の数字ではない② ーPythonを利用して考える複素数ー
今回の記事では、複素数をPythonを使って説明していきたいと思います。
※自然数eについては既知として話を進めていきます。ご了承ください。
また簡単なPythonのプログラムが途中出てきますが読めなくても大丈夫です。
複素数とベクトル
前回の記事では複素数とベクトルは平面座標における点を表すのにおいては同じであるが、複素数は点の原点Oを中心とする回転を表すことで真価を発揮すると書きました。前回はそこで終わってしまったのでその続きとなります。
オイラーの公式
点の回転についての話の前にオイラーの公式についてすこし触れます。
オイラーの公式とは以下の式で表されます。
eは自然数、iは虚数、θはラジアン度です。
ちなみにこのオイラーの公式は数学史上最も美しい式だと言われています。
たしかに美しい。。。
この式は自然数eをiθ乗するとx軸座標(cosθ)、y軸座標(isinθ)にきれいに分かれる所が数学の神秘とも言えそうです。
では本当にこの式は成り立つのか数値計算によって見ていきましょう。
(証明されているから成り立つだろうというのは無しで)
θ = π/4(デグリー度だと45°)について左辺と右辺別々に計算していきます。
import math
from math import pi, e
e** (1j * (pi/4) ) //左辺
//(0.7071067811865476+0.7071067811865475j)と出力される
math.cos(pi/4) + 1j*math.sin(pi/4) // 右辺
//(0.7071067811865476+0.7071067811865475j)と出力される
Pythonのコード上では虚数はjになっていることに注意してくだい。
左辺と右辺どちらも
0.7071067811865476 + 0.7071067811865475j
になり、実際にオイラーの公式が成り立つことが分かったと思います。
余談になります↓
数学を勉強するとどうしても文字式至上主義になりがちですが、工学系の学問では数値の扱いすなわち有効数字のが重要だったりします。
極形式
次は複素数には点を表す表現としてx軸、y軸の座標をそのまま実数と虚数を使う方法と、原点からの距離rとrがなす直線と実軸の角度θを使う極形式という方法が存在します。
それらには切っても切り離せない関係があります。
複素平面において(X、Y)に存在する点Aを
Z=X+ Yi と表記できることは前回書きました。
文字だと分かり辛いのでX=2、Y=5の場合つまり Z=2 + 5iについて考えていきましょう。
ではこの式を極形式に変換していきます。
まず原点からの距離rをPythonを使って求めてみます。
rは三平方の定理使います。Pythonではhypot関数を使い数値の平方根を求めることが可能です。
以下rを求める簡単なプログラムとなります。
import math
X = 2
Y = 5
r = math.hypot(X, Y)
print(r)
//r = 5.385164807134504が返される
Pythonのコードによりr = 5.385164807134504と求めることが出来ました。
続いては偏角θを求めます。Pythonではmath.atan2(Y、X)で偏角を求めます。数学的には、tanθ = Y/Xですのでtanθの逆関数arctanを使うことでθの値が求まります。つまりY/Xの値さえ既知ならプログラムや関数電卓を使って偏角θを求めることが出来ます。
以下は偏角θを計算するPythonのプログラムです。
import math
X, Y = 2, 5 //X,Yに数値代入
theta = math.atan2(Y, X)
print(theta)
// 1.1902899496825317と出力
degree = math.degrees(theta)
print(degree)
//68.19859051364818と出力
θ = 1.1902899496825317[rad] = 68.19859051364818°
ということが分かりました。
有効桁数を3とすれば極形式は以下の式になります。
Z = 2 + 5i = 5.39(cos(1.19) + isin(1.19))
また最初で触れたオイラーの公式を利用すれば
となります。オイラーの公式を利用することでかなり式がシンプルですっきりとしますよね。
Pythonでは数学関数が数多く用意されているので、公式ドキュメントを見ると面白いかもしれません。
結構長くなってしまったので今回はこれで終わりにします。
最後まで見て頂きありがとうございました!
ーーーーーーーーーーーーーーーーーーーーーー
Twitterもやってます→リンク
この記事が気に入ったらサポートをしてみませんか?