How to perform SVD of a matrix with symbols?

76 Views Asked by At

Let's assume that we have the following matrix:

\begin{pmatrix} 0& 2& 3& 4a& 5a\\ 6& 7& 1& 8a& 9a\end{pmatrix}

Can we perform SVD on this matrix and get the output in function of $a$?

1

There are 1 best solutions below

0
On BEST ANSWER

Seeing that the Wolfram Alpha solution which @Omnomnomnom posts is unreasonably complicated for any practical purpose, it is justified to search for a simpler and computationally cheaper approximative solution.

Here is one way to approximate the elements in $\bf U$ and $\bf V$ matrices in the SVD.

Considering the matrix ${\bf M = M_1} + a {\bf M_2}$, where:

$${\bf M}(a) = {\bf U}(a){\bf \Sigma}(a) {\bf V}(a)^T$$

$${\bf M_1} = \begin{bmatrix}0&2&3&0&0\\6&7&1&0&0\end{bmatrix}, {\bf M_2} = \begin{bmatrix}0&0&0&4&5\\0&0&0&8&9\end{bmatrix}$$

We first set up the following set of functions (which we have found by experimentation)

$$f_N(a) =\exp\left[\frac{-a N^2}{1.5\cdot N_{max}}\right]$$

Exponential functions are cheap to calculate, they often have very optimized software functions or even hardware instructions in computers. The experiments below are $N_{max} = 8$, so max 8 exponential function evaluations needed for any given $a$.

Then we simply calculate SVD for a range of values, for example linearly spaced $ a \in [0,16]$ and we do linear regression on each element as a function of $a$:

$$\min_{\{c_{klm}\}}\left\| {\bf U}_{lm}(a) - \sum_{k=0}^{N_{max}} c_{klm} f_k(a)\right\|_2^2$$

enter image description here

enter image description here

enter image description here