LoginSignup
1
0

More than 3 years have passed since last update.

Pythonで有理数以外の数を扱う話

Posted at

はじめに

タイトルは嘘です。
「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で (ある程度) 有理数以外の数 (の近似値) を扱う方法をまとめてみました。

複素数とか今後扱う気はしませんが、
他はたまに使うような気がするので、覚えておこうと思います。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0