Find a matrix that gives same result when multiplied by a constant or another matrix

大城市里の小女人 提交于 2019-12-12 16:15:35

问题


I have got a problem like A*x=lambda*x, where A is of order d*d, x is of order d*c and lambda is a constant. A and lambda are known and the matrix x is unknown. Is there any way to solve this problem in matlab?? (Like eigen values but x is a d*c matrix instead of being a vector).


回答1:


If I've understood you correctly, there will not necessarily be any solutions for x. If A*x=lambda*x, then any column y of x satisfies A*y=lambda*y, so the columns of x are simply eigenvectors of A corresponding to the eigenvalue lambda, and there will only be any solutions if lambda is in fact an eigenvalue.

From the documentation:

[V,D] = eig(A) produces matrices of eigenvalues (D) and eigenvectors (V) of matrix A, so that A*V = V*D. Matrix D is the canonical form of A — a diagonal matrix with A's eigenvalues on the main diagonal. Matrix V is the modal matrix — its columns are the eigenvectors of A.

You can use this to check if lambda is an eigenvalue, and find any corresponding eigenvectors.




回答2:


You can transform this problem. Write x as vector by by using x(:) (has size d*c x 1). Then A can be rewritten to a d*c x d*c matrix which has c versions of A along the diagonal.

Now it's a simple eigenvalue problem.




回答3:


Its actually trivial. Your requirement is that A*X = lambda*X, where X is an array. Effectively, look at what happens for a single column of X. If An array X exists, then it is true that

A*X(:,i) = lambda*X(:,i)

And this must be true for the SAME value of lambda for all columns of X. Essentially, this means that X(:,i) is an eigenvector of A, with corresponding eigenvalue lambda. More importantly, it means that EVERY column of X has the same eigenvalue as every other column.

So a trivial solution to this problem is to simply have a matrix X with identical columns, as long as that column is an eigenvector of A. If an eigenvalue has multiplicity greater than one (therefore there are multiple eigenvectors with the same eigenvalue) then the columns of X may be any linear combination of those eigenvectors.

Try it in practice. I'll pick some simple matrix A.

>> A = [2 3;3 2];
>> [V,D] = eig(A)
V =
     -0.70711      0.70711
      0.70711      0.70711
D =
           -1            0
            0            5

The second column of V is an eigenvector, with eigenvalue of 5. We can arbitrarily scale an eigenvector by any constant. So now pick the vector vec, and create a matrix with replicated columns.

>> vec = [1;1];
>> A*[vec,vec,vec]
ans =
     5     5     5
     5     5     5

This should surprise nobody.



来源:https://stackoverflow.com/questions/9215481/find-a-matrix-that-gives-same-result-when-multiplied-by-a-constant-or-another-ma

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!