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

Python – scipy.linalg.tanm() 関数で行列のタンジェントを計算する方法

scipy.linalg.tanm() 関数とは

scipy.linalg パッケージに含まれる tanm() 関数は、入力された行列のタンジェント(正接)を計算するための関数です。内部では行列指数関数を求めるための expm ルーチンが利用されており、通常の要素ごとの三角関数計算ではなく、行列としてのタンジェントを厳密に求めることができます。

構文

scipy.linalg.tanm(x)

x には、タンジェントを求めたい入力配列または正方行列を指定します。戻り値として、x の行列タンジェントが返されます。

使用例1:基本的な計算

まずは、2×2 の正方行列に対して tanm() を適用する基本的な例を見てみましょう。

# 必要なライブラリをインポート
from scipy import linalg
import numpy as np

# 入力配列を定義
x = np.array([[69 , 12] , [94 , 28]])
print("Input array: \n", x)

# タンジェントを計算
a = linalg.tanm(x)

# 行列のタンジェントを表示
print("Tangent of X: \n", a)

実行結果

Input array:
 [[69 12]
 [94 28]]
Tangent of X:
 [[-0.15617321 0.02473695]
 [ 0.19377281 -0.24069113]]

このように、入力した行列 x に対して行列としてのタンジェントが計算され、同じ形状の行列として結果が返されていることがわかります。

使用例2:np.cbrt() と組み合わせた計算

次に、NumPy の np.cbrt()(立方根)を使って前処理した配列に対して、tanm() を適用する例を紹介します。

# 必要なライブラリをインポート
from scipy import linalg
import numpy as np

# 入力配列を定義(各要素の立方根を計算)
y = np.cbrt([[87 , 26] , [59 , 36]])
print("Input array:\n", y)

# タンジェントを計算
b = linalg.tanm(y)

# 行列のタンジェントを表示
print("Tangent of Y: \n", b)

実行結果

Input array:
 [[4.43104762 2.96249607]
 [3.89299642 3.30192725]]
Tangent of Y:
 [[1.1489018 0.51580364]
 [0.67781414 0.95230934]]

np.cbrt() によって各要素の立方根が求められ、その結果得られた行列に対して tanm() が適用されていることが確認できます。

まとめ

scipy.linalg.tanm() 関数を使うことで、正方行列のタンジェントを簡単に計算できます。スカラー値ではなく行列全体に対して三角関数的な演算を行いたい場合に非常に便利です。また、同様の行列関数として sinm() や cosm() なども SciPy には用意されており、これらを組み合わせることで、より高度な線形代数計算を実現できます。

  1. Pythonで双曲線正接(tanh)を計算する方法|NumPyのtanh()関数の使い方

    PythonのNumPyで双曲線正接(ハイパボリックタンジェント)を計算するには、numpy.tanh()メソッドを使用します。この関数は np.sinh(x)/np.cosh(x) または -1j * np.tan(1j*x) と等価であり、入力値に対応する双曲線正接の値を返します。スカラー値を渡した場合、結果もスカラーとして返されます。 numpy.tanh()の主なパラメータ 第1引数(x): 入力配列を指定します。 第2引数(out・任意): 計算結果を格納するndarrayを指定します。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合やNon

  2. Python – scipy.interpolate.interp1dで1次元補間を行う方法

    scipy.interpolateパッケージに含まれるinterp1d()関数は、1次元関数の補間(インターポレーション)を行うための機能です。xとyといった値の配列を受け取り、何らかの関数y = f(x)を近似したうえで、補間によって新しい点における値を求めることができます。データ points 間の値を滑らかに推定したい場合に非常に便利なツールです。構文scipy.interpolate.interp1d(x, y)ここで、xは実数値からなる1次元配列、yは実数値からなるN次元配列です。補間軸に沿ったyの長さは、xの長さと一致している必要があります。例1まず、次の例を見てみましょう。# 必