In applied mathematics, discretization is the process of transferring continuous functions, models, variables, and equations into discrete counterparts. This process is usually carried out as a first step toward making them suitable for numerical evaluation and implementation on digital computers. Dichotomization is the special case of discretization in which the number of discrete classes is 2, which can approximate a continuous variable as a binary variable (creating a dichotomy for modeling purposes, as in binary classification).
Discretization is also related to discrete mathematics, and is an important component of granular computing. In this context, discretization may also refer to modification of variable or category granularity, as when multiple discrete variables are aggregated or multiple discrete categories fused.
Whenever continuous data is discretized, there is always some amount of discretization error. The goal is to reduce the amount to a level considered negligible for the modeling purposes at hand.
Template:Anchor The terms discretization and quantization often have the same denotation but not always identical connotations. (Specifically, the two terms share a semantic field.) The same is true of discretization error and quantization error.
Mathematical methods relating to discretization include the Euler–Maruyama method and the zero-order hold.
Discretization of linear state space models Template:AnchorEdit
Discretization is also concerned with the transformation of continuous differential equations into discrete difference equations, suitable for numerical computing.
The following continuous-time state space model
<math display=block>\begin{align}
\dot{\mathbf{x}}(t) &= \mathbf{Ax}(t) + \mathbf{Bu}(t) + \mathbf{w}(t) \\[2pt] \mathbf{y}(t) &= \mathbf{Cx}(t) + \mathbf{Du}(t) + \mathbf{v}(t)
\end{align}</math>
where Template:Mvar and Template:Mvar are continuous zero-mean white noise sources with power spectral densities
<math display=block>\begin{align}
\mathbf{w}(t) &\sim N(0,\mathbf Q) \\[2pt] \mathbf{v}(t) &\sim N(0,\mathbf R)
\end{align}</math>
can be discretized, assuming zero-order hold for the input Template:Mvar and continuous integration for the noise Template:Mvar, to
<math display=block>\begin{align}
\mathbf{x}[k+1] &= \mathbf{A_d x}[k] + \mathbf{B_d u}[k] + \mathbf{w}[k] \\[2pt] \mathbf{y}[k] &= \mathbf{C_d x}[k] + \mathbf{D_d u}[k] + \mathbf{v}[k]
\end{align}</math>
with covariances
<math display=block>\begin{align}
\mathbf{w}[k] &\sim N(0,\mathbf{Q_d}) \\[2pt] \mathbf{v}[k] &\sim N(0,\mathbf{R_d})
\end{align}</math>
where
<math display=block>\begin{align} \mathbf{A_d} &= e^{\mathbf A T} = \mathcal{L}^{-1} \Bigl\{(s\mathbf I - \mathbf A)^{-1} \Bigr\}_{t=T} \\[4pt]
\mathbf{B_d} &= \left( \int_{\tau=0}^{T}e^{\mathbf A \tau}d\tau \right) \mathbf B \\[4pt] \mathbf{C_d} &= \mathbf C \\[8pt] \mathbf{D_d} &= \mathbf D \\[2pt] \mathbf{Q_d} &= \int_{\tau=0}^{T} e^{\mathbf A \tau} \mathbf Q e^{\mathbf A^\top \tau} d\tau \\[2pt] \mathbf{R_d} &= \mathbf R \frac{1}{T}
\end{align}</math>
and Template:Mvar is the sample time. If Template:Math is nonsingular, <math>\mathbf{B_d} = \mathbf A^{-1}(\mathbf{A_d} - \mathbf{I})\mathbf B.</math>
The equation for the discretized measurement noise is a consequence of the continuous measurement noise being defined with a power spectral density.<ref>Template:Cite book</ref>
A clever trick to compute Template:Math and Template:Math in one step is by utilizing the following property:<ref>Raymond DeCarlo: Linear Systems: A State Variable Approach with Numerical Implementation, Prentice Hall, NJ, 1989</ref>Template:Rp
<math display=block>
e^{\begin{bmatrix} \mathbf{A} & \mathbf{B} \\ \mathbf{0} & \mathbf{0} \end{bmatrix} T} = \begin{bmatrix} \mathbf{A_d} & \mathbf{B_d} \\ \mathbf{0} & \mathbf{I} \end{bmatrix}
</math>
Where Template:Math and Template:Math are the discretized state-space matrices.
Discretization of process noiseEdit
Numerical evaluation of Template:Math is a bit trickier due to the matrix exponential integral. It can, however, be computed by first constructing a matrix, and computing the exponential of it<ref>Charles Van Loan: Computing integrals involving the matrix exponential, IEEE Transactions on Automatic Control. 23 (3): 395–404, 1978</ref> <math display=block>\begin{align}
\mathbf{F} &= \begin{bmatrix} -\mathbf{A} & \mathbf{Q} \\ \mathbf{0} & \mathbf{A}^\top \end{bmatrix} T \\[2pt] \mathbf{G} &= e^\mathbf{F} = \begin{bmatrix} \dots & \mathbf{A_d}^{-1}\mathbf{Q_d} \\ \mathbf{0} & \mathbf{A_d}^\top \end{bmatrix}
\end{align}</math> The discretized process noise is then evaluated by multiplying the transpose of the lower-right partition of Template:Math with the upper-right partition of Template:Math: <math display=block>\mathbf{Q_d} = (\mathbf{A_d}^\top)^\top (\mathbf{A_d}^{-1}\mathbf{Q_d}) = \mathbf{A_d} (\mathbf{A_d}^{-1}\mathbf{Q_d}). </math>
DerivationEdit
Starting with the continuous model <math display=block>\mathbf{\dot{x}}(t) = \mathbf{Ax}(t) + \mathbf{Bu}(t)</math> we know that the matrix exponential is <math display=block>\frac{d}{dt}e^{\mathbf{A}t} = \mathbf{A}e^{\mathbf{A}t} = e^{\mathbf{A}t} \mathbf A</math> and by premultiplying the model we get <math display=block>e^{-\mathbf{A}t} \mathbf{\dot{x}}(t) = e^{-\mathbf{A}t} \mathbf{Ax}(t) + e^{-\mathbf{A}t} \mathbf{Bu}(t)</math> which we recognize as <math display=block>\frac{d}{dt}\Bigl[e^{-\mathbf{A}t}\mathbf x(t) \Bigr] = e^{-\mathbf{A}t} \mathbf{Bu}(t)</math> and by integrating, <math display=block>\begin{align}
e^{-\mathbf{A}t}\mathbf{x}(t) - e^0\mathbf{x}(0) &= \int_0^t e^{-\mathbf{A}\tau} \mathbf{Bu}(\tau) d\tau \\[2pt] \mathbf{x}(t) &= e^{\mathbf{A}t}\mathbf{x}(0) + \int_0^t e^{\mathbf{A}(t-\tau)} \mathbf{Bu}(\tau) d\tau
\end{align}</math> which is an analytical solution to the continuous model.
Now we want to discretise the above expression. We assume that Template:Mvar is constant during each timestep. <math display=block>\begin{align}
\mathbf x[k] &\, \stackrel{\mathrm{def}}{=}\ \mathbf x(kT) \\[6pt] \mathbf x[k] &= e^{\mathbf{A}kT}\mathbf x(0) + \int_0^{kT} e^{\mathbf A(kT-\tau)} \mathbf{Bu}(\tau) d\tau \\[4pt] \mathbf x[k+1] &= e^{\mathbf A(k+1)T}\mathbf x(0) + \int_0^{(k+1)T} e^{\mathbf A[(k+1)T-\tau]} \mathbf{Bu}(\tau) d \tau \\[2pt] \mathbf x[k+1] &= e^{\mathbf{A}T} \left[ e^{\mathbf{A}kT}\mathbf x(0) + \int_0^{kT} e^{\mathbf A(kT-\tau)} \mathbf{Bu}(\tau) d \tau \right]+ \int_{kT}^{(k+1)T} e^{\mathbf A(kT+T-\tau)} \mathbf B\mathbf u(\tau) d\tau
\end{align}</math> We recognize the bracketed expression as <math>\mathbf x[k]</math>, and the second term can be simplified by substituting with the function <math>v(\tau) = kT + T - \tau</math>. Note that <math>d\tau=-dv</math>. We also assume that Template:Math is constant during the integral, which in turn yields
<math display=block>\begin{align}
\mathbf x[k+1] &= e^{\mathbf{A}T}\mathbf x[k] - \left( \int_{v(kT)}^{v((k+1)T)} e^{\mathbf{A}v} dv \right) \mathbf{Bu}[k] \\[2pt] &= e^{\mathbf{A}T}\mathbf x[k] - \left( \int_T^0 e^{\mathbf{A}v} dv \right) \mathbf{Bu}[k] \\[2pt] &= e^{\mathbf{A}T}\mathbf x[k] + \left( \int_0^T e^{\mathbf{A}v} dv \right) \mathbf{Bu}[k] \\[4pt] &= e^{\mathbf{A}T}\mathbf x[k] + \mathbf A^{-1}\left(e^{\mathbf{A}T} - \mathbf I \right) \mathbf{Bu}[k]
\end{align}</math>
which is an exact solution to the discretization problem.
When Template:Math is singular, the latter expression can still be used by replacing <math> e^{\mathbf{A}T} </math> by its Taylor expansion, <math display=block> e^{\mathbf{A}T} = \sum_{k=0}^{\infty} \frac{1}{k!} (\mathbf{A}T)^k .</math> This yields <math display=block>\begin{align}
\mathbf x[k+1] &= e^{\mathbf{A}T}\mathbf x[k] + \left( \int_0^T e^{\mathbf{A}v} dv \right) \mathbf{Bu}[k] \\[2pt] &= \left(\sum_{k=0}^{\infty} \frac{1}{k!} (\mathbf{A}T)^k\right) \mathbf x[k] + \left(\sum_{k=1}^{\infty} \frac{1}{k!} \mathbf{A}^{k-1} T^k\right) \mathbf{Bu}[k],
\end{align}</math> which is the form used in practice.
ApproximationsEdit
Exact discretization may sometimes be intractable due to the heavy matrix exponential and integral operations involved. It is much easier to calculate an approximate discrete model, based on that for small timesteps <math>e^{\mathbf{A}T} \approx \mathbf I + \mathbf A T</math>. The approximate solution then becomes: <math display=block>\mathbf x[k+1] \approx (\mathbf I + \mathbf{A}T) \mathbf x[k] + T \mathbf{Bu}[k] </math>
This is also known as the Euler method, which is also known as the forward Euler method. Other possible approximations are <math>e^{\mathbf{A}T} \approx (\mathbf I - \mathbf{A}T)^{-1}</math>, otherwise known as the backward Euler method and <math>e^{\mathbf{A}T} \approx (\mathbf I +\tfrac{1}{2} \mathbf{A}T) (\mathbf I - \tfrac{1}{2} \mathbf{A}T)^{-1}</math>, which is known as the bilinear transform, or Tustin transform. Each of these approximations has different stability properties. The bilinear transform preserves the instability of the continuous-time system.
Discretization of continuous featuresEdit
{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}} In statistics and machine learning, discretization refers to the process of converting continuous features or variables to discretized or nominal features. This can be useful when creating probability mass functions.
Discretization of smooth functionsEdit
{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}} In generalized functions theory, discretization arises as a particular case of the Convolution Theorem on tempered distributions
- <math>\mathcal{F}\{f*\operatorname{III}\} = \mathcal{F}\{f\} \cdot \operatorname{III}</math>
- <math>\mathcal{F}\{\alpha \cdot \operatorname{III}\}= \mathcal{F}\{\alpha\}*\operatorname{III}</math>
where <math>\operatorname{III}</math> is the Dirac comb, <math>\cdot \operatorname{III}</math> is discretization, <math>* \operatorname{III}</math> is periodization, <math>f</math> is a rapidly decreasing tempered distribution (e.g. a Dirac delta function <math>\delta</math> or any other compactly supported function), <math>\alpha</math> is a smooth, slowly growing ordinary function (e.g. the function that is constantly <math>1</math> or any other band-limited function) and <math>\mathcal{F}</math> is the (unitary, ordinary frequency) Fourier transform. Functions <math>\alpha</math> which are not smooth can be made smooth using a mollifier prior to discretization.
As an example, discretization of the function that is constantly <math>1</math> yields the sequence <math>[..,1,1,1,..]</math> which, interpreted as the coefficients of a linear combination of Dirac delta functions, forms a Dirac comb. If additionally truncation is applied, one obtains finite sequences, e.g. <math>[1,1,1,1]</math>. They are discrete in both, time and frequency.
See alsoEdit
- Discrete event simulation
- Discrete space
- Discrete time and continuous time
- Finite difference method
- Finite volume method for unsteady flow
- Interpolation
- Smoothing
- Stochastic simulation
- Time-scale calculus