matlabmatrixlinear-algebra

Constraining parameters using mldivide


I have a matrix equation of the form AX = B. A and B are of size 1000x3 that I know. I want to calculate X, which is a 3x3 matrix. However, some terms of this matrix are zeros and ones. i.e. X is of the form [a 0 b; 0 c d; 0 0 1];

When I calculate X = A\B, I get good approximations for a, b, c and d, but the values that I expect to be zeros are really small numbers.

Is there a way to constrain some of the parameters to be zeros?


Solution

  • Consider solving each row independently. You technically have 3 systems of equations of the form A*x_i=b_i, for A [1000x3], x_i [3x1], b_i [1000x1].

    Now, you can make x_i any shape, particularly, you can just remove the zeros (together with the vectors in A that multiply them). If you know x_3 is [k 0 m] (random example), that is the same as solving for x_3 if size [2x1] ( [k m]) and A of size [1000x2].

    Don't waste computation multiplying by zero