>> % MATLAB Recitation Demo for Monday, September 29.
>> % File: rdemo4
>> %
>> % *** Computing bases for the 4 fundamental subspaces
>> % *** of the matrix A.
>> %
>> % *** Reminder: From the Athena Dash menu, start MATLAB using
>> % *** Courseware / 18 Mathematics / 18.06 / 18.06 MATLAB
>> % *** Otherwise, MATLAB will not be able to find the new
>> % *** command "nullbasis" - which is used below.
>> %
>> % The MATLAB command basis(A) computes a matrix whose
>> % columns are a basis for the column space of A.
>> % The MATLAB command nullbasis(A) computes a matrix whose
>> % columns are a basis for the nullspace of A.
>> % The PA = LU factorization is used to obtain the row space of A
>> % via the pivot rows of U.
>> %
>> diary rdemo4
>>
>> % Let's enter a matrix with 3 rows and 5 columns, and compute
>> % bases for its column space, nullspace, row space and left
>> % nullspace.
>> %
>> A = [-1 3 8 -2 1;
-1 3 9 -1 3;
1 -3 -9 1 -3]
A =
-1 3 8 -2 1
-1 3 9 -1 3
1 -3 -9 1 -3
>> [m, n] = size(A)
m =
3
n =
5
>> r = rank(A)
r =
2
>> help plu
PLU Pivoting, rectangular, LU factorization.
[P,L,U] = PLU(A), for a rectangular matrix A, uses Gaussian elimination
to compute a permutation matrix P, a lower triangular matrix L and
an upper trapezoidal matrix U so that L*U = P*A.
U is the same size as A. P and L are square, with as many rows as A.
See also SLU, LU, REF, SOLVE, NULL, BASIS.
>> [P, L, U] = plu(A)
Pivots in columns:
1 3
No pivots in columns:
2 4 5
Pivots in rows:
1 2
P =
1 0 0
0 1 0
0 0 1
L =
1 0 0
1 1 0
-1 -1 1
U =
-1 3 8 -2 1
0 0 1 1 2
0 0 0 0 0
>> colspace = basis(A)
rank =
2
colspace =
-1 8
-1 9
1 -9
>> nullspace = nullbasis(A)
nullspace =
3 -10 -15
1 0 0
0 -1 -2
0 1 0
0 0 1
>> % The pivot rows of U are a basis for
>> % the row space of A.
>> %
>> rowspace = [U(1,:)' U(2,:)' ]
rowspace =
-1 0
3 0
8 1
-2 1
1 2
>> leftnull = nullbasis(A')
leftnull =
0
1
1
>> diary off