Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで複素数値入力の自然対数を計算する方法

自然対数は指数関数の逆関数であり、log(exp(x)) = x という関係が成り立ちます。自然対数とは、e(ネイピア数)を底とする対数のことです。NumPyの np.log() メソッドは、入力xの自然対数を要素ごとに計算して返します。xがスカラーの場合はスカラー値を返します。

np.log() の主なパラメータ

第1パラメータは入力値で、配列状のオブジェクト(array-like)を指定します。

第2パラメータの out は、計算結果を格納する場所です。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合や None を指定した場合は、新しく確保された配列が返されます。タプルを指定することもできますが、その場合はキーワード引数として渡す必要があり、長さは出力の数と一致していなければなりません。

複素数における対数の性質

対数は多価関数です。つまり、各xに対して exp(z) = x を満たすzは無限に存在します。NumPyの慣例では、虚部が [-π, π] の範囲に収まるzを返します。

  • 実数値入力の場合:logは常に実数の出力を返します。実数または無限大として表現できない値に対しては nan を返し、浮動小数点の無効演算エラーフラグを設定します。
  • 複素数値入力の場合:logは分岐切断(branch cut)[-inf, 0] を持つ複素解析関数となり、その境界上では上側から連続になります。

また、log は浮動小数点の負のゼロを微小な負の数として扱い、C99標準に準拠した挙動を示します。

実装の手順

まず、必要なライブラリをインポートします。

import numpy as np

array() メソッドを使ってnumpy配列を作成します。ここでは複素数を含む配列を定義します。

arr = np.array([0+1.j, 1, 2+0.j])

作成した配列を表示します。

print("Our Array...\n",arr)

配列の次元数を確認します。

print("\nDimensions of our Array...\n",arr.ndim)

配列のデータ型を取得します。

print("\nDatatype of our Array object...\n",arr.dtype)

配列の形状を取得します。

print("\nShape of our Array...\n",arr.shape)

最後に、自然対数を計算します。np.log() は入力配列の各要素に対して自然対数を求めます。

print("\nResult (log)...\n",np.log(arr))

完全なサンプルコード

import numpy as np

# array() メソッドでnumpy配列を作成
arr = np.array([0+1.j, 1, 2+0.j])

# 配列を表示
print("Our Array...\n",arr)

# 次元数を確認
print("\nDimensions of our Array...\n",arr.ndim)

# データ型を取得
print("\nDatatype of our Array object...\n",arr.dtype)

# 形状を取得
print("\nShape of our Array...\n",arr.shape)

# 自然対数を計算(log(exp(x)) = x が成り立つ指数関数の逆関数)
print("\nResult (log)...\n",np.log(arr))

実行結果

Our Array...
[0.+1.j 1.+0.j 2.+0.j]

Dimensions of our Array...
1

Datatype of our Array object...
complex128

Shape of our Array...
(3,)

Result (log)...
[0. +1.57079633j 0. +0.j 0.69314718+0.j ]

このように、複素数 0+1j の自然対数は純虚数 1.57079633j(π/2)、実数 1 の自然対数は 02 の自然対数は約 0.69314718 と正しく計算されていることがわかります。

  1. 【Python】NumPyで自然対数(log)を計算する方法

    自然対数(log)は指数関数の逆関数であり、log(exp(x)) = x という関係が成り立ちます。自然対数とは、ネイピア数 e を底とする対数のことです。NumPy の np.log() メソッドは、入力 x の自然対数を要素ごとに計算して返します。x がスカラーであれば、戻り値もスカラーになります。 主なパラメータ 第1引数(x): 入力値。配列様(array-like)オブジェクトを指定します。 第2引数(out): 結果を格納する場所。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合や None を指定した場合は、新たに確保された配列が返さ

  2. Python Pandas – 入力ラベルからスライスインデクサーを計算する方法

    入力ラベルのスライスインデクサーを計算する 入力ラベルに基づいてスライスインデクサーを計算するには、index.slice_indexer() メソッドを使用します。このメソッドは、指定した開始ラベルと終了ラベルから、実際の位置ベースのスライスオブジェクトを計算して返します。まず、必要なライブラリをインポートしましょう。 import pandas as pd Pandasインデックスオブジェクトの作成 次に、Pandas のインデックスオブジェクトを作成します。ここでは、文字 p から z までの11個の要素を持つインデックスを作成します。 index = pd.Index(list(pqr