Bird
Raised Fist0
MATLABdata~5 mins

Singular value decomposition (svd) in MATLAB

Choose your learning style10 modes available
Introduction
Singular value decomposition breaks a matrix into simple parts to understand its structure and solve problems easily.
To find the main features or patterns in data, like in image compression.
To solve systems of equations that are hard to solve directly.
To reduce the size of data while keeping important information.
To analyze and clean noisy data by focusing on strong signals.
To compute matrix properties like rank or condition number.
Syntax
MATLAB
[U, S, V] = svd(A)
A is the input matrix you want to decompose.
U and V are orthogonal matrices, and S is a diagonal matrix with singular values.
Examples
Decompose a 2x2 matrix A into U, S, and V matrices.
MATLAB
A = [3 1; 1 3];
[U, S, V] = svd(A);
Decompose a random 4x3 matrix to get its singular values and vectors.
MATLAB
A = rand(4,3);
[U, S, V] = svd(A);
Sample Program
This program decomposes matrix A using svd and shows the three resulting matrices U, S, and V.
MATLAB
A = [4 0 0; 3 -5 0];
[U, S, V] = svd(A);
disp('Matrix U:');
disp(U);
disp('Matrix S:');
disp(S);
disp('Matrix V:');
disp(V);
OutputSuccess
Important Notes
The singular values in S are always non-negative and sorted from largest to smallest.
U and V matrices are orthogonal, meaning their columns are perpendicular and have length 1.
You can use svd to approximate a matrix by keeping only the largest singular values.
Summary
Singular value decomposition splits a matrix into U, S, and V parts.
It helps understand data structure and solve math problems easily.
Use svd in MATLAB with [U, S, V] = svd(A).

Practice

(1/5)
1. What does the MATLAB function svd(A) return when applied to a matrix A?
easy
A. The determinant of matrix A.
B. The inverse of matrix A.
C. Three matrices: U, S, and V such that A = U * S * V'.
D. The transpose of matrix A.

Solution

  1. Step 1: Understand the purpose of svd

    The svd function decomposes a matrix into three parts: U, S, and V.
  2. Step 2: Recall the decomposition formula

    It satisfies the equation A = U * S * V', where U and V are orthogonal matrices and S is diagonal.
  3. Final Answer:

    Three matrices: U, S, and V such that A = U * S * V'. -> Option C
  4. Quick Check:

    svd(A) = U, S, V [OK]
Hint: Remember svd splits matrix into U, S, V parts [OK]
Common Mistakes:
  • Confusing svd with inverse or transpose
  • Expecting a single matrix output
  • Thinking svd returns determinant
2. Which of the following is the correct MATLAB syntax to compute the singular value decomposition of matrix A and store the results in U, S, and V?
easy
A. [U, S, V] = svd(A);
B. svd(U, S, V) = A;
C. U, S, V = svd(A);
D. svd(A, U, S, V);

Solution

  1. Step 1: Recall MATLAB function output syntax

    In MATLAB, multiple outputs are assigned using square brackets on the left side.
  2. Step 2: Match correct svd syntax

    The correct syntax is [U, S, V] = svd(A); to get all three matrices.
  3. Final Answer:

    [U, S, V] = svd(A); -> Option A
  4. Quick Check:

    Use square brackets for multiple outputs [OK]
Hint: Use square brackets for multiple outputs in MATLAB [OK]
Common Mistakes:
  • Using parentheses instead of brackets for outputs
  • Trying to assign outputs on the right side
  • Incorrect argument order in svd
3. Given the MATLAB code:
A = [3 1; 1 3];
[U, S, V] = svd(A);
disp(diag(S));

What will be the output of disp(diag(S))?
medium
A. [0; 0]
B. [3; 1]
C. [1; 3]
D. [4; 2]

Solution

  1. Step 1: Calculate singular values of A

    Matrix A is symmetric. Its singular values are the absolute values of eigenvalues. Eigenvalues of A are 4 and 2.
  2. Step 2: Understand svd output

    The diagonal of S contains singular values in descending order: 4 and 2.
  3. Final Answer:

    [4; 2] -> Option D
  4. Quick Check:

    Singular values = eigenvalues for symmetric matrix [OK]
Hint: For symmetric matrices, singular values = absolute eigenvalues [OK]
Common Mistakes:
  • Confusing singular values with matrix entries
  • Mixing order of singular values
  • Expecting singular values to be zero
4. Consider the MATLAB code snippet:
A = [1 2; 3 4];
[U, S, V] = svd(A);
U = svd(A);

What is the error in this code?
medium
A. Matrix A is not square, so svd cannot be applied.
B. The second call to svd assigns a matrix to U instead of three outputs.
C. The variable V is not assigned in the second svd call.
D. The svd function requires four output variables.

Solution

  1. Step 1: Analyze the first svd call

    The first call correctly assigns three outputs: U, S, V.
  2. Step 2: Analyze the second svd call

    The second call assigns U = svd(A); which returns only singular values as a vector, not a matrix U.
  3. Final Answer:

    The second call to svd assigns a matrix to U instead of three outputs. -> Option B
  4. Quick Check:

    svd(A) alone returns singular values vector [OK]
Hint: svd(A) alone returns singular values vector, not matrices [OK]
Common Mistakes:
  • Expecting svd(A) to return U matrix alone
  • Thinking svd requires square matrix only
  • Ignoring number of outputs in function call
5. You want to approximate a matrix A by keeping only the largest singular value and corresponding vectors using MATLAB. Which code snippet correctly performs this low-rank approximation?
hard
A. [U, S, V] = svd(A);
A_approx = U(:,1) * S(1,1) * V(:,1)';
B. [U, S, V] = svd(A);
A_approx = U(:,1) * V(:,1)';
C. [U, S, V] = svd(A);
A_approx = S(1,1) * V(:,1)';
D. [U, S, V] = svd(A);
A_approx = U(:,1) * S(:,1) * V(:,1)';

Solution

  1. Step 1: Understand low-rank approximation using svd

    Keeping only the largest singular value means using the first column of U, the first singular value, and the first column of V.
  2. Step 2: Construct the approximation

    The approximation is A_approx = U(:,1) * S(1,1) * V(:,1)', multiplying the first singular value and vectors.
  3. Final Answer:

    [U, S, V] = svd(A); A_approx = U(:,1) * S(1,1) * V(:,1)'; -> Option A
  4. Quick Check:

    Low-rank approx = U(:,1)*S(1,1)*V(:,1)' [OK]
Hint: Multiply first U column, singular value, and V column for approximation [OK]
Common Mistakes:
  • Omitting singular value in multiplication
  • Using entire S matrix instead of first singular value
  • Incorrect matrix dimensions in multiplication
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard