見出し画像

畳み込み

四則演算は小学生から習うが、それと同じくらい身近な演算に「畳み込み」と呼ばれる演算もある。畳み込みについて、具体的な例で定義しよう。

まず数列(a(0),a(1),a(2),・・・)を一つ用意し、これを係数にした次のような変数xの形式的べき級数f(x)を作ろう:

f(x) = a(0) + a(1)x + a(2)x^2 + ・・・

無限和になっているがここでは収束性は考えない。単に「形式的に」作っているだけでそのような対象を今考えている。そして、ここには加法(+)と乗法(・)が多項式の場合と同様にして定義されることを述べよう。

2つの数列a = (a(0),a(1),a(2),・・・)、b = (b(0),b(1),b(2),・・・)があるとしよう。これらに対する形式的べき級数をそれぞれf(x)、g(x)とする。f(x)とg(x)の加法および乗法を次のように定義する。

加法は、xの同じ次数同士は係数についての和をとることで新たな形式的べき級数を定める。すなわち加法を、

f(x) + g(x) = (a(0)+b(1)) + (a(1)+b(1))x + (a(2)+b(2))x^2 + ・・・

で定義する。

乗法は、多項式と多項式の積を展開をするような形式と同様で、

f(x)・g(x) = a(0)b(0) + {a(0)b(1) + a(1)b(0)}x + {a(0)b(2) + a(1)b(1) + a(2)b(0)}x^2 + ・・・

で定義する。

次に、この乗法の値から、各次数の係数を0次から順に取り出して得られる数列をc(0),c(1),c(2),・・・とおくと、第n項目はn次の係数だから

c(n) = a(0)b(n) + a(1)b(n-1) + ・・・ + a(n)b(0)

となる。この数列c(0),c(1),c(2),・・・はもとの2つの数列a,bから得られる。そこでc = a*bと書こう。

こうして得られた数列の2項演算を数列の畳み込み積、あるいは単に畳み込みとよぶ。もともとは英語でconvolutionと書かれていたものを日本語で「畳み込み」と訳された。添え字(数列の番号)の和が一定となるような組の積を取り、それらの和を取る操作であるが、この操作が畳み込んでいくという気分なのでしょうか。

ちなみに数列の畳み込みは結合法則を満たし、その単位元は数列(1,0,0,0,・・・)です。また、可逆元(ある数列との畳み込み積でその単位元になるような元)はa(0)が0でないような数列a = (a(0),a(1),a(2),・・・)となることもわかっています。

畳み込みは数列でなくても、いろいろな対象の中で自然に現れる。そこでもう少し代数的な立場から抽象度を上げて定義してみたいが、またの機会に書こうと思います。

良ければサポート頂けますととても助かります。数学に関してより本質への追究と普及のための活動費として使わさせて頂きます。