10

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.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
worbel
  • 6,509
  • 13
  • 53
  • 63

4 Answers4

14

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.

Jacob
  • 34,255
  • 14
  • 110
  • 165
10

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.

Peter
  • 127,331
  • 53
  • 180
  • 211
  • My rank(A) = # cols. How does one "lessen" the value of the rank ? Also null(A) = Empty matrix: 12-by-0. – worbel Oct 04 '09 at 20:04
  • You should look into low rank approximations. You can use the SVD for this. – Peter Oct 04 '09 at 22:16
1

You can see if MATLAB has a singular value decomposition in its toolbox. That will give you the null space of the vector.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
duffymo
  • 305,152
  • 44
  • 369
  • 561
0

null(A) will give you the direct answer. If you need a nontrivial solution, try reduced row echelon form and refer the first page of the pdf.

R = rref(A)

http://www.math.colostate.edu/~gerhard/M345/CHP/ch7_4.pdf

Miae Kim
  • 1,713
  • 19
  • 21