6
$\begingroup$

I would like to solve for the optimum $A$ values for a series of matrix equations $Ax_{1} = b_{1}, Ax_{2} = b_{2} ... Ax_{n} = b_{n}$ where only the $x$ values are known and when I start with an intelligent guess for $A$. I am using QR decomposition to solve the individual matrix equations for $b$, but wondering how to go about optimizing $A$ values as I don't have a real $b$ value to use in defining some error metric to use for convergence.

The nature of the problem is that $x$ is a set of sensor values and $A$ represents a set of constant coefficients defining to what degree the value at an adjacent sensor affects the measured values of $x$. The $b$ values should be the actual values without superposition from other sensors.

Any suggestions on tackling this would be appreciated.

$\endgroup$
10
  • $\begingroup$ Since you're using QR, are you doing least-squares fitting? $\endgroup$ Commented May 9, 2015 at 8:00
  • $\begingroup$ How would you quantify whether $A$ has an optimum value or not? Do you have any idea what $b_n$ should look like? $\endgroup$
    – fibonatic
    Commented May 9, 2015 at 9:01
  • $\begingroup$ Why do you need QR to solve for $b_n$, can't you just multiply? $\endgroup$
    – Bill Barth
    Commented May 9, 2015 at 13:12
  • $\begingroup$ I am doing least squares as the values aren't going be exact and I am trying to derive the "best" A coefficients for a whole set of data points. I need the best fit since these are sensor readings and not the real, independent values that I would like to extract, but don't know if A has an optimum value or more than one. Bill, you are probably might be right that straight multiplication would work for this portion. My biggest problems is really getting that "best" A matrix such that I can tease out the actual values from my readings. $\endgroup$
    – Jason K.
    Commented May 9, 2015 at 14:53
  • 1
    $\begingroup$ The title and the question say two different things. It would be useful if you edited and specified clearly what is given and what is an unknown. Also, what are the matrix sizes? Are they related to $n$? And please avoid the term "series", in mathematics it means something else and it can be confusing. $\endgroup$ Commented May 11, 2015 at 19:30

2 Answers 2

9
$\begingroup$

Your problem sounds like Independent Component Analysis. Where $x_i$ are the measurements in which the source signals have got mixed and $b_i$ are the values emitted by the sources. The $A$ in your equations is called the unmixing matrix. There is an iterative procedure to estimate $A$ and hence, the $b_i$s, based on the maximum likelihood principle. Refer to these notes:

Andrew Ng's notes on ICA

[Edit] FastICA looks like a popular implementation:

http://research.ics.aalto.fi/ica/fastica/

http://itpp.sourceforge.net/4.3.0/fastica_8cpp.html

http://tumic.wz.cz/fel/online/libICA/

[Edit] The OP (Jason) also found these for future reference:

https://github.com/cgearhart/students-filters/

http://sourceforge.net/projects/fastica/

http://shulgadim.blogspot.ca/2014/02/independent-component-analysis-ica.html

$\endgroup$
3
  • $\begingroup$ This does look like the sort of thing I need. I am going to try it out and get back. If you know of some implementations, please let me know. $\endgroup$
    – Jason K.
    Commented May 9, 2015 at 14:59
  • $\begingroup$ Thanks for these. I also found and have added some. I have a few to try out. Many thanks. $\endgroup$
    – Jason K.
    Commented May 9, 2015 at 16:01
  • $\begingroup$ Answer accepted. (It was the first one I accepted so wasn't sure what I was looking for at first) $\endgroup$
    – Jason K.
    Commented May 9, 2015 at 16:35
1
$\begingroup$

Reformulate your set of equations such that the coefficients are the unknowns and perform least square fitting on A.

This can be done by the following trick:

Be $x$ a column vector $(n\times 1)$, $A$ the unknown matrix $(n\times n)$, you know that $Ax =b \Rightarrow \sum_j a_{ij} x_j = b_i$ but this can also be seen as $\hat X\, \textrm{Vec}(A)= b$ where $\textrm{Vec}(A)$ is the vectorization operator and $\hat X$ must be n-times repeated and shifted by n $x^T$ or $0^T$ otherwise, leading to $\Rightarrow \hat X=x^T\otimes I_n $, where $I_n$ is the identity matrix of dimension n.

For the full system you can rewrite it as following, set $X=(x_1,...,x_n)$ and $B=(b_1,...,b_n)$ of your original equations $A X = B$, your least square problem for $A$ reads $(X^T\otimes I_n)\textrm{Vec}(A)=\textrm{Vec}(B)$.

So it all boils down if you have enough matrix equations whether this will be an over or undertemined system and can be directly solved by standard numerical techniques.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.