Pythonによる数学計算の基本として、「平方根の演算」があります。
数値解析や機械学習で欠かせない、基本的な演算方法の一つです。
本記事では、そんなPython基礎となる平方根の演算について、詳しくご説明します。
平方根の演算
平方根(square root)とは、2乗(平方)すると元の値に等しくなる数のことです。
例えば、\(\sqrt{x}\)は\(x\)の平方根です。
ここで、\(x=-1\)の場合、2乗して\(-1\)になる実数は存在しませんので、虚数の「\(i\)」が使用されます。
\(i=\sqrt{-1}\)を使用して、実数と虚数を組み合わせた複素数「\(z=a+bi\)」も平方根で扱うことができます。
算術演算子 **0.5
算術演算子によって、平方根を計算してみます。
#input
X = 2**0.5
print("2の平方根:{}".format(X))
#output
2の平方根:1.4142135623730951
算術演算子により、平方根(0.5乗)を計算しました。
対象が負数の場合には、以下の結果になります。
#input
X = (-2)**0.5
print("-2の平方根:{}".format(X))
#output
-2の平方根:(8.659560562354934e-17+1.4142135623730951j)
結果の実数項は誤差ですが、虚数の項が上記結果と等しいことが分かるかと思います。
組み込み関数 pow()
Python組み込み関数のpow()を使用して、平方根を計算してみます。
#input
X = pow(3,0.5)
print("3の平方根:{}".format(X))
#output
3の平方根:1.7320508075688772
対象が負数の場合には、以下の結果になります。
#input
X = pow(-3,0.5)
print("-3の平方根:{}".format(X))
#output
-3の平方根:(1.0605752387249068e-16+1.7320508075688772j)
math.sqrt()
mathモジュールのmath.sqrt()関数を使用して、平方根を計算してみます。
この関数の引数には、負数や複素数は指定できません。
#input
from math import sqrt
X = sqrt(4)
print("4の平方根:{}".format(X))
#output
4の平方根:2.0
numpy.sqrt()
NumPyのnumpy.sqrt()を使用すると、配列型の平方根を計算することができます。
#input
import numpy as np
A = np.array([[ 4, 2,-3],
[ 3,-4,-2]])
X = np.sqrt(A)
print("配列\n",A,"\nの平方根:\n{}".format(X))
#output
配列
[[ 4 2 -3]
[ 3 -4 -2]]
の平方根:
[[2. 1.41421356 nan]
[1.73205081 nan nan]]
負数の平方根には、”nan”が出力されました。
以下のように配列内の1要素を複素数で表すと、負数の計算結果が出力されます。
#input
import numpy as np
A = np.array([[ 4+0j, 2,-3],
[ 3,-4,-2]])
X = np.sqrt(A)
print("配列\n",A,"\nの平方根:\n{}".format(X))
#output
配列
[[ 4.+0.j 2.+0.j -3.+0.j]
[ 3.+0.j -4.+0.j -2.+0.j]]
の平方根:
[[2. +0.j 1.41421356+0.j 0. +1.73205081j]
[1.73205081+0.j 0. +2.j 0. +1.41421356j]]
sympy.sqrt()
SymPyのsympy.sqrt()を使用すると、代数型の平方根を出力することができます。
#input
import sympy
#代数x,y,zを定義
sympy.var('x y z')
#x+y+zの平方根
X = sympy.sqrt(x+y+z)
print(X)
#output
sqrt(x + y + z)
sympy.root()
SymPyのsympy.root()を使用すると、引数\(n\)に対して、\(n\)乗根を出力することができます。
#input
import sympy
#代数x,y,zを定義
sympy.var('x y z')
#x+y+zの平方根
X = sympy.root(x+y+z,2)
print(X)
#output
sqrt(x + y + z)
まとめ
この記事では、Python基礎となる平方根の演算について、ご説明しました。
本記事を参考に、ぜひ様々な計算方法を使用してみてください。
参考
Python学習用おすすめ教材
Pythonの基本を学びたい方向け
統計学基礎を学びたい方向け
Pythonの統計解析を学びたい方向け
おすすめプログラミングスクール
Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。
私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。
現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。
無料体験ができますので、まずは試してみてください!