はじめに
タイトルは嘘です。
「Pythonで (ある程度) 有理数以外の数 (の近似値) を扱う」というのが正しいタイトルです。
前々回、前回と有理数を扱う話をしたので、
今回は有理数以外の数、無理数と虚数(複素数)を扱う方法を調べてみました。
無理数とは、整数比で表すことが出来ない数のことを指します。
つまり
\frac{a}{b}\scriptsize\qquad(a,bは整数、bは0でない数)
と表せます。
もっと言えば平方根やπ等のことです。
平方根
調べた中だと一番よくお世話になる関数です。
import numpy as np
import math
np.sqrt(2)
# 1.4142135623730951
math.sqrt(2)
# 1.4142135623730951
mathのほうが計算速度が速いようです。
参考サイト様
複素数
複素数は専用の型が標準で用意されているようです。
a = 1j
print(a)
# 1j
print(type(a))
# <class 'complex'>
数値j で複素数の虚部を表します。
なぜか i ではなく j
複素数の計算
a = 1 + 2j
b = 3 - 4j
print(a + b)
# (4-2j)
print(a * b)
# (11+2j)
規定値以下の虚部を無視する
虚部がごく小さい場合、虚部をはずしてくれるモジュールです。
import numpy as np
print(np.real_if_close([2.1 + 4e-14j], tol=1000))
# [2.1]
マシンイプシロン * tol(第二引数)以下の虚部を無視した数(ndarray型)を返します。
円周率
mathで用意されている円周率は小数点以下15桁です。
from math import pi
print(pi)
# 3.141592653589793
type(pi)
# float
ネイピア数
円周率と同じく、mathで用意されているネイピア数は小数点以下15桁でした。
from math import e
print(e)
# 2.718281828459045
type(e)
# float
終わりに
Pythonで (ある程度) 有理数以外の数 (の近似値) を扱う方法をまとめてみました。
複素数とか今後扱う気はしませんが、
他はたまに使うような気がするので、覚えておこうと思います。