Mo logo [home] [lexicon] [problems] [tests] [courses] [auxiliaries] [notes] [staff] german flag

Mathematics-Online course: Linear Algebra - Normal Forms - Singular Value Decomposition

Topography


[previous page] [next page] [table of contents][page overview]

Given the results of the measurment of topographic height data $ h_i$ and of height differences $ d_{i,j}$. Because of measurement errors we normally have $ d_{i,j}\neq
h_i-h_j$. Now height corrections $ x_i$ are to be found, where

$\displaystyle \sum_{(i,j)\in {\cal J}}\Big(d_{i,j}-\big( (h_i+x_i)-(h_j+x_j) \big) \Big)^2
\longrightarrow \min \; .
$

Example: Approximation problem for the measured data
>> h=[834, 561, 207, 9]';
>> d=[276, 631, 822, 356, 549]';
where $ d=(d_{1,2}, d_{1,3}, d_{1,4}, d_{2,3}, d_{2,4})^t$.

Let

$\displaystyle A:=
\left[\begin{array}{rrrr} 1 & -1 & 0 & 0 \\ 1 & 0 & -1 & 0 \\ 1 & 0 & 0 & -1
\\ 0 & 1 & -1 & 0 \\ 0 & 1 & 0 & -1 \end{array} \right]$   and$\displaystyle \quad A(h+x)=d \; .
$

The over-determined system of equations $ Ax=d-Ah$ is to be solved.

SV-decomposition of matrix A:

>> A=[1 -1 0 0 ; 1 0 -1 0 ; 1 0 0 -1 ; 0 1 -1 0 ; 0 1 0 -1];
>> [U,S,V]=svd(A)
U =
    0.5774    0.4082   -0.0000   -0.7071   -0.0000
    0.5774   -0.2041   -0.5000    0.3536    0.5000
    0.5774   -0.2041    0.5000    0.3536   -0.5000
   -0.0000   -0.6124   -0.5000   -0.3536   -0.5000
   -0.0000   -0.6124    0.5000   -0.3536    0.5000
S =
    2.0000         0         0         0
         0    2.0000         0         0
         0         0    1.4142         0
         0         0         0    0.0000
         0         0         0         0
V =
    0.8660         0         0   -0.5000
   -0.2887   -0.8165    0.0000   -0.5000
   -0.2887    0.4082    0.7071   -0.5000
   -0.2887    0.4082   -0.7071   -0.5000

Computation of the pseudo inverse $ A^+=VS^+U^t$ by means of the $ (4\times 5)$-matrix $ S^+$ the entries of which are

$\displaystyle s^+_{i,j}=\left\{
\begin{array}{ll}
1/s_{i,i} \quad & \mbox{f...
...j \mbox{ und } s_{i,i}\neq 0 \\
0 & \mbox{sonst}
\end{array}\right. \; .
$

>> SP=diag(1./diag(S(1:3,1:3)));
>> SP(4,5)=0
SP =
    0.5000         0         0         0         0
         0    0.5000         0         0         0
         0         0    0.7071         0         0
         0         0         0         0         0

>> AP=V*SP*U'
AP =
    0.2500    0.2500    0.2500   -0.0000   -0.0000
   -0.2500    0.0000    0.0000    0.2500    0.2500
   -0.0000   -0.3750    0.1250   -0.3750    0.1250
    0.0000    0.1250   -0.3750    0.1250   -0.3750

Solving the approximation problem by multiplying the right hand side $ d-Ah$ by the pseudo inverse $ A^+$:

>> x=AP*(d-A*h)
x =
    1.0000
   -1.0000
   -3.0000
    3.0000

Remark: The pseudo inverse can directly be computed by the MATLAB-command pinv.


  automatically generated 4/21/2005