Bird
Raised Fist0
MATLABdata~20 mins

Eigenvalues and eigenvectors (eig) in MATLAB - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Eigen Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of eigenvalues and eigenvectors for a 2x2 matrix
What is the output of the following MATLAB code?
A = [2 1; 1 2]; [V,D] = eig(A); disp(D); disp(V);
MATLAB
A = [2 1; 1 2];
[V,D] = eig(A);
disp(D);
disp(V);
A
[1 0; 0 3]
[[-0.7071 0.7071]; [0.7071 0.7071]]
B
[3 0; 0 1]
[[0.7071 -0.7071]; [0.7071 0.7071]]
C
[2 1; 1 2]
[[1 0]; [0 1]]
D
[0 0; 0 0]
[[0 0]; [0 0]]
Attempts:
2 left
💡 Hint
Remember that eig returns eigenvalues in ascending order on the diagonal of D and corresponding eigenvectors in V.
🧠 Conceptual
intermediate
1:30remaining
Understanding eigenvalue multiplicity
Consider the matrix A = [2 0; 0 2]. How many distinct eigenvalues does A have?
ATwo distinct eigenvalues
BOne eigenvalue with multiplicity two
CNo eigenvalues
DInfinite eigenvalues
Attempts:
2 left
💡 Hint
Look at the diagonal elements and their values.
🔧 Debug
advanced
1:30remaining
Identify the error in eigenvalue calculation code
What error will the following MATLAB code produce?
A = [1 2; 3 4]; [V,D] = eig(A(1:3,1:3));
MATLAB
A = [1 2; 3 4];
[V,D] = eig(A(1:3,1:3));
AUndefined function or variable 'eig'.
BNo error, outputs eigenvalues and eigenvectors.
CMatrix must be symmetric.
DIndex exceeds matrix dimensions.
Attempts:
2 left
💡 Hint
Check the size of matrix A and the indexing used.
📝 Syntax
advanced
1:30remaining
Syntax error in eigenvalue function usage
Which option contains a syntax error when computing eigenvalues and eigenvectors in MATLAB?
AV, D = eig(A);
B[V,D] = eig A;
C[V,D] = eig(A, 'nobalance');
D[V,D] = eig(A);
Attempts:
2 left
💡 Hint
MATLAB uses square brackets for multiple outputs and does not support comma-separated assignment.
🚀 Application
expert
2:00remaining
Number of eigenvalues for a 3x3 matrix with repeated eigenvalues
Given the matrix B = [5 4 2; 0 1 0; 0 0 1], how many distinct eigenvalues does B have?
AOne eigenvalue with multiplicity three
BNo eigenvalues
CTwo distinct eigenvalues
DThree distinct eigenvalues
Attempts:
2 left
💡 Hint
Look for eigenvalues on the diagonal and consider repeated values.

Practice

(1/5)
1. What does the MATLAB function eig return when applied to a square matrix?
easy
A. Eigenvalues and eigenvectors of the matrix
B. Only the eigenvalues of the matrix
C. Only the eigenvectors of the matrix
D. The inverse of the matrix

Solution

  1. Step 1: Understand the purpose of eig

    The eig function in MATLAB is designed to compute eigenvalues and eigenvectors of a square matrix.
  2. Step 2: Recall the output of eig

    When called with two output arguments, [V,D] = eig(A), it returns eigenvectors in V and eigenvalues in diagonal matrix D.
  3. Final Answer:

    Eigenvalues and eigenvectors of the matrix -> Option A
  4. Quick Check:

    eig returns eigenvalues and eigenvectors [OK]
Hint: Remember: eig returns both eigenvalues and eigenvectors [OK]
Common Mistakes:
  • Thinking eig returns only eigenvalues
  • Confusing eig with inverse function
  • Assuming eig returns a scalar
2. Which of the following is the correct syntax to get eigenvalues and eigenvectors of matrix A in MATLAB?
easy
A. [V,D] = eig(A);
B. eig = [V,D](A);
C. V, D = eig(A);
D. eig(A) -> [V,D];

Solution

  1. Step 1: Recall MATLAB function call syntax

    In MATLAB, functions return outputs using square brackets for multiple outputs, e.g., [out1, out2] = function(input);.
  2. Step 2: Match correct syntax for eig

    The correct way to get eigenvectors V and eigenvalues D is [V,D] = eig(A);.
  3. Final Answer:

    [V,D] = eig(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 commas instead of brackets for outputs
  • Assigning outputs incorrectly
  • Using arrow notation which is invalid in MATLAB
3. Given the matrix A = [2 0; 0 3];, what is the output of [V,D] = eig(A); D?
medium
A. [[5 0]; [0 0]]
B. [[3 0]; [0 2]]
C. [[2 0]; [0 3]]
D. [[0 2]; [3 0]]

Solution

  1. Step 1: Identify eigenvalues of matrix A

    Matrix A is diagonal with entries 2 and 3, so eigenvalues are 2 and 3.
  2. Step 2: Understand output of D from eig

    D is a diagonal matrix with eigenvalues on the diagonal, so D = [2 0; 0 3].
  3. Final Answer:

    [[2 0]; [0 3]] -> Option C
  4. Quick Check:

    Diagonal matrix D has eigenvalues 2 and 3 [OK]
Hint: Eigenvalues of diagonal matrix are diagonal entries [OK]
Common Mistakes:
  • Mixing order of eigenvalues
  • Confusing eigenvalues with eigenvectors
  • Expecting eigenvalues as a vector instead of diagonal matrix
4. What is wrong with this MATLAB code snippet to get eigenvalues of matrix A?
eigenvalues = eig(A, 'vector');
medium
A. The matrix A must be square and symmetric
B. The variable name eigenvalues is invalid
C. The function eig requires three output arguments
D. The eig function does not accept 'vector' as a second argument

Solution

  1. Step 1: Check eig function arguments

    The MATLAB eig function does not take a second argument like 'vector'. It only takes the matrix as input.
  2. Step 2: Identify correct usage to get eigenvalues as vector

    To get eigenvalues as a vector, simply call eig(A) without extra arguments.
  3. Final Answer:

    The eig function does not accept 'vector' as a second argument -> Option D
  4. Quick Check:

    Check function syntax carefully [OK]
Hint: Check MATLAB function syntax in docs before adding arguments [OK]
Common Mistakes:
  • Adding unsupported arguments to eig
  • Assuming eig returns vector by default without output assignment
  • Confusing eig with other functions
5. You have a matrix A = [4 1 0; 1 4 1; 0 1 4];. How can you find the eigenvector corresponding to the largest eigenvalue using MATLAB?
hard
A. largestVec = eig(A);
B. [V,D] = eig(A); [~, idx] = max(diag(D)); largestVec = V(:, idx);
C. [V,D] = eig(A); largestVec = D(:,1);
D. [V,D] = eig(A); largestVec = max(V);

Solution

  1. Step 1: Compute eigenvalues and eigenvectors

    Use [V,D] = eig(A); to get eigenvectors V and eigenvalues in diagonal matrix D.
  2. Step 2: Find index of largest eigenvalue

    Extract eigenvalues with diag(D), then find index of max eigenvalue with [~, idx] = max(diag(D));.
  3. Step 3: Select eigenvector corresponding to largest eigenvalue

    Use index to get eigenvector: largestVec = V(:, idx);.
  4. Final Answer:

    [V,D] = eig(A); [~, idx] = max(diag(D)); largestVec = V(:, idx); -> Option B
  5. Quick Check:

    Index max eigenvalue, select eigenvector column [OK]
Hint: Use max(diag(D)) to find largest eigenvalue index [OK]
Common Mistakes:
  • Using eigenvalues matrix D as vector directly
  • Selecting wrong column of eigenvectors
  • Confusing eigenvalues with eigenvectors
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