Asked by Sudipta Sinha
on 7 Aug 2013

Hi All,

I was trying to evaluate the matrix coefficient by the method of constrained least square fitting. The linear matrix differential equation looks like X'=AX, where X' and X are two vectors and A is matrix. Moreover, there is a constraint on diagonal matrix element and which is a(i,i)=-Sum(i/=j)a(i,j). The elements of X' and X vectors are known. I was trying to use MATLAB to do that. But I didn't figure out which figure out which MATLAB function is suitable for that. Can you guide me in this regard.

Thanks in advance Sudipta

Answer by Richard Brown
on 7 Aug 2013

Accepted Answer

Richard Brown
on 7 Aug 2013

Please reply to answers with comments, not further answers. I won't write you a script to do it, but it's pretty straightforward - I suggest you do it with pen and paper first.

Treat the entries of A as a vector comprised of its columns stacked together. Each row of each X' = A*x equation is linear in the entries of A. It just takes a bit of thought and messing around to construct the right matrices.

The diagonal sum constraint is an equality constraint.

Sudipta Sinha
on 7 Aug 2013

Richard Brown
on 7 Aug 2013

The vector that you get out from lsqlin will be the columns of A, stacked into a vector. The matrix Ahat that you provide to lsqlin will be big (it's not A). For example, assuming your vectors have m entries and A is square, the first m rows of the matrix Ahat you provide to lsqlin will be

tmp = repmat({x1},m,1);

Ahat(1:m,:) = blkdiag(tmp{:})

where x1 is your first X vector. Likewise the first m entries of the RHS will be xp1 (your first X' vector)

Sign in to comment.

Answer by Sudipta Sinha
on 7 Aug 2013

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.