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

Pythonでラゲール級数同士の減算を行う方法:numpy.polynomial.laguerre.lagsub()の使い方

PythonのNumPyライブラリには、多項式演算を支援する便利なモジュールが多数用意されています。その中でも numpy.polynomial.laguerre モジュールは、ラゲール多項式(Laguerre polynomial)を扱うための機能を提供しており、lagsub() メソッドを使うことで、2つのラゲール級数の差(減算)を簡単に求められます。

lagsub() メソッドは、c1 − c2 という2つのラゲール級数の差を表す係数配列を返します。係数の並び順は低次項から高次項へと昇順に並べられます。たとえば [1, 2, 3] という配列は、P_0 + 2*P_1 + 3*P_2 という級数を意味します。引数 c1 と c2 には、低次から高次の順に並べられたラゲール級数の係数を持つ1次元配列を指定します。

ラゲール級数とは?

ラゲール多項式は、微分方程式や量子力学(水素原子の波動関数など)で登場する直交多項式の一種です。NumPyでは、これらの多項式を係数列として表現し、加減乗除や微分・積分などの演算を手軽に行えます。lagsub() を使えば、複雑な計算ロジックを自前で実装することなく、級数同士の減算をわずか1行で処理できるのが大きなメリットです。

実行手順

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

import numpy as np
from numpy.polynomial import laguerre as L

次に、ラゲール級数の係数を格納した1次元配列を作成します。

c1 = np.array([1,2,3])
c2 = np.array([3,2,1])

作成した係数配列を表示して内容を確認します。

print("Array1...\n",c1)
print("\nArray2...\n",c2)

配列のデータ型(dtype)を表示します。

print("\nArray1 datatype...\n",c1.dtype)
print("\nArray2 datatype...\n",c2.dtype)

両配列の次元数(ndim)をチェックします。

print("\nDimensions of Array1...\n",c1.ndim)
print("\nDimensions of Array2...\n",c2.ndim)

両配列の形状(shape)をチェックします。

print("\nShape of Array1...\n",c1.shape)
print("\nShape of Array2...\n",c2.shape)

最後に、polynomial.laguerre.lagsub() メソッドを使って、一方のラゲール級数からもう一方を減算します。このメソッドは、差を表すラゲール級数の係数配列を返します。

print("\nResult (difference)....\n",L.lagsub(c1, c2))

完全なコード例

import numpy as np
from numpy.polynomial import laguerre as L

# ラゲール級数の係数を持つ1次元配列を作成
c1 = np.array([1,2,3])
c2 = np.array([3,2,1])

# 係数配列を表示
print("Array1...\n",c1)
print("\nArray2...\n",c2)

# データ型を表示
print("\nArray1 datatype...\n",c1.dtype)
print("\nArray2 datatype...\n",c2.dtype)

# 次元数を確認
print("\nDimensions of Array1...\n",c1.ndim)
print("\nDimensions of Array2...\n",c2.ndim)

# 形状を確認
print("\nShape of Array1...\n",c1.shape)
print("\nShape of Array2...\n",c2.shape)

# lagsub() メソッドでラゲール級数の減算を実行
print("\nResult (difference)....\n",L.lagsub(c1, c2))

出力結果

Array1...
    [1 2 3]

Array2...
    [3 2 1]

Array1 datatype...
int64

Array2 datatype...
int64

Dimensions of Array1...
1

Dimensions of Array2...
1

Shape of Array1...
(3,)

Shape of Array2...
(3,)

Result (difference)....
    [-2. 0. 2.]

ポイント解説

入力配列は整数型(int64)ですが、出力結果は [-2. 0. 2.] のように浮動小数点型になっている点に注目してください。これは、lagsub() が内部で浮動小数点演算を行う仕様のためです。また、減算の結果として係数の符号が反転したり、次数が変わる場合があるため、得られた係数配列をそのまま後続の計算に使う場合は、データ型と形状を事前に確認しておくと安全です。

  1. Pythonでset()とnext()を使って、あるリストの要素が別のリスト内で最初に出現する値を見つける方法

    はじめにPythonプログラミングでは、あるリストの要素が別のリスト内で最初に出現する箇所を見つけたいケースがよくあります。このような場合、「set()」関数と「next()」関数を組み合わせることで、簡潔かつ効率的に実装できます。本記事では、サンプルコードと実行結果をもとに、その仕組みをわかりやすく解説します。サンプルコード以下に具体的な実装例を示します。my_list_1 = [23, 64, 34, 77, 89, 9, 21] my_list_2 = [64, 10, 18, 11, 0, 21] print(The first list is :) print(my_list_1)

  2. Pythonでファイルを別のフォルダにコピーする方法|shutilモジュールの使い方を解説

    Pythonでは標準ライブラリのshutilモジュールを使うことで、ファイルはもちろん、フォルダ全体も簡単にコピーできます。複数のファイルを一度にコピーしたい場合は、コピー対象となるファイル名をリストにまとめておき、forループで順番に処理するのが基本的なやり方です。shutil.copy()の基本的な使い方shutil.copy(source, destination)を呼び出すと、sourceパスにあるファイルが、destinationパスで指定したフォルダへコピーされます。sourceとdestinationはどちらも文字列で指定します。destinationにフォルダのパスを指定した場