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()