Help me about matrix in Matlab ?
3 次查看(过去 30 天)
显示 更早的评论
Give a square matrix A. For k is positive integer. Find k that A^k = 0. (I'm Vietnamese, I don't know How to call k in English). Could you please help me write the code to find k.
Thanks you very much.
4 个评论
Image Analyst
2013-12-30
You said "Give a square matrix A". Well how about if I give you an A that is all zeros?
Walter Roberson
2013-12-30
Roger, it can happen in floating point arithmetic, though not algebraically. For example,
diag(rand(1,5))
raised to a large enough power will underflow to all 0's.
For example,
A = diag([0.757740130578333, 0.743132468124916, 0.392227019534168, 0.655477890177557, 0.171186687811562]);
is last non-zero at A^2685
采纳的回答
Walter Roberson
2013-12-30
There is in general no solution for this. If you do a singular value decomposition
[U,S,V] = svd(A);
then A = U * S * V' where S is a diagonal matrix, and A^k = U * S^k * V' . Then, A^k can only go to zero if S^k goes to 0. Algebraically that requires that the matrix be singular in the first place. In floating point arithmetic, it would require that the diagonal of the diagonal matrix S be all in (-1,+1) (exclusive on both ends) and then k would be the point at which the diagonal elements underflowed to 0. As the non-zero diagonal S entries of SVD are the square roots of the eigenvalues of A, this in turn requires that the eigenvalues are all strictly in the range (0,1) -- which is certainly not true for general matrices A.
1 个评论
Roger Stafford
2013-12-30
编辑:Roger Stafford
2013-12-30
No, that isn't true for 'svd' in general, Walter. It does hold true for 'eig' when it can obtain a complete set of orthogonal eigenvectors and eigenvalues.
更多回答(0 个)
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!