Mercurial > octave-antonio
annotate scripts/special-matrix/vander.m @ 20162:2645f9ef8c88 stable
doc: Update more docstrings to have one sentence summary as first line.
Reviewed specfun, special-matrix, testfun, and time script directories.
* scripts/specfun/expint.m, scripts/specfun/isprime.m,
scripts/specfun/legendre.m, scripts/specfun/primes.m,
scripts/specfun/reallog.m, scripts/specfun/realsqrt.m,
scripts/special-matrix/gallery.m, scripts/special-matrix/hadamard.m,
scripts/special-matrix/hankel.m, scripts/special-matrix/hilb.m,
scripts/special-matrix/invhilb.m, scripts/special-matrix/magic.m,
scripts/special-matrix/pascal.m, scripts/special-matrix/rosser.m,
scripts/special-matrix/toeplitz.m, scripts/special-matrix/vander.m,
scripts/special-matrix/wilkinson.m, scripts/testfun/assert.m,
scripts/testfun/demo.m, scripts/testfun/example.m, scripts/testfun/fail.m,
scripts/testfun/rundemos.m, scripts/testfun/runtests.m,
scripts/testfun/speed.m, scripts/time/asctime.m, scripts/time/calendar.m,
scripts/time/clock.m, scripts/time/ctime.m, scripts/time/datenum.m,
scripts/time/datestr.m, scripts/time/datevec.m, scripts/time/etime.m,
scripts/time/is_leap_year.m, scripts/time/now.m, scripts/time/weekday.m:
Update more docstrings to have one sentence summary as first line.
author | Rik <rik@octave.org> |
---|---|
date | Sun, 03 May 2015 17:00:11 -0700 |
parents | 4197fc428c7d |
children |
rev | line source |
---|---|
19697
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
1 ## Copyright (C) 1993-2015 John W. Eaton |
9104 | 2 ## Copyright (C) 2009 VZLU Prague |
2313 | 3 ## |
4 ## This file is part of Octave. | |
5 ## | |
6 ## Octave is free software; you can redistribute it and/or modify it | |
7 ## under the terms of the GNU General Public License as published by | |
7016 | 8 ## the Free Software Foundation; either version 3 of the License, or (at |
9 ## your option) any later version. | |
2313 | 10 ## |
11 ## Octave is distributed in the hope that it will be useful, but | |
12 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 ## General Public License for more details. | |
15 ## | |
16 ## You should have received a copy of the GNU General Public License | |
7016 | 17 ## along with Octave; see the file COPYING. If not, see |
18 ## <http://www.gnu.org/licenses/>. | |
245 | 19 |
3369 | 20 ## -*- texinfo -*- |
10791
3140cb7a05a1
Add spellchecker scripts for Octave and run spellcheck of documentation
Rik <octave@nomad.inbox5.com>
parents:
9211
diff
changeset
|
21 ## @deftypefn {Function File} {} vander (@var{c}) |
3140cb7a05a1
Add spellchecker scripts for Octave and run spellcheck of documentation
Rik <octave@nomad.inbox5.com>
parents:
9211
diff
changeset
|
22 ## @deftypefnx {Function File} {} vander (@var{c}, @var{n}) |
3369 | 23 ## Return the Vandermonde matrix whose next to last column is @var{c}. |
20162
2645f9ef8c88
doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
24 ## |
2645f9ef8c88
doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
25 ## If @var{n} is specified, it determines the number of columns; otherwise, |
2645f9ef8c88
doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
26 ## @var{n} is taken to be equal to the length of @var{c}. |
3426 | 27 ## |
5016 | 28 ## A Vandermonde matrix has the form: |
3369 | 29 ## @tex |
30 ## $$ | |
5016 | 31 ## \left[\matrix{c_1^{n-1} & \cdots & c_1^2 & c_1 & 1 \cr |
32 ## c_2^{n-1} & \cdots & c_2^2 & c_2 & 1 \cr | |
33 ## \vdots & \ddots & \vdots & \vdots & \vdots \cr | |
34 ## c_n^{n-1} & \cdots & c_n^2 & c_n & 1 }\right] | |
3369 | 35 ## $$ |
36 ## @end tex | |
8517
81d6ab3ac93c
Allow documentation tobe built for other formats than tex and info
sh@sh-laptop
parents:
7411
diff
changeset
|
37 ## @ifnottex |
3426 | 38 ## |
3369 | 39 ## @example |
40 ## @group | |
9041
853f96e8008f
Cleanup documentation file matrix.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
41 ## c(1)^(n-1) @dots{} c(1)^2 c(1) 1 |
853f96e8008f
Cleanup documentation file matrix.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
42 ## c(2)^(n-1) @dots{} c(2)^2 c(2) 1 |
5016 | 43 ## . . . . . |
44 ## . . . . . | |
45 ## . . . . . | |
9041
853f96e8008f
Cleanup documentation file matrix.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
46 ## c(n)^(n-1) @dots{} c(n)^2 c(n) 1 |
3369 | 47 ## @end group |
48 ## @end example | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10791
diff
changeset
|
49 ## |
8517
81d6ab3ac93c
Allow documentation tobe built for other formats than tex and info
sh@sh-laptop
parents:
7411
diff
changeset
|
50 ## @end ifnottex |
12639
4d777e05d47c
doc: Review and update documentation for "Matrix Manipulation" chapter.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
51 ## @seealso{polyfit} |
3369 | 52 ## @end deftypefn |
4 | 53 |
2314 | 54 ## Author: jwe |
55 | |
9137
eebc7f8e7398
extend vander to allow specified number of columns
Jaroslav Hajek <highegg@gmail.com>
parents:
9104
diff
changeset
|
56 function retval = vander (c, n) |
4 | 57 |
9137
eebc7f8e7398
extend vander to allow specified number of columns
Jaroslav Hajek <highegg@gmail.com>
parents:
9104
diff
changeset
|
58 if (nargin == 1) |
eebc7f8e7398
extend vander to allow specified number of columns
Jaroslav Hajek <highegg@gmail.com>
parents:
9104
diff
changeset
|
59 n = length (c); |
eebc7f8e7398
extend vander to allow specified number of columns
Jaroslav Hajek <highegg@gmail.com>
parents:
9104
diff
changeset
|
60 elseif (nargin != 2) |
6046 | 61 print_usage (); |
4 | 62 endif |
63 | |
13881
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
64 if (! isvector (c)) |
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
65 error ("vander: polynomial C must be a vector"); |
4 | 66 endif |
67 | |
13881
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
68 ## avoiding many ^s appears to be faster for n >= 100. |
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
69 retval = zeros (length (c), n, class (c)); |
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
70 d = 1; |
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
71 c = c(:); |
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
72 for i = n:-1:1 |
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
73 retval(:,i) = d; |
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
74 d .*= c; |
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
75 endfor |
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
76 |
4 | 77 endfunction |
7387 | 78 |
13881
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
79 |
7387 | 80 %!test |
81 %! c = [0,1,2,3]; | |
82 %! expect = [0,0,0,1; 1,1,1,1; 8,4,2,1; 27,9,3,1]; | |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
83 %! assert (vander (c), expect); |
7411 | 84 |
13881
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
85 %!assert (vander (1), 1) |
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
86 %!assert (vander ([1, 2, 3]), vander ([1; 2; 3])) |
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
87 %!assert (vander ([1, 2, 3]), [1, 1, 1; 4, 2, 1; 9, 3, 1]) |
da929884f51e
vander.m: Update coding style
Rik <octave@nomad.inbox5.com>
parents:
12639
diff
changeset
|
88 %!assert (vander ([1, 2, 3]*i), [-1, i, 1; -4, 2i, 1; -9, 3i, 1]) |
7411 | 89 |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
90 %!assert (vander (2, 3), [4, 2, 1]) |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
91 %!assert (vander ([2, 3], 3), [4, 2, 1; 9, 3, 1]) |
9140 | 92 |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
93 %!error vander () |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
94 %!error vander (1, 2, 3) |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
95 %!error <polynomial C must be a vector> vander ([1, 2; 3, 4]) |
7411 | 96 |