Academic Block

Logo of Academicblock.net

Numerical Linear Algebra and MATLAB

Numerical Linear Algebra is a core topic in scientific computing, focusing on the application of linear algebra techniques to real-world numerical problems. MATLAB offers a robust environment for performing these operations efficiently.

Solving Systems of Linear Equations

MATLAB provides efficient methods for solving systems of linear equations. Let’s consider the system of equations:

3x - 2y = 5
 x + 4y = 6
    
% Solving a System of Linear Equations
A = [3 -2; 1 4];
b = [5; 6];
x = A \ b; % Solve Ax = b
disp('Solution x:');
disp(x);

Output:

Solution:

 1.0000
 1.2500
    

LU Decomposition

LU decomposition factors a square matrix A into a lower triangular matrix L and an upper triangular matrix U, such that A = L * U. Let’s consider:

Matrix A:

4   3
6   3
    
% LU Decomposition
A = [4 3; 6 3];
[L, U] = lu(A); % Perform LU decomposition
disp('Lower Triangular Matrix L:');
disp(L);
disp('Upper Triangular Matrix U:');
disp(U);

Output:

Lower Triangular Matrix L:

 1.0000    0.0000
 1.5000    1.0000

Upper Triangular Matrix U:

 4.0000    3.0000
 0.0000   -1.5000
    

Eigenvalues and Eigenvectors

Eigenvalues and eigenvectors are critical for stability analysis, vibration analysis, and solving systems of differential equations. Consider the matrix:

Matrix A:

2   1
1   2
    
% Finding Eigenvalues and Eigenvectors
A = [2 1; 1 2];
[V, D] = eig(A); % Compute eigenvalues and eigenvectors
disp('Eigenvectors:');
disp(V);
disp('Eigenvalues (Diagonal Matrix):');
disp(D);

Output:

Eigenvectors:

 -0.7071   -0.7071
  0.7071   -0.7071

Eigenvalues (Diagonal Matrix):

 1.0000         0
      0    3.0000
    

QR Decomposition

QR decomposition factors a matrix A into an orthogonal matrix Q and an upper triangular matrix R, such that A = Q * R. Let’s consider the matrix:

Matrix A:

 12  -51   4
  6  167 -68
 -4   24 -41
    
% QR Decomposition
A = [12 -51 4; 6 167 -68; -4 24 -41];
[Q, R] = qr(A); % Perform QR decomposition
disp('Orthogonal Matrix Q:');
disp(Q);
disp('Upper Triangular Matrix R:');
disp(R);

Output:

Orthogonal Matrix Q:

 -0.8571    0.3943   0.3314
 -0.4286   -0.9029  -0.0343
  0.2857   -0.1714   0.9429

Upper Triangular Matrix R:

-14.0000   21.0000  -14.0000
  0.0000 -175.0000   70.0000
  0.0000    0.0000  -35.0000
    

Singular Value Decomposition (SVD)

SVD is a robust tool for solving ill-conditioned systems, data compression, and image processing. Let’s consider:

Matrix A:

 1   0
 0   2
 3   0
    
% Singular Value Decomposition
A = [1 0; 0 2; 3 0];
[U, S, V] = svd(A); % Perform SVD
disp('Matrix U:');
disp(U);
disp('Diagonal Matrix S:');
disp(S);
disp('Matrix V:');
disp(V);

Output:

Matrix U:

 -0.3162         0    0.9487
       0   -1.0000         0
 -0.9487         0   -0.3162


Diagonal Matrix S:

 3.1623         0
       0    2.0000
       0         0


Matrix V:

 -1.0000         0
       0    1.0000
    

Cholesky Decomposition

Cholesky decomposition is used for solving systems of linear equations and for numerical optimization. It decomposes a positive definite matrix A into a product of a lower triangular matrix L and its transpose: A = L * L'.

Consider the matrix:

Matrix A:

 4   12  -16
12   37  -43
-16 -43   98
% Cholesky Decomposition
A = [4 12 -16; 12 37 -43; -16 -43 98];
L = chol(A, 'lower'); % Perform Cholesky decomposition
disp('Lower Triangular Matrix L:');
disp(L);
disp('Reconstructed Matrix A from L:');
disp(L * L');

Output:

Lower Triangular Matrix L:

  2.0000         0         0
  6.0000    1.0000         0
 -8.0000   -5.0000    3.0000

Reconstructed Matrix A from L:

  4.0000   12.0000  -16.0000
 12.0000   37.0000  -43.0000
-16.0000  -43.0000   98.0000

Determinant Calculation

The determinant of a square matrix is a scalar value used to determine invertibility and other properties. Consider:

Matrix A:

 1   2   3
 0   4   5
 1   0   6
% Determinant of a Matrix
A = [1 2 3; 0 4 5; 1 0 6];
detA = det(A); % Compute determinant
disp('Determinant of A:');
disp(detA);

Output:

Determinant of A:

22

Moore-Penrose Pseudoinverse

The pseudoinverse is used to find solutions to overdetermined or underdetermined systems. Consider the matrix:

Matrix A:

 1   0   2
 0   1   3
% Pseudoinverse of a Matrix
A = [1 0 2; 0 1 3];
pinvA = pinv(A); % Compute pseudoinverse
disp('Pseudoinverse of A:');
disp(pinvA);

Output:

Pseudoinverse of A:

  0.2000         0
       0    0.2000
  0.1333    0.2000

Norm of a Matrix

The norm of a matrix measures its size or length in a specific sense. Consider:

Matrix A:

 1   -2
 3    4
% Norm of a Matrix
A = [1 -2; 3 4];
normF = norm(A, 'fro'); % Frobenius norm
norm1 = norm(A, 1); % 1-norm
normInf = norm(A, Inf); % Infinity norm
disp('Frobenius Norm:');
disp(normF);
disp('1-Norm:');
disp(norm1);
disp('Infinity Norm:');
disp(normInf);

Output:

Frobenius Norm:

5.4772


1-Norm:

6


Infinity Norm:

7

Matrix Rank

The rank of a matrix is the dimension of its row or column space. For:

Matrix A:

 1   2   3
 4   5   6
 7   8   9
% Rank of a Matrix
A = [1 2 3; 4 5 6; 7 8 9];
r = rank(A); % Compute rank
disp('Rank of A:');
disp(r);

Output:

Rank of A:

2

Least Squares Solution

For overdetermined systems, the least squares method minimizes the error. Consider:

System:
2x + y = 3
 x + 2y = 4
 x +  y = 1
% Least Squares Solution
A = [2 1; 1 2; 1 1];
b = [3; 4; 1];
x_ls = A \ b; % Solve using least squares
disp('Least Squares Solution:');
disp(x_ls);

Output:

Least Squares Solution:

 0.3846
 1.3846

Useful MATLAB Functions

Function
Explanation
eig
eig(A) computes the eigenvalues and eigenvectors of A.
svd
svd(A) computes the Singular Value Decomposition of A.
lu
lu(A) performs LU decomposition of A.
qr
qr(A) performs QR decomposition of A.
\
A \ b solves the system of linear equations Ax = b.

Practice Problems

Test Yourself

1. Perform LU decomposition on a 3×3 matrix and verify the result.

2. Find the eigenvalues and eigenvectors of a symmetric matrix.

3. Solve the system of equations using QR decomposition.

4. Compute the SVD of a 3×2 matrix and explain the significance of the singular values.

5. Perform Cholesky decomposition on a symmetric positive definite matrix and verify the result.

6. Compute the determinant of a 4×4 matrix and check if it is invertible.

7. Find the pseudoinverse of a rectangular matrix and verify the property A * pinv(A) * A = A.

8. Compute the rank and norms (Frobenius, 1-norm, infinity norm) of a random 3×3 matrix.

9. Solve an overdetermined system using the least squares method.