svd function - Singular Value Decomposition
1 次查看(过去 30 天)
显示 更早的评论
Hi,
I want to solve the following system of equations using SVD:
S = AX,
where S is a 40x1 matrix (rows x columns), A is 40x3 and X is 3x1 matrix contains the unknowns.
I found the svd Matlab function which I want to use but I am not sure how to obtain the values of X after performing the SVD.
I found the SVD of the matrix A as follows:
[U,S,V] = svd(A);
U is a 40x40 matrix. S is a 40x3 matrix. V is a 3x3 matrix.
I have to use U, S and V to derive the solutions of X but I don't understand how.
Can anyone help with that?
Another question.
I have read that for an mxn matrix A there exists: an mxn orthogonal matrix U, an nxn diagonal matrix S an nxn orthogonal matrix V
such that A=U*S*transpose(V).
After using the svd in Matlab the outputs U,S,V have different dimensions from what I've read in the literature. I don't understand why though. Thank you.
0 个评论
回答(1 个)
John D'Errico
2018-5-1
编辑:John D'Errico
2018-5-1
It is a really bad idea to use S in two totally different contexts. So I called the right hand side R. You will only become confused otherwise.
The solution that uses an SVD for the problem
R = A*X
is just:
X = pinv(A)*R
It uses the singular value decomposition to solve the problem. WTP? Oh, is this homework? Surely you were the one who needs to do your homework though, not us.
You should understand that
A*X = (U*S*V')*X
So your problem is to solve for X
(U*S*V')*X = R
What is U'*U? Think about it. What do you know about U? What would happen if you left-multiplied both sides by U'? Does that get you closer to a solution? What would the problem look like now? Can you take two more steps to realize a solution?
Finally, you seem surprised that U,S,V are not the same sizes that you expected. Did you read the help for SVD? SVD can return either the full SVD, or an economy size version, that requires much less memory to store. READ THE HELP. Consider the difference between svd(A), and svd(A,0).
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Eigenvalues 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!