Mercurial > octave-nkf
annotate doc/interpreter/poly.txi @ 20595:c1a6c31ac29a
eliminate more simple uses of error_state
* ov-classdef.cc: Eliminate simple uses of error_state.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 06 Oct 2015 00:20:02 -0400 |
parents | 4197fc428c7d |
children |
rev | line source |
---|---|
19731
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19627
diff
changeset
|
1 @c Copyright (C) 1996-2015 John W. Eaton |
7018 | 2 @c |
3 @c This file is part of Octave. | |
4 @c | |
5 @c Octave is free software; you can redistribute it and/or modify it | |
6 @c under the terms of the GNU General Public License as published by the | |
7 @c Free Software Foundation; either version 3 of the License, or (at | |
8 @c your option) any later version. | |
19627
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
9 @c |
7018 | 10 @c Octave is distributed in the hope that it will be useful, but WITHOUT |
11 @c ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
12 @c FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
13 @c for more details. | |
19627
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
14 @c |
7018 | 15 @c You should have received a copy of the GNU General Public License |
16 @c along with Octave; see the file COPYING. If not, see | |
17 @c <http://www.gnu.org/licenses/>. | |
3294 | 18 |
4167 | 19 @node Polynomial Manipulations |
3294 | 20 @chapter Polynomial Manipulations |
21 | |
22 In Octave, a polynomial is represented by its coefficients (arranged | |
6850 | 23 in descending order). For example, a vector @var{c} of length |
24 @math{N+1} corresponds to the following polynomial of order | |
3294 | 25 @tex |
26 $N$ | |
27 $$ | |
6850 | 28 p (x) = c_1 x^N + \ldots + c_N x + c_{N+1}. |
3294 | 29 $$ |
30 @end tex | |
10668
72585f1ca7a2
Replace @ifinfo with @ifnottex.
Rik <octave@nomad.inbox5.com>
parents:
10224
diff
changeset
|
31 @ifnottex |
3294 | 32 @var{N} |
33 | |
34 @example | |
9070
e9dc2ed2ec0f
Cleanup documentation for poly.texi, interp.texi, geometry.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
35 p(x) = @var{c}(1) x^@var{N} + @dots{} + @var{c}(@var{N}) x + @var{c}(@var{N}+1). |
3294 | 36 @end example |
10828
322f43e0e170
Grammarcheck .txi documentation files.
Rik <octave@nomad.inbox5.com>
parents:
10668
diff
changeset
|
37 |
10668
72585f1ca7a2
Replace @ifinfo with @ifnottex.
Rik <octave@nomad.inbox5.com>
parents:
10224
diff
changeset
|
38 @end ifnottex |
3294 | 39 |
6850 | 40 @menu |
41 * Evaluating Polynomials:: | |
42 * Finding Roots:: | |
43 * Products of Polynomials:: | |
11538
6eded7561d9d
Add undocumented polyaffine function to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11536
diff
changeset
|
44 * Derivatives / Integrals / Transforms:: |
6850 | 45 * Polynomial Interpolation:: |
46 * Miscellaneous Functions:: | |
47 @end menu | |
48 | |
49 @node Evaluating Polynomials | |
50 @section Evaluating Polynomials | |
51 | |
52 The value of a polynomial represented by the vector @var{c} can be evaluated | |
8828 | 53 at the point @var{x} very easily, as the following example shows: |
6850 | 54 |
55 @example | |
9070
e9dc2ed2ec0f
Cleanup documentation for poly.texi, interp.texi, geometry.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
56 @group |
14856
c3fd61c59e9c
maint: Use Octave coding conventions for cuddling parentheses in doc directory
Rik <octave@nomad.inbox5.com>
parents:
14853
diff
changeset
|
57 N = length (c) - 1; |
c3fd61c59e9c
maint: Use Octave coding conventions for cuddling parentheses in doc directory
Rik <octave@nomad.inbox5.com>
parents:
14853
diff
changeset
|
58 val = dot (x.^(N:-1:0), c); |
9070
e9dc2ed2ec0f
Cleanup documentation for poly.texi, interp.texi, geometry.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
59 @end group |
6850 | 60 @end example |
61 | |
62 @noindent | |
63 While the above example shows how easy it is to compute the value of a | |
64 polynomial, it isn't the most stable algorithm. With larger polynomials | |
65 you should use more elegant algorithms, such as Horner's Method, which | |
66 is exactly what the Octave function @code{polyval} does. | |
67 | |
68 In the case where @var{x} is a square matrix, the polynomial given by | |
69 @var{c} is still well-defined. As when @var{x} is a scalar the obvious | |
70 implementation is easily expressed in Octave, but also in this case | |
71 more elegant algorithms perform better. The @code{polyvalm} function | |
72 provides such an algorithm. | |
73 | |
74 @DOCSTRING(polyval) | |
75 | |
76 @DOCSTRING(polyvalm) | |
77 | |
78 @node Finding Roots | |
79 @section Finding Roots | |
80 | |
81 Octave can find the roots of a given polynomial. This is done by computing | |
82 the companion matrix of the polynomial (see the @code{compan} function | |
83 for a definition), and then finding its eigenvalues. | |
84 | |
85 @DOCSTRING(roots) | |
86 | |
15186
504fec921af5
polyeig: new function
Fotios Kasolis <fotios.kasolis@gmail.com>
parents:
14856
diff
changeset
|
87 @DOCSTRING(polyeig) |
504fec921af5
polyeig: new function
Fotios Kasolis <fotios.kasolis@gmail.com>
parents:
14856
diff
changeset
|
88 |
3368 | 89 @DOCSTRING(compan) |
3294 | 90 |
8286
6f2d95255911
fix @seealso references to point to existing anchors
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7640
diff
changeset
|
91 @DOCSTRING(mpoles) |
6f2d95255911
fix @seealso references to point to existing anchors
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7640
diff
changeset
|
92 |
6850 | 93 @node Products of Polynomials |
94 @section Products of Polynomials | |
95 | |
3368 | 96 @DOCSTRING(conv) |
3294 | 97 |
7640 | 98 @DOCSTRING(convn) |
99 | |
3368 | 100 @DOCSTRING(deconv) |
3294 | 101 |
6549 | 102 @DOCSTRING(conv2) |
103 | |
6850 | 104 @DOCSTRING(polygcd) |
105 | |
106 @DOCSTRING(residue) | |
107 | |
11538
6eded7561d9d
Add undocumented polyaffine function to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11536
diff
changeset
|
108 @node Derivatives / Integrals / Transforms |
6eded7561d9d
Add undocumented polyaffine function to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11536
diff
changeset
|
109 @section Derivatives / Integrals / Transforms |
6850 | 110 |
111 Octave comes with functions for computing the derivative and the integral | |
13963
663594b481e5
doc: Remove documentation references to deprecated functions cut() and polyderiv()
Rik <octave@nomad.inbox5.com>
parents:
11538
diff
changeset
|
112 of a polynomial. The functions @code{polyder} and @code{polyint} |
6850 | 113 both return new polynomials describing the result. As an example we'll |
114 compute the definite integral of @math{p(x) = x^2 + 1} from 0 to 3. | |
115 | |
116 @example | |
9070
e9dc2ed2ec0f
Cleanup documentation for poly.texi, interp.texi, geometry.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
117 @group |
6850 | 118 c = [1, 0, 1]; |
14856
c3fd61c59e9c
maint: Use Octave coding conventions for cuddling parentheses in doc directory
Rik <octave@nomad.inbox5.com>
parents:
14853
diff
changeset
|
119 integral = polyint (c); |
c3fd61c59e9c
maint: Use Octave coding conventions for cuddling parentheses in doc directory
Rik <octave@nomad.inbox5.com>
parents:
14853
diff
changeset
|
120 area = polyval (integral, 3) - polyval (integral, 0) |
6850 | 121 @result{} 12 |
9070
e9dc2ed2ec0f
Cleanup documentation for poly.texi, interp.texi, geometry.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
122 @end group |
6850 | 123 @end example |
3294 | 124 |
6502 | 125 @DOCSTRING(polyder) |
126 | |
6898 | 127 @DOCSTRING(polyint) |
3294 | 128 |
11538
6eded7561d9d
Add undocumented polyaffine function to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11536
diff
changeset
|
129 @DOCSTRING(polyaffine) |
6eded7561d9d
Add undocumented polyaffine function to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11536
diff
changeset
|
130 |
6850 | 131 @node Polynomial Interpolation |
132 @section Polynomial Interpolation | |
3294 | 133 |
6850 | 134 Octave comes with good support for various kinds of interpolation, |
135 most of which are described in @ref{Interpolation}. One simple alternative | |
136 to the functions described in the aforementioned chapter, is to fit | |
14509 | 137 a single polynomial, or a piecewise polynomial (spline) to some given |
138 data points. To avoid a highly fluctuating polynomial, one most often | |
139 wants to fit a low-order polynomial to data. This usually means that it | |
140 is necessary to fit the polynomial in a least-squares sense, which just | |
141 is what the @code{polyfit} function does. | |
3294 | 142 |
6850 | 143 @DOCSTRING(polyfit) |
3294 | 144 |
6850 | 145 In situations where a single polynomial isn't good enough, a solution |
14509 | 146 is to use several polynomials pieced together. The function |
147 @code{splinefit} fits a peicewise polynomial (spline) to a set of | |
148 data. | |
149 | |
150 @DOCSTRING(splinefit) | |
151 | |
152 The number of @var{breaks} (or knots) used to construct the piecewise | |
153 polynomial is a significant factor in suppressing the noise present in | |
14853
72b8b39e12be
doc: Periodic grammarcheck of documentation.
Rik <octave@nomad.inbox5.com>
parents:
14551
diff
changeset
|
154 the input data, @var{x} and @var{y}. This is demonstrated by the example |
14509 | 155 below. |
156 | |
157 @example | |
158 @group | |
159 x = 2 * pi * rand (1, 200); | |
160 y = sin (x) + sin (2 * x) + 0.2 * randn (size (x)); | |
161 ## Uniform breaks | |
162 breaks = linspace (0, 2 * pi, 41); % 41 breaks, 40 pieces | |
163 pp1 = splinefit (x, y, breaks); | |
164 ## Breaks interpolated from data | |
165 pp2 = splinefit (x, y, 10); % 11 breaks, 10 pieces | |
166 ## Plot | |
167 xx = linspace (0, 2 * pi, 400); | |
168 y1 = ppval (pp1, xx); | |
169 y2 = ppval (pp2, xx); | |
170 plot (x, y, ".", xx, [y1; y2]) | |
171 axis tight | |
172 ylim auto | |
173 legend (@{"data", "41 breaks, 40 pieces", "11 breaks, 10 pieces"@}) | |
174 @end group | |
175 @end example | |
176 | |
177 @ifnotinfo | |
178 @noindent | |
179 The result of which can be seen in @ref{fig:splinefit1}. | |
180 | |
181 @float Figure,fig:splinefit1 | |
182 @center @image{splinefit1,4in} | |
183 @caption{Comparison of a fitting a piecewise polynomial with 41 breaks to one | |
14853
72b8b39e12be
doc: Periodic grammarcheck of documentation.
Rik <octave@nomad.inbox5.com>
parents:
14551
diff
changeset
|
184 with 11 breaks. The fit with the large number of breaks exhibits a fast ripple |
14509 | 185 that is not present in the underlying function.} |
186 @end float | |
187 @end ifnotinfo | |
188 | |
14853
72b8b39e12be
doc: Periodic grammarcheck of documentation.
Rik <octave@nomad.inbox5.com>
parents:
14551
diff
changeset
|
189 The piecewise polynomial fit, provided by @code{splinefit}, has |
72b8b39e12be
doc: Periodic grammarcheck of documentation.
Rik <octave@nomad.inbox5.com>
parents:
14551
diff
changeset
|
190 continuous derivatives up to the @var{order}-1. For example, a cubic fit |
72b8b39e12be
doc: Periodic grammarcheck of documentation.
Rik <octave@nomad.inbox5.com>
parents:
14551
diff
changeset
|
191 has continuous first and second derivatives. This is demonstrated by |
14551
60ed9260399a
Improve/correct documentation for splinefit.m
Ben Abbott <bpabbott@mac.com>
parents:
14531
diff
changeset
|
192 the code |
14509 | 193 |
194 @example | |
195 ## Data (200 points) | |
196 x = 2 * pi * rand (1, 200); | |
197 y = sin (x) + sin (2 * x) + 0.1 * randn (size (x)); | |
198 ## Piecewise constant | |
199 pp1 = splinefit (x, y, 8, "order", 0); | |
200 ## Piecewise linear | |
201 pp2 = splinefit (x, y, 8, "order", 1); | |
202 ## Piecewise quadratic | |
203 pp3 = splinefit (x, y, 8, "order", 2); | |
204 ## Piecewise cubic | |
205 pp4 = splinefit (x, y, 8, "order", 3); | |
206 ## Piecewise quartic | |
207 pp5 = splinefit (x, y, 8, "order", 4); | |
208 ## Plot | |
209 xx = linspace (0, 2 * pi, 400); | |
210 y1 = ppval (pp1, xx); | |
211 y2 = ppval (pp2, xx); | |
212 y3 = ppval (pp3, xx); | |
213 y4 = ppval (pp4, xx); | |
214 y5 = ppval (pp5, xx); | |
215 plot (x, y, ".", xx, [y1; y2; y3; y4; y5]) | |
216 axis tight | |
217 ylim auto | |
218 legend (@{"data", "order 0", "order 1", "order 2", "order 3", "order 4"@}) | |
219 @end example | |
220 | |
221 @ifnotinfo | |
222 @noindent | |
223 The result of which can be seen in @ref{fig:splinefit2}. | |
224 | |
225 @float Figure,fig:splinefit2 | |
226 @center @image{splinefit2,4in} | |
227 @caption{Comparison of a piecewise constant, linear, quadratic, cubic, and | |
14853
72b8b39e12be
doc: Periodic grammarcheck of documentation.
Rik <octave@nomad.inbox5.com>
parents:
14551
diff
changeset
|
228 quartic polynomials with 8 breaks to noisy data. The higher order solutions |
14509 | 229 more accurately represent the underlying function, but come with the |
230 expense of computational complexity.} | |
231 @end float | |
232 @end ifnotinfo | |
233 | |
14531
8985cbbd2fe4
doc: Periodic spellcheck of documentation
Rik <octave@nomad.inbox5.com>
parents:
14509
diff
changeset
|
234 When the underlying function to provide a fit to is periodic, @code{splinefit} |
14509 | 235 is able to apply the boundary conditions needed to manifest a periodic fit. |
236 This is demonstrated by the code below. | |
237 | |
238 @example | |
239 @group | |
240 ## Data (100 points) | |
241 x = 2 * pi * [0, (rand (1, 98)), 1]; | |
242 y = sin (x) - cos (2 * x) + 0.2 * randn (size (x)); | |
243 ## No constraints | |
244 pp1 = splinefit (x, y, 10, "order", 5); | |
245 ## Periodic boundaries | |
246 pp2 = splinefit (x, y, 10, "order", 5, "periodic", true); | |
247 ## Plot | |
248 xx = linspace (0, 2 * pi, 400); | |
249 y1 = ppval (pp1, xx); | |
250 y2 = ppval (pp2, xx); | |
251 plot (x, y, ".", xx, [y1; y2]) | |
252 axis tight | |
253 ylim auto | |
254 legend (@{"data", "no constraints", "periodic"@}) | |
255 @end group | |
256 @end example | |
257 | |
258 @ifnotinfo | |
259 @noindent | |
260 The result of which can be seen in @ref{fig:splinefit3}. | |
261 | |
262 @float Figure,fig:splinefit3 | |
263 @center @image{splinefit3,4in} | |
14551
60ed9260399a
Improve/correct documentation for splinefit.m
Ben Abbott <bpabbott@mac.com>
parents:
14531
diff
changeset
|
264 @caption{Comparison of piecewise polynomial fits to a noisy periodic |
60ed9260399a
Improve/correct documentation for splinefit.m
Ben Abbott <bpabbott@mac.com>
parents:
14531
diff
changeset
|
265 function with, and without, periodic boundary conditions.} |
14509 | 266 @end float |
267 @end ifnotinfo | |
268 | |
14853
72b8b39e12be
doc: Periodic grammarcheck of documentation.
Rik <octave@nomad.inbox5.com>
parents:
14551
diff
changeset
|
269 More complex constraints may be added as well. For example, the code below |
72b8b39e12be
doc: Periodic grammarcheck of documentation.
Rik <octave@nomad.inbox5.com>
parents:
14551
diff
changeset
|
270 illustrates a periodic fit with values that have been clamped at the endpoints, |
72b8b39e12be
doc: Periodic grammarcheck of documentation.
Rik <octave@nomad.inbox5.com>
parents:
14551
diff
changeset
|
271 and a second periodic fit which is hinged at the endpoints. |
14509 | 272 |
273 @example | |
274 ## Data (200 points) | |
275 x = 2 * pi * rand (1, 200); | |
276 y = sin (2 * x) + 0.1 * randn (size (x)); | |
277 ## Breaks | |
278 breaks = linspace (0, 2 * pi, 10); | |
14551
60ed9260399a
Improve/correct documentation for splinefit.m
Ben Abbott <bpabbott@mac.com>
parents:
14531
diff
changeset
|
279 ## Clamped endpoints, y = y' = 0 |
14509 | 280 xc = [0, 0, 2*pi, 2*pi]; |
281 cc = [(eye (2)), (eye (2))]; | |
282 con = struct ("xc", xc, "cc", cc); | |
283 pp1 = splinefit (x, y, breaks, "constraints", con); | |
284 ## Hinged periodic endpoints, y = 0 | |
285 con = struct ("xc", 0); | |
286 pp2 = splinefit (x, y, breaks, "constraints", con, "periodic", true); | |
287 ## Plot | |
288 xx = linspace (0, 2 * pi, 400); | |
289 y1 = ppval (pp1, xx); | |
290 y2 = ppval (pp2, xx); | |
291 plot (x, y, ".", xx, [y1; y2]) | |
292 axis tight | |
293 ylim auto | |
294 legend (@{"data", "clamped", "hinged periodic"@}) | |
295 @end example | |
296 | |
297 @ifnotinfo | |
298 @noindent | |
299 The result of which can be seen in @ref{fig:splinefit4}. | |
300 | |
301 @float Figure,fig:splinefit4 | |
302 @center @image{splinefit4,4in} | |
303 @caption{Comparison of two periodic piecewise cubic fits to a noisy periodic | |
14853
72b8b39e12be
doc: Periodic grammarcheck of documentation.
Rik <octave@nomad.inbox5.com>
parents:
14551
diff
changeset
|
304 signal. One fit has its endpoints clamped and the second has its endpoints |
14509 | 305 hinged.} |
306 @end float | |
307 @end ifnotinfo | |
308 | |
309 The @code{splinefit} function also provides the convenience of a @var{robust} | |
310 fitting, where the effect of outlying data is reduced. In the example below, | |
311 three different fits are provided. Two with differing levels of outlier | |
14531
8985cbbd2fe4
doc: Periodic spellcheck of documentation
Rik <octave@nomad.inbox5.com>
parents:
14509
diff
changeset
|
312 suppression and a third illustrating the non-robust solution. |
14509 | 313 |
314 @example | |
315 ## Data | |
316 x = linspace (0, 2*pi, 200); | |
317 y = sin (x) + sin (2 * x) + 0.05 * randn (size (x)); | |
318 ## Add outliers | |
319 x = [x, linspace(0,2*pi,60)]; | |
320 y = [y, -ones(1,60)]; | |
321 ## Fit splines with hinged conditions | |
322 con = struct ("xc", [0, 2*pi]); | |
323 ## Robust fitting, beta = 0.25 | |
324 pp1 = splinefit (x, y, 8, "constraints", con, "beta", 0.25); | |
325 ## Robust fitting, beta = 0.75 | |
326 pp2 = splinefit (x, y, 8, "constraints", con, "beta", 0.75); | |
327 ## No robust fitting | |
328 pp3 = splinefit (x, y, 8, "constraints", con); | |
329 ## Plot | |
330 xx = linspace (0, 2*pi, 400); | |
331 y1 = ppval (pp1, xx); | |
332 y2 = ppval (pp2, xx); | |
333 y3 = ppval (pp3, xx); | |
334 plot (x, y, ".", xx, [y1; y2; y3]) | |
335 legend (@{"data with outliers","robust, beta = 0.25", ... | |
336 "robust, beta = 0.75", "no robust fitting"@}) | |
337 axis tight | |
338 ylim auto | |
339 @end example | |
340 | |
341 @ifnotinfo | |
342 @noindent | |
343 The result of which can be seen in @ref{fig:splinefit6}. | |
344 | |
345 @float Figure,fig:splinefit6 | |
346 @center @image{splinefit6,4in} | |
14853
72b8b39e12be
doc: Periodic grammarcheck of documentation.
Rik <octave@nomad.inbox5.com>
parents:
14551
diff
changeset
|
347 @caption{Comparison of two different levels of robust fitting (@var{beta} = 0.25 and 0.75) to noisy data combined with outlying data. A conventional fit, without |
14551
60ed9260399a
Improve/correct documentation for splinefit.m
Ben Abbott <bpabbott@mac.com>
parents:
14531
diff
changeset
|
348 robust fitting (@var{beta} = 0) is also included.} |
14509 | 349 @end float |
350 @end ifnotinfo | |
351 | |
14531
8985cbbd2fe4
doc: Periodic spellcheck of documentation
Rik <octave@nomad.inbox5.com>
parents:
14509
diff
changeset
|
352 The function, @code{ppval}, evaluates the piecewise polynomials, created |
14509 | 353 by @code{mkpp} or other means, and @code{unmkpp} returns detailed |
354 information about the piecewise polynomial. | |
6850 | 355 |
356 The following example shows how to combine two linear functions and a | |
7001 | 357 quadratic into one function. Each of these functions is expressed |
6850 | 358 on adjoined intervals. |
3294 | 359 |
6850 | 360 @example |
9070
e9dc2ed2ec0f
Cleanup documentation for poly.texi, interp.texi, geometry.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
361 @group |
6850 | 362 x = [-2, -1, 1, 2]; |
363 p = [ 0, 1, 0; | |
364 1, -2, 1; | |
365 0, -1, 1 ]; | |
14856
c3fd61c59e9c
maint: Use Octave coding conventions for cuddling parentheses in doc directory
Rik <octave@nomad.inbox5.com>
parents:
14853
diff
changeset
|
366 pp = mkpp (x, p); |
c3fd61c59e9c
maint: Use Octave coding conventions for cuddling parentheses in doc directory
Rik <octave@nomad.inbox5.com>
parents:
14853
diff
changeset
|
367 xi = linspace (-2, 2, 50); |
c3fd61c59e9c
maint: Use Octave coding conventions for cuddling parentheses in doc directory
Rik <octave@nomad.inbox5.com>
parents:
14853
diff
changeset
|
368 yi = ppval (pp, xi); |
c3fd61c59e9c
maint: Use Octave coding conventions for cuddling parentheses in doc directory
Rik <octave@nomad.inbox5.com>
parents:
14853
diff
changeset
|
369 plot (xi, yi); |
9070
e9dc2ed2ec0f
Cleanup documentation for poly.texi, interp.texi, geometry.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
370 @end group |
6850 | 371 @end example |
6502 | 372 |
373 @DOCSTRING(mkpp) | |
374 | |
375 @DOCSTRING(unmkpp) | |
6850 | 376 |
11536
702dbd0c53f5
Add undocumented ppder, ppint, ppjumps functions to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
377 @DOCSTRING(ppval) |
702dbd0c53f5
Add undocumented ppder, ppint, ppjumps functions to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
378 |
702dbd0c53f5
Add undocumented ppder, ppint, ppjumps functions to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
379 @DOCSTRING(ppder) |
702dbd0c53f5
Add undocumented ppder, ppint, ppjumps functions to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
380 |
702dbd0c53f5
Add undocumented ppder, ppint, ppjumps functions to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
381 @DOCSTRING(ppint) |
702dbd0c53f5
Add undocumented ppder, ppint, ppjumps functions to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
382 |
702dbd0c53f5
Add undocumented ppder, ppint, ppjumps functions to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
383 @DOCSTRING(ppjumps) |
702dbd0c53f5
Add undocumented ppder, ppint, ppjumps functions to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
384 |
6850 | 385 @node Miscellaneous Functions |
386 @section Miscellaneous Functions | |
387 | |
388 @DOCSTRING(poly) | |
389 | |
390 @DOCSTRING(polyout) | |
391 | |
392 @DOCSTRING(polyreduce) | |
393 | |
394 | |
8286
6f2d95255911
fix @seealso references to point to existing anchors
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7640
diff
changeset
|
395 |
6f2d95255911
fix @seealso references to point to existing anchors
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
7640
diff
changeset
|
396 |