Pythonからはじめる数学入門
O'Reilly Japanで販売されている「Pythonからはじめる数学入門」を読み進めていく中で、特に気になったところなどをまとめていく。
https://www.oreilly.co.jp/books/9784873117683/
1章 数を扱う
分数を扱う
Pythonで分数を扱うために、fractionsモジュールが利用できる。
from fractions import Fraction
a = Fraction(1, 2) # Fraction(1, 2)
b = a + 1 + 1.5 # 3.0
Fraction(分子, 分母)の形で分数を利用できる。式の途中に浮動小数点があると、結果を浮動小数点で返す。
fractionsモジュールは有理数計算をサポートするもの。
複素数を扱う
Pythonで複素数を扱う場合、文字"j"または"J"を用いる。(電気工学の分野では、"i" or "I"は電流を表す記号として使っている。)
複素数1+2iは、1+2jと書く。
a = 1 + 2j
b = complex(3, 4) # (3+4j)
a + b # (4+6j)
a - b # (-2+2j)
a.real # 1 実部
a.imag # 2 虚部
c = a.conjugate() # (1-2j) 共役複素数
d = abs(a) # 2.23606797749979 複素数の大きさ
complex()関数を使って複素数を定義することができる。complex(x, y)など変数を代入して定義できる。
共役(conjugate)複素数は実部が同じで虚部の符号が逆になった複素数。conjugate()メソッドを使って得ることができる。
複素数の大きさ(magnitude)は、abs()関数で求めることができる。実数では絶対値を返すが、複素数に用いると大きさを返す。
cmathモジュールを使うことで複素数を扱う他の関数を利用できる。
from cmath import *
a = 1 + 1j
phase(a) # 0.7853981633974483 偏角を浮動小数点で返す。返り値は、[-π, π]の範囲。
polar(a) # (1.4142135623730951, 0.7853981633974483) 直交座標から極座標に変換できる。 (x, y) → (r, Θ)