CHAPTER 2: MATRIX COMPUTATIONS AND LINEAR ALGEBRA

 

Lecture 2.3: MATLAB linear algebra

 

Linear systems of m equations for n unknowns:

 

a11 x1 + a12 x2 + … + a1n xn = b1

a21 x1 + a22 x2 + … + a2n xn = b2

. . .

am1 x1 + am2 x2 + … + amn xn = bm

 

·         m = n: a square system with a square matrix A (it has typically a unique solution)

·         m < n: underdetermined system (it has typically infinitely many solutions)

·         m > n: overdetermined system (it has typically no solutions)

 

Example:

 

A = , b = . The unique solution exists: x1 = 0.2, x2 = -0.8.

 

MATLAB operations and functions:

·         "/", "\": matrix divisions (solutions of a linear system)

 

 A = [ 3 2 ; 1, -1]; b = [-1 ; 1];

x = A \ b % the column-oriented solution of a linear system

dif = A*x – b   % check that the solution x is correct

 

x =  0.2000

     -0.8000

dif =    0

          0  

 

AA = [3 1; 2,-1]; bb = [-1,1]; % transposed matrices A and b

xx = bb/AA % the row-oriented solution of a linear system  

dif = xx*AA-bb % check that the solution x is correct  

 

xx =    0.2000   -0.8000

dif =     0     0  

 

·         inv: matrix inversion (B is the inverse of A if B*A = I)

 

 A = [ 3 2 ; 1, -1]; B = inv(A), BB = A^(-1) % two equivalent operations

  I1 = B*A, I2 = A*B % check that B is the inverse of A 

 

B =    0.2000    0.4000

       0.2000   -0.6000

BB =      0.2000    0.4000

       0.2000   -0.6000

I1 =   1.0000   -0.0000

          0    1.0000

I2 =  1.0000         0

     -0.0000    1.0000  

 

·         det: computes the matrix determinant (det A = a11*a22 – a12*a21 for a 2-by-2 matrix A)

·         trace:  computes the sum of the diagonal elements of a matrix (the trace)

·         rref: computes the row reduced echelon form of a matrix

·         rank: computes the number of linearly independent rows or columns of a matrix (the rank)

·         null: computes a basis of eiegenvectors for the homogeneous equation A*x = 0

·         eig: computes eigenvalues and eigenvectors of the linear problem A*x = *x

 

  D = det(A), T = trace(A), R = rank(A)  

 

D =    -5

T =     2

R =     2  

 

  % Alternative computations of solutions of linear systems via A^(-1)

A = [ 3 2 ; 1, -1]; b = [-1 ; 1];

x = inv(A)*b % it is less efficient because of larger computational time  

 

x =    0.2000

      -0.8000  

 

% Alternative computations of solutions by using the Cramer's rule

  A1 = [ b, A(:,2) ], A2 = [  A(:,1), b], clear x

  x(1) = det(A1)/det(A), x(2) = det(A2)/det(A)

 

A1 =      -1     2

        1    -1

A2 = 3    -1

       1     1

x =    0.2000

x =    0.2000   -0.8000  

 

% Alternative computations of solutions by using the augmented matrix [A,b]

Rrow = rref([A,b])  

 

Rrow =   1.0000   0         0.2000

         0         1.0000   -0.8000  

 

[V,D] = eig(A)

% D: diagonal matrix of eigenvalues

% V: fundamental matrix of eigenvectors

% V^(-1)*A*V = D: diagonalization formula

Dif = V^(-1)*A*V - D  

 

V =  0.9757   -0.4100

      0.2193    0.9121

D =    3.4495      0

           0   -1.4495

Dif =  1.0e-015 *

          -0.8882    0.2220

           0.2776         0  

 

N = null(A) % null-space is the basis of eigenvectors for zero eigenvalues  

 

N =

   Empty matrix: 2-by-0  

Types of solutions of linear systems:

 

·         A linear square system of linear equations has a unique solution iff det(A) 0.

·         When det(A) = 0, the linear system may have infinitely many solutions or no solutions at all.

·         If det(A) 0, the inverse matrix A^(-1) exists and A is called a non-singular matrix.

·         If det(A) = 0, inv(A) does not exist and A is called a singular matrix. The MATLAB linear algebra solvers A\b or b/A do not produce any valuable solution, if A is singular.

 

   A1 = [ -1,1; -2,2]; b1 = [1 ; 0];

% the system is inconsistent and has no solution

 x1 = A1\b1, B1 = inv(A1), D1 = det(A1)   

 

Warning: Matrix is singular to working precision.

x1 =      Inf

     Inf

Warning: Matrix is singular to working precision.

B1 =   Inf   Inf

     Inf   Inf

D1 =  0  

 

   A2 = [ -1,1; -2,2]; b2 = [1 ; 2];

% the second equation is redundant

% the system has infinitely many solutions: x(2) = 1 + x(1)

 x2 = A2\b2

 A3 = [ -1, 1 ]; b3 = [ 1 ]; % the second equation is removed

 x3 = A3\b3   

 

Warning: Matrix is singular to working precision.

x2 =   Inf

       Inf

x3 =   -1

    0  

 

 % comparison of properties of non-singular matrix A versus singular matrix A1

S1 = rref(A) % non-singular matrix has the identity matrix in RREF

S2 = rref(A1) % a singular matrix has zeros in one or more rows in RREF

S1 =      1     0

          0     1

S2 =     1    -1

          0     0  

R1 = rank(A1) % singular matrices have rank smaller than 2

N1 = null(A1) % the null-space of singular matrices is non-empty

[V1,D1] = eig(A1) % singular matrices have zero eigenvalues  

 

R1 =     1

N1 =      0.7071

          0.7071

V1 =   -0.7071   -0.4472

        -0.7071   -0.8944

D1 =     0     0

            0     1  

Rrow1 = rref([A2,b2]) % accurate solution of the system with singular matrices  

 

Rrow1 =    1    -1    -1

            0     0     0