畳み込み/合成積(convolution)

「二つの関数」から「一つの関数」を作る演算 関数 g を平行移動しながら関数 f に重ね足し合わせる二項演算

https://ja.wikipedia.org/wiki/%E7%95%B3%E3%81%BF%E8%BE%BC%E3%81%BF

Python 3.8.0 (default, Oct 23 2019, 18:51:26)
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import functools
>>> lst = [1, -3, 5, -7, 9]
>>> g = lambda x,y:x+y
>>> res = functools.reduce(g, lst)
>>> print(res)
5

関数定義

連続型(畳み込み積分)

$$ h(x)=\displaystyle\int_{-\infty}^{\infty}f(t)g(x-t)dt $$

離散型(畳み込み和)

$$ c_n=\displaystyle\sum_{t=-\infty}^{\infty}a_tb_{n-t} $$

REFERENCES:

  • http://www.nslabs.jp/python-higher-order-functions.rhtml