5.1 Introduction

An Example: \(f(t) = e^{-t}\) 일 때

\[ \int_{0}^{\infty} f(t) t^p dt = \int_{0}^{\infty} e^{-t}t^{p}dt = F(p) = p! = \Gamma (p + 1) \]

Gamma 함수는 정의하는 방법도 여러가지이고, 특이한 성질을 많이 가지고 있습니다. 각자 최대한 많이 찾아보세요.

General Definition of Integral Transformation

\[ F(p) = \int_{-\infty}^{+\infty} K(p,t)f(t)dt \]

Laplace Transformation

\[ \mathcal{L} \left( f(t) \right) = \int_{0}^{\infty} e^{-pt} f(t) dt = F(p) \]

Fourier Transformation

\[ \mathcal{F} \left( f(t) \right) = \int_{-\infty}^{+\infty} e^{-i \omega t} f(t) dt \]

Convolution

\[ g \ast h = \int_{0}^{t} g(t - \tau )h( \tau ) d \tau \]

Relationthip of Convolution and Laplace Transformation

\[ g \ast h = L^{-1} \left( L(g) \cdot L(h) \right) \]

See also similar relationship between Fourier transformation and Convolution

Demonstration of the relationships between Fourier transformation and convolution

conv0
## function (x, y) 
## {
##     fft(fft(x) * fft(y), TRUE)/length(x)
## }
## <bytecode: 0x000001e2b0254f78>
## <environment: namespace:math>
deconv0
## function (z, x) 
## {
##     fft(fft(z)/fft(x), TRUE)/length(z)
## }
## <bytecode: 0x000001e2b001ebd8>
## <environment: namespace:math>
conv
## function (x, y) 
## {
##     len.x = length(x)
##     len.y = length(y)
##     len.max = max(len.x, len.y)
##     if (len.x < len.max) {
##         x = c(x, rep(0, 2 * len.max - len.x))
##         y = c(y, rep(0, len.max))
##     }
##     else {
##         x = c(x, rep(0, len.max))
##         y = c(y, rep(0, 2 * len.max - len.y))
##     }
##     c = Re(fft(fft(x) * fft(y), TRUE)/(2 * len.max))
##     return(c[1:len.max])
## }
## <bytecode: 0x000001e2b00708e8>
## <environment: namespace:math>
deconv
## function (z, x) 
## {
##     len.z = length(z)
##     len.x = length(x)
##     if (len.z < len.x) {
##         cat("Ouput Observation(z) should be longer than input or disposition (x)")
##         return()
##     }
##     else {
##         z = c(z, rep(0, len.z))
##         x = c(x, rep(0, 2 * len.z - len.x))
##     }
##     y = Re(fft(fft(z)/fft(x), TRUE)/(2 * len.z))
##     return(y[1:len.z])
## }
## <bytecode: 0x000001e2ac612600>
## <environment: namespace:math>
dc
## function (t1, c1, t2, c2) 
## {
##     d1 = data.frame(cbind(t1, c1))
##     d2 = data.frame(cbind(t2, c2))
##     d1.l = loess(c1 ~ t1, d1)
##     d2.l = loess(c2 ~ t2, d2)
##     tmax = min(max(t1), max(t2))
##     t.p = seq(0, tmax, 0.1)
##     d1.p = predict(d1.l, t.p)
##     d2.p = predict(d2.l, t.p)
##     a.p = deconv(d1.p, d2.p)
##     return(cbind(t.p, a.p))
## }
## <bytecode: 0x000001e2ac45bec0>
## <environment: namespace:math>

Explore basic and internal R functions: fft() and convolve()