null#

Purpose#

Computes an orthonormal basis for the (right) null space of a matrix.

Format#

b = null(x)#
Parameters:

x (NxM matrix) – data

Returns:

b (MxK matrix) –

where K is the nullity of x, such that:

// NxK matrix of 0's
x * b = 0

and

// MxM identity matrix
b'b = I

The error returns are returned in b:

error code

reason

1

there is no null space

2

b is too large to return in a single matrix

Use scalerr() to test for error returns.

Examples#

let x[2, 4] = 2 1 3 -1
             3 5 1  2;

b = null(x);
z = x*b;
i = b'b;

After the code above:

    -0.804  0.142
b =  0.331 -0.473  z = 0  0  i = 1  0
     0.473  0.331      0  0      0  1
     0.142  0.804

Remarks#

The orthogonal complement of the column space of x’ is computed using the QR decomposition. This provides an orthonormal basis for the null space of x.

Globals#

_qrdc, _qrsl

Source#

null.src