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

Python NumPyのlegmul()メソッドでルジャンドル級数を乗算する方法


2つのルジャンドル級数を乗算するには、Python NumPyの numpy.polynomial.legendre.legmul() メソッドを使用します。このメソッドは、2つのルジャンドル級数の積(c1 * c2)を表す新しいルジャンドル級数の配列を返します。

引数に渡す係数は、低次項から高次項の順に並べます。たとえば [1, 2, 3] は「P_0 + 2·P_1 + 3·P_2」という級数を表します。パラメータ c1 および c2 は、低次から高次の順に並べられたルジャンドル級数の係数を格納した1次元配列です。

ルジャンドル級数の乗算手順

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

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

次に、ルジャンドル級数の係数を持つ1次元配列を作成します。

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

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

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)

両方の配列の形状(shape)を確認します。

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

ルジャンドル級数を乗算するには、polynomial.legendre.legmul() メソッドを使用します。

print("\nResult (product)....\n",L.legmul(c1, c2))

完全なコード例

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

# ルジャンドル級数の係数を持つ1次元配列を作成
c1 = np.array([2,3,4])
c2 = np.array([4,3,2])

# 係数配列を表示
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)

# legmul()メソッドで2つのルジャンドル級数を乗算
# 積を表すルジャンドル級数の配列が返される
print("\nResult (product)....\n",L.legmul(c1, c2))

出力結果

Array1...
    [2 3 4]

Array2...
    [4 3 2]

Array1 datatype...
int64

Array2 datatype...
int64

Dimensions of Array1...
1

Dimensions of Array2...
1

Shape of Array1...
(3,)

Shape of Array2...
(3,)

Result (product)....
    [12.6 25.2 28.28571429 10.8 4.11428571]

結果の解説

実行結果を見ると、legmul() メソッドが2つの3項のルジャンドル級数の積を、5つの係数を持つ新しいルジャンドル級数として返していることがわかります。積の次数は入力級数の次数の和になるため、結果の配列長は「c1の長さ + c2の長さ − 1」= 5 となります。

また、入力は整数係数(int64)であるにもかかわらず、戻り値の係数が浮動小数点数になっている点にも注意してください。これは、ルジェンドル多項式の直交性を利用した内部計算の過程で除算が行われるためです。


  1. Pythonで多項式を乗算する方法|numpy.polynomial.polymul()の使い方

    Pythonで多項式同士を乗算するには、numpy.polynomial.polynomial.polymul()メソッドを使用します。このメソッドは、2つの多項式c1とc2の積(乗算結果)を返します。引数には、低次の項から高次の項へと並べた係数のシーケンスを指定します。例えば、[1,2,3]は「1 + 2*x + 3*x**2」という多項式を表します。戻り値は、乗算結果の多項式を表す係数配列です。パラメータc1およびc2は、「標準」基底における多項式を表す1次元の係数配列で、低次の項から高次の項の順に並べられている必要があります。なお、numpy.polynomial.polynomialモ

  2. 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)