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モジュールには、多項式を扱うための便利なオブジェクトが多数用意されています。中でもPolynomialクラスは、加算・減算・乗算といった通常の算術演算をカプセル化しており、直感的に多項式演算を記述できるのが特徴です。
手順
まず、必要なライブラリをインポートします。
from numpy.polynomial import polynomial as P
次に、2つの多項式を宣言します。
p1 = (4,1,6) p2 = (2,5,3)
宣言した多項式を表示します。
print("Polynomial 1...\n",p1)
print("\nPolynomial 2...\n",p2)多項式同士を乗算するには、numpy.polynomial.polynomial.polymul()メソッドに2つの多項式を渡します。
mulRes = P.polymul(p1,p2)
print("\nResult (Multiply)...\n",mulRes)サンプルコード
from numpy.polynomial import polynomial as P
# 2つの多項式を宣言
p1 = (4,1,6)
p2 = (2,5,3)
# 多項式を表示
print("Polynomial 1...\n",p1)
print("\nPolynomial 2...\n",p2)
# polymul()メソッドを使って多項式を乗算
mulRes = P.polymul(p1,p2)
print("\nResult (Multiply)...\n",mulRes)実行結果
Polynomial 1... (4, 1, 6) Polynomial 2... (2, 5, 3) Result (Multiply)... [ 8. 22. 29. 33. 18.]
結果の解説
この例では、p1 = 4 + x + 6x²、p2 = 2 + 5x + 3x² という2つの多項式を乗算しています。得られた結果 [8, 22, 29, 33, 18] は、低次の項から順に係数を表しており、以下の多項式に対応します。
8 + 22x + 29x² + 33x³ + 18x⁴
このようにpolymul()メソッドを使えば、係数配列を渡すだけで多項式の乗算を簡単に計算できます。数値計算やデータフィッティングなどで多項式演算が必要な場面でぜひ活用してください。
-
Pythonで文字列sを別の文字列tに変換できるか判定する方法
2つの文字列 s と t が与えられ、t はすべて大文字であるとします。次の操作を繰り返すことで、s を t に変換できるかどうかを判定する問題を考えてみましょう。一部の小文字を大文字に変換する。すべての小文字を削除する。たとえば、入力が s = fanToM、t = TOM の場合、出力は True になります。o を O に変換し、残りの小文字をすべて削除すれば t と一致するためです。解法のアプローチこの問題は動的計画法(DP)を使って効率的に解けます。dp[i][j] を「s の先頭 i 文字を使って、t の先頭 j 文字を作れるかどうか」を表す真偽値として定義します。具体的な手順は以
-
Pythonで文字列を別の文字列に追加(連結)する2つの方法
Pythonにおいて「文字列を追加する」というのは、複数の文字列をつなぎ合わせて新しい文字列を作ること(連結)を意味します。テキスト解析など、さまざまな場面で活用される基本的な操作です。この記事では、ある文字列を別の文字列に追加するための代表的な2つの方法を、サンプルコードと実行結果とともに解説します。方法1:+= 演算子を使う+ 演算子は、数値に対して使う場合と同じように文字列にも使用できます。ただし、文字列の場合は数値の加算ではなく連結が行われる点が異なります。コード例s1 = What a beautiful s2 = flower print(与えられた文字列 s1 :, s1)