Python NumPyのemath.sqrt()メソッドで複素数入力の平方根を計算する方法
入力値の平方根を計算するには、Python NumPyのemath.sqrt()メソッドを使用します。このメソッドは引数xの平方根を返します。xがスカラーであれば結果もスカラーとして返され、配列であれば配列として返されます。また、負の入力要素が含まれる場合には、自動的に複素数値が返されるのが特徴です。
通常のnp.sqrt()では負の数を渡すとNaNが返されますが、np.emath.sqrt()(np.scimath.sqrt()のエイリアス)を使えば、負の数や複素数に対しても正しく複素数の平方根を求められます。
手順
まず、必要なライブラリをインポートします。
import numpy as np
次に、complex()メソッドを使って複素数の入力値を明示的に作成します。ここでは実部が-9.0、虚部が0.0の複素数を定義します。
a = complex(-9.0, 0.0)
作成した複素数の値を表示して確認します。
print("複素数の値を表示...\n", a)入力値の平方根を計算するために、Python NumPyのemath.sqrt()メソッドを呼び出します。
print("\n結果...\n", np.emath.sqrt(a))コード例
import numpy as np
# complex()メソッドを使って複素数を明示的に作成
a = complex(-9.0, 0.0)
# 複素数の値を表示
print("複素数の値を表示...\n", a)
# emath.sqrt()メソッドで入力値の平方根を計算
# xがスカラーならスカラーを、配列なら配列を返す
print("\n結果...\n", np.emath.sqrt(a))実行結果
複素数の値を表示... (-9+0j) 結果... 3j
実行結果を見ると、-9の平方根として3j(純虚数)が返されていることがわかります。これは数学的にも正しい結果で、(3j)² = 9j² = -9 となるためです。このようにemath.sqrt()を使うことで、負の数を含む入力でもエラーやNaNにならずに複素数の平方根を安全に計算できます。
-
Pythonで平方根の整数部分を求める方法|組み込み関数を使わない二分探索アルゴリズム
はじめに本記事では、非負整数 n が与えられたとき、r * r = n を満たす数 r を求め、その結果を最も近い整数へ切り捨てる方法を解説します。重要なポイントは、組み込みの平方根関数(math.sqrt など)を使用せずに実装するという点です。例えば、入力が 1025 の場合、出力は 32 1025 だからです。解法のアプローチ:二分探索この問題は「二分探索(バイナリサーチ)」を使うことで効率的に解けます。探索範囲を半分ずつ絞り込んでいくことで、計算量は O(log n) に抑えられます。アルゴリズムの手順n <= 1 の場合は、そのまま n を返します(0 と 1 の平方根はそれぞ
-
Pythonで複素数の平方根を求める方法【cmathライブラリの使い方】
Pythonで複素数の平方根を求めるには? Pythonでは、cmathライブラリを使うことで複素数の平方根を簡単に求めることができます。cmathは「complex mathematics(複素数学)」の略で、複素数を扱うためのPython標準ライブラリです。 通常のmathモジュールは負の数の平方根を計算しようとするとエラー(ValueError)が発生しますが、cmathモジュールなら負の数や複素数に対しても正しく平方根を計算できます。そのため、複素数を含む数学的な処理を行う際にはcmathが便利です。 基本的な使い方 cmathモジュールからsqrt関数をインポートして使用します。以