Mercurial > hg > octave-lyh
comparison scripts/linear-algebra/rank.m @ 2303:5cffc4b8de57
[project @ 1996-06-24 09:15:24 by jwe]
author | jwe |
---|---|
date | Mon, 24 Jun 1996 09:15:24 +0000 |
parents | 5d29638dd524 |
children | 2b5788792cad |
comparison
equal
deleted
inserted
replaced
2302:470c856bf55a | 2303:5cffc4b8de57 |
---|---|
1 # Copyright (C) 1996 John W. Eaton | 1 ### Copyright (C) 1996 John W. Eaton |
2 # | 2 ### |
3 # This file is part of Octave. | 3 ### This file is part of Octave. |
4 # | 4 ### |
5 # Octave is free software; you can redistribute it and/or modify it | 5 ### Octave is free software; you can redistribute it and/or modify it |
6 # under the terms of the GNU General Public License as published by the | 6 ### under the terms of the GNU General Public License as published by |
7 # Free Software Foundation; either version 2, or (at your option) any | 7 ### the Free Software Foundation; either version 2, or (at your option) |
8 # later version. | 8 ### any later version. |
9 # | 9 ### |
10 # Octave is distributed in the hope that it will be useful, but WITHOUT | 10 ### Octave is distributed in the hope that it will be useful, but |
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 11 ### WITHOUT ANY WARRANTY; without even the implied warranty of |
12 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | 12 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 # for more details. | 13 ### General Public License for more details. |
14 # | 14 ### |
15 # You should have received a copy of the GNU General Public License | 15 ### You should have received a copy of the GNU General Public License |
16 # along with Octave; see the file COPYING. If not, write to the Free | 16 ### along with Octave; see the file COPYING. If not, write to the Free |
17 # Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 ### Software Foundation, 59 Temple Place - Suite 330, Boston, MA |
18 ### 02111-1307, USA. | |
18 | 19 |
19 function retval = rank (A, tol) | 20 function retval = rank (A, tol) |
20 | 21 |
21 # usage: rank (a, tol) | 22 ## usage: rank (a, tol) |
22 # | 23 ## |
23 # Return the rank of the matrix a. The rank is taken to be the number | 24 ## Return the rank of the matrix a. The rank is taken to be the number |
24 # of singular values of a that are greater than tol. | 25 ## of singular values of a that are greater than tol. |
25 # | 26 ## |
26 # If the second argument is omitted, it is taken to be | 27 ## If the second argument is omitted, it is taken to be |
27 # | 28 ## |
28 # tol = max (size (a)) * sigma (1) * eps; | 29 ## tol = max (size (a)) * sigma (1) * eps; |
29 # | 30 ## |
30 # where eps is machine precision and sigma is the largest singular | 31 ## where eps is machine precision and sigma is the largest singular |
31 # value of a. | 32 ## value of a. |
32 | 33 |
33 if (nargin == 1) | 34 if (nargin == 1) |
34 sigma = svd (A); | 35 sigma = svd (A); |
35 tolerance = max (size (A)) * sigma (1) * eps; | 36 tolerance = max (size (A)) * sigma (1) * eps; |
36 elseif (nargin == 2) | 37 elseif (nargin == 2) |