How does one solve the (non-trivial) solution Ax = 0 for x in MATLAB?
A = matrix
x = matrix trying to solve for
I've tried solve('A * x = 0', 'x') but I only get 0 for an answer.
How does one solve the (non-trivial) solution Ax = 0 for x in MATLAB?
A = matrix
x = matrix trying to solve for
I've tried solve('A * x = 0', 'x') but I only get 0 for an answer.
You can use N = null(A)
to get a matrix N
. Any of the columns of N
(or, indeed, any linear combination of columns of N
) will satisfy Ax = 0
. This describes all possible such x
- you've just found an orthogonal basis for the nullspace of A
.
Note: you can only find such an x
if A
has non-trivial nullspace. This will occur if rank(A) < #cols of A
.
You can see if MATLAB has a singular value decomposition in its toolbox. That will give you the null space of the vector.
Please note that null(A) does the same thing (for a rank-deficient matrix) as the following, but this is using the svd(A)
function in MATLAB (which as I've mentioned in my comments is what null(A)
does).
[U S V] = svd(A);
x = V(:,end)
For more about this, here's an link related to this (can't post it to here due to the formulae).
If you want a more intuitive feel of singular and eigenvalue decompositions check out eigshow
in MATLAB.