annotate scripts/ode/odeset.m @ 25900:22f6cb277893 stable

doc: Improve odeset documentation (bug #49360). * scripts/ode/odeset.m: Display permitted values for each odeset property. The format used here is the same as for the plot line properties.
author Kai T. Ohlhus <k.ohlhus@gmail.com>
date Wed, 26 Sep 2018 16:23:26 +0200
parents 6652d3823428
children 00f796120a6d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25054
6652d3823428 maint: Update copyright dates in all source files.
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
1 ## Copyright (C) 2016-2018 Carlo de Falco
6652d3823428 maint: Update copyright dates in all source files.
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
2 ## Copyright (C) 2016-2018 Francesco Faccio <francesco.faccio@mail.polimi.it>
6652d3823428 maint: Update copyright dates in all source files.
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
3 ## Copyright (C) 2013-2018 Roberto Porcu' <roberto.porcu@polimi.it>
22323
bac0d6f07a3e maint: Update copyright notices for 2016.
John W. Eaton <jwe@octave.org>
parents: 22058
diff changeset
4 ## Copyright (C) 2006-2012 Thomas Treichl <treichl@users.sourceforge.net>
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
5 ##
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
6 ## This file is part of Octave.
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
7 ##
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23565
diff changeset
8 ## Octave is free software: you can redistribute it and/or modify it
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
9 ## under the terms of the GNU General Public License as published by
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23565
diff changeset
10 ## the Free Software Foundation, either version 3 of the License, or
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22661
diff changeset
11 ## (at your option) any later version.
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
12 ##
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
13 ## Octave is distributed in the hope that it will be useful, but
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
14 ## WITHOUT ANY WARRANTY; without even the implied warranty of
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22661
diff changeset
15 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22661
diff changeset
16 ## GNU General Public License for more details.
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
17 ##
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
18 ## You should have received a copy of the GNU General Public License
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
19 ## along with Octave; see the file COPYING. If not, see
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23565
diff changeset
20 ## <https://www.gnu.org/licenses/>.
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
21
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
22 ## -*- texinfo -*-
22626
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
23 ## @deftypefn {} {@var{odestruct} =} odeset ()
20852
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20636
diff changeset
24 ## @deftypefnx {} {@var{odestruct} =} odeset (@var{"field1"}, @var{value1}, @var{"field2"}, @var{value2}, @dots{})
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20636
diff changeset
25 ## @deftypefnx {} {@var{odestruct} =} odeset (@var{oldstruct}, @var{"field1"}, @var{value1}, @var{"field2"}, @var{value2}, @dots{})
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20636
diff changeset
26 ## @deftypefnx {} {@var{odestruct} =} odeset (@var{oldstruct}, @var{newstruct})
22626
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
27 ## @deftypefnx {} {} odeset ()
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
28 ##
20548
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20533
diff changeset
29 ## Create or modify an ODE options structure.
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20533
diff changeset
30 ##
22626
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
31 ## When called with no input argument and one output argument, return a new ODE
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
32 ## options structure that contains all possible fields initialized to their
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
33 ## default values. If no output argument is requested, display a list of
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
34 ## the common ODE solver options along with their default value.
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
35 ##
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
36 ## If called with name-value input argument pairs @var{"field1"},
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
37 ## @var{"value1"}, @var{"field2"}, @var{"value2"}, @dots{} return a new
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
38 ## ODE options structure with all the most common option fields
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
39 ## initialized, @strong{and} set the values of the fields @var{"field1"},
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
40 ## @var{"field2"}, @dots{} to the values @var{value1}, @var{value2},
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
41 ## @dots{}.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
42 ##
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
43 ## If called with an input structure @var{oldstruct} then overwrite the
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
44 ## values of the options @var{"field1"}, @var{"field2"}, @dots{} with
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
45 ## new values @var{value1}, @var{value2}, @dots{} and return the
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
46 ## modified structure.
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
47 ##
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
48 ## When called with two input ODE options structures @var{oldstruct} and
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
49 ## @var{newstruct} overwrite all values from the structure
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
50 ## @var{oldstruct} with new values from the structure @var{newstruct}.
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
51 ## Empty values in @var{newstruct} will not overwrite values in
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
52 ## @var{oldstruct}.
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
53 ##
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
54 ## The most commonly used ODE options, which are always assigned a value
23565
3a730821e4a2 doc: Peridoc grammarcheck of documentation.
Rik <rik@octave.org>
parents: 23310
diff changeset
55 ## by @code{odeset}, are the following:
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
56 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
57 ## @table @asis
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
58 ## @item @code{AbsTol}: positive scalar | vector, def. @code{1e-6}
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
59 ## Absolute error tolerance.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
60 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
61 ## @item @code{BDF}: @{@qcode{"off"}@} | @qcode{"on"}
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
62 ## Use BDF formulas in implicit multistep methods.
23309
a363ca94d1b7 * odeset.m: doc fix
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 23220
diff changeset
63 ## @emph{Note}: This option is not yet implemented.
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
64 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
65 ## @item @code{Events}: function_handle
23565
3a730821e4a2 doc: Peridoc grammarcheck of documentation.
Rik <rik@octave.org>
parents: 23310
diff changeset
66 ## Event function. An event function must have the form
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
67 ## @code{[value, isterminal, direction] = my_events_f (t, y)}
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
68 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
69 ## @item @code{InitialSlope}: vector
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
70 ## Consistent initial slope vector for DAE solvers.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
71 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
72 ## @item @code{InitialStep}: positive scalar
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
73 ## Initial time step size.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
74 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
75 ## @item @code{Jacobian}: matrix | function_handle
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
76 ## Jacobian matrix, specified as a constant matrix or a function of
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
77 ## time and state.
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
78 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
79 ## @item @code{JConstant}: @{@qcode{"off"}@} | @qcode{"on"}
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
80 ## Specify whether the Jacobian is a constant matrix or depends on the
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
81 ## state.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
82 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
83 ## @item @code{JPattern}: sparse matrix
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
84 ## If the Jacobian matrix is sparse and non-constant but maintains a
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
85 ## constant sparsity pattern, specify the sparsity pattern.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
86 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
87 ## @item @code{Mass}: matrix | function_handle
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
88 ## Mass matrix, specified as a constant matrix or a function of
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
89 ## time and state.
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
90 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
91 ## @item @code{MassSingular}: @{@qcode{"maybe"}@} | @qcode{"yes"} | @qcode{"on"}
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
92 ## Specify whether the mass matrix is singular.
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
93 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
94 ## @item @code{MaxOrder}: @{@qcode{5}@} | @qcode{4} | @qcode{3} | @qcode{2} | @qcode{1}
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
95 ## Maximum order of formula.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
96 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
97 ## @item @code{MaxStep}: positive scalar
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
98 ## Maximum time step value.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
99 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
100 ## @item @code{MStateDependence}: @{@qcode{"weak"}@} | @qcode{"none"} | @qcode{"strong"}
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
101 ## Specify whether the mass matrix depends on the state or only on time.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
102 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
103 ## @item @code{MvPattern}: sparse matrix
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
104 ## If the mass matrix is sparse and non-constant but maintains a
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
105 ## constant sparsity pattern, specify the sparsity pattern.
23310
55f1132aab20 * odeset.m: more doc fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 23309
diff changeset
106 ## @emph{Note}: This option is not yet implemented.
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
107 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
108 ## @item @code{NonNegative}: scalar | vector
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
109 ## Specify elements of the state vector that are expected to remain
23565
3a730821e4a2 doc: Peridoc grammarcheck of documentation.
Rik <rik@octave.org>
parents: 23310
diff changeset
110 ## non-negative during the simulation.
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
111 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
112 ## @item @code{NormControl}: @{@qcode{"off"}@} | @qcode{"on"}
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
113 ## Control error relative to the 2-norm of the solution, rather than its
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
114 ## absolute value.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
115 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
116 ## @item @code{OutputFcn}: function_handle
23565
3a730821e4a2 doc: Peridoc grammarcheck of documentation.
Rik <rik@octave.org>
parents: 23310
diff changeset
117 ## Function to monitor the state during the simulation. For the form of
3a730821e4a2 doc: Peridoc grammarcheck of documentation.
Rik <rik@octave.org>
parents: 23310
diff changeset
118 ## the function to use see @code{odeplot}.
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
119 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
120 ## @item @code{OutputSel}: scalar | vector
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
121 ## Indices of elements of the state vector to be passed to the output
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
122 ## monitoring function.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
123 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
124 ## @item @code{Refine}: positive scalar
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
125 ## Specify whether output should be returned only at the end of each
23565
3a730821e4a2 doc: Peridoc grammarcheck of documentation.
Rik <rik@octave.org>
parents: 23310
diff changeset
126 ## time step or also at intermediate time instances. The value should be
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
127 ## a scalar indicating the number of equally spaced time points to use
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
128 ## within each timestep at which to return output.
23310
55f1132aab20 * odeset.m: more doc fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 23309
diff changeset
129 ## @emph{Note}: This option is not yet implemented.
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
130 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
131 ## @item @code{RelTol}: positive scalar
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
132 ## Relative error tolerance.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
133 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
134 ## @item @code{Stats}: @{@qcode{"off"}@} | @qcode{"on"}
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
135 ## Print solver statistics after simulation.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
136 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
137 ## @item @code{Vectorized}: @{@qcode{"off"}@} | @qcode{"on"}
23565
3a730821e4a2 doc: Peridoc grammarcheck of documentation.
Rik <rik@octave.org>
parents: 23310
diff changeset
138 ## Specify whether @code{odefun} can be passed multiple values of the
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
139 ## state at once.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
140 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
141 ## @end table
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
142 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
143 ## Field names that are not in the above list are also accepted and
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
144 ## added to the result structure.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
145 ##
20548
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20533
diff changeset
146 ## @seealso{odeget}
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
147 ## @end deftypefn
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
148
20553
45151de7423f maint: Clean up implementations of ode45.m, odeget.m, odeset.m.
Rik <rik@octave.org>
parents: 20549
diff changeset
149 function odestruct = odeset (varargin)
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
150
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
151 persistent p;
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
152
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
153 if (isempty (p))
22632
0b21aece4b93 odeset.m: Update FIXME notes about non-exact matching (bug #49364).
Rik <rik@octave.org>
parents: 22626
diff changeset
154 ## FIXME: Add an inexact match option once it is available in inputParser.
22636
c44d57c0a925 maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 22635
diff changeset
155 ## See bug #49364.
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
156 p = inputParser ();
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
157 p.addParameter ("AbsTol", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
158 p.addParameter ("BDF", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
159 p.addParameter ("Events", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
160 p.addParameter ("InitialSlope", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
161 p.addParameter ("InitialStep", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
162 p.addParameter ("Jacobian", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
163 p.addParameter ("JConstant", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
164 p.addParameter ("JPattern", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
165 p.addParameter ("Mass", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
166 p.addParameter ("MassSingular", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
167 p.addParameter ("MaxOrder", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
168 p.addParameter ("MaxStep", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
169 p.addParameter ("MStateDependence", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
170 p.addParameter ("MvPattern", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
171 p.addParameter ("NonNegative", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
172 p.addParameter ("NormControl", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
173 p.addParameter ("OutputFcn", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
174 p.addParameter ("OutputSel", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
175 p.addParameter ("Refine", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
176 p.addParameter ("RelTol", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
177 p.addParameter ("Stats", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
178 p.addParameter ("Vectorized", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
179 p.KeepUnmatched = true;
20636
6e81f4b37e13 Performance improvements for ODE functions.
Rik <rik@octave.org>
parents: 20634
diff changeset
180 endif
6e81f4b37e13 Performance improvements for ODE functions.
Rik <rik@octave.org>
parents: 20634
diff changeset
181
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
182 if (nargin == 0 && nargout == 0)
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
183 print_options ();
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
184 else
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
185 p.parse (varargin{:});
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
186 odestruct = p.Results;
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
187 odestruct_extra = p.Unmatched;
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
188
22640
58c1c6aeb737 odeset: Improve performance by using for loop for merging of unknown options.
Rik <rik@octave.org>
parents: 22636
diff changeset
189 xtra_fields = fieldnames (odestruct_extra);
58c1c6aeb737 odeset: Improve performance by using for loop for merging of unknown options.
Rik <rik@octave.org>
parents: 22636
diff changeset
190 if (! isempty (xtra_fields))
58c1c6aeb737 odeset: Improve performance by using for loop for merging of unknown options.
Rik <rik@octave.org>
parents: 22636
diff changeset
191 ## Merge extra fields into existing odestruct
58c1c6aeb737 odeset: Improve performance by using for loop for merging of unknown options.
Rik <rik@octave.org>
parents: 22636
diff changeset
192 for fldname = sort (xtra_fields.')
22641
c28648e039da odeset.m: emit warning for any unknown property (bug #49364).
Rik <rik@octave.org>
parents: 22640
diff changeset
193 fldname = fldname{1};
c28648e039da odeset.m: emit warning for any unknown property (bug #49364).
Rik <rik@octave.org>
parents: 22640
diff changeset
194 warning ("Octave:invalid-input-arg",
c28648e039da odeset.m: emit warning for any unknown property (bug #49364).
Rik <rik@octave.org>
parents: 22640
diff changeset
195 "odeset: unknown option \"%s\"\n", fldname);
c28648e039da odeset.m: emit warning for any unknown property (bug #49364).
Rik <rik@octave.org>
parents: 22640
diff changeset
196 odestruct.(fldname) = odestruct_extra.(fldname);
22640
58c1c6aeb737 odeset: Improve performance by using for loop for merging of unknown options.
Rik <rik@octave.org>
parents: 22636
diff changeset
197 endfor
58c1c6aeb737 odeset: Improve performance by using for loop for merging of unknown options.
Rik <rik@octave.org>
parents: 22636
diff changeset
198 endif
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
199
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
200 endif
22626
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
201
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
202 endfunction
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
203
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
204 ## function to print all possible options
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
205 function print_options ()
20634
80e630b37ba1 maint: Remove unnecessary 'v' prefix before variables in ODE m-files.
Rik <rik@octave.org>
parents: 20631
diff changeset
206
22058
47f4268f8c5e Fix usage message in odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 21092
diff changeset
207 disp ("List of the most common ODE solver options.");
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
208 disp ("Default values are in square brackets.");
20553
45151de7423f maint: Clean up implementations of ode45.m, odeget.m, odeset.m.
Rik <rik@octave.org>
parents: 20549
diff changeset
209 disp ("");
22626
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
210 disp (' AbsTol: scalar or vector, >0, [1e-6]');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
211 disp (' BDF: binary, {["off"], "on"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
212 disp (' Events: function_handle, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
213 disp (' InitialSlope: vector, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
214 disp (' InitialStep: scalar, >0, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
215 disp (' Jacobian: matrix or function_handle, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
216 disp (' JConstant: binary, {["off"], "on"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
217 disp (' JPattern: sparse matrix, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
218 disp (' Mass: matrix or function_handle, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
219 disp (' MassSingular: switch, {["maybe"], "no", "yes"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
220 disp (' MaxOrder: switch, {[5], 1, 2, 3, 4, }');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
221 disp (' MaxStep: scalar, >0, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
222 disp (' MStateDependence: switch, {["weak"], "none", "strong"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
223 disp (' MvPattern: sparse matrix, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
224 disp (' NonNegative: vector of integers, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
225 disp (' NormControl: binary, {["off"], "on"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
226 disp (' OutputFcn: function_handle, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
227 disp (' OutputSel: scalar or vector, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
228 disp (' Refine: scalar, integer, >0, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
229 disp (' RelTol: scalar, >0, [1e-3]');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
230 disp (' Stats: binary, {["off"], "on"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
231 disp (' Vectorized: binary, {["off"], "on"}');
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
232
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
233 endfunction
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
234
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
235
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
236 %!demo
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
237 %! ## A new ODE options structure with default values is created.
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
238 %!
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
239 %! odeoptA = odeset ();
20553
45151de7423f maint: Clean up implementations of ode45.m, odeget.m, odeset.m.
Rik <rik@octave.org>
parents: 20549
diff changeset
240
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
241 %!demo
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
242 %! ## A new ODE options structure with manually set options
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
243 %! ## for "AbsTol" and "RelTol" is created.
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
244 %!
20549
e368ce72a844 maint: Use Octave coding conventions for ode* functions.
Rik <rik@octave.org>
parents: 20548
diff changeset
245 %! odeoptB = odeset ("AbsTol", 1e-2, "RelTol", 1e-1);
20553
45151de7423f maint: Clean up implementations of ode45.m, odeget.m, odeset.m.
Rik <rik@octave.org>
parents: 20549
diff changeset
246
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
247 %!demo
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
248 %! ## A new ODE options structure is created from odeoptB with
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
249 %! ## a modified value for option "NormControl".
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
250 %!
20549
e368ce72a844 maint: Use Octave coding conventions for ode* functions.
Rik <rik@octave.org>
parents: 20548
diff changeset
251 %! odeoptB = odeset ("AbsTol", 1e-2, "RelTol", 1e-1);
e368ce72a844 maint: Use Octave coding conventions for ode* functions.
Rik <rik@octave.org>
parents: 20548
diff changeset
252 %! odeoptC = odeset (odeoptB, "NormControl", "on");
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
253
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
254 %!test
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
255 %! odeoptA = odeset ();
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
256 %! assert (isstruct (odeoptA));
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
257 %! assert (numfields (odeoptA), 22);
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
258 %! assert (all (structfun ("isempty", odeoptA)));
20549
e368ce72a844 maint: Use Octave coding conventions for ode* functions.
Rik <rik@octave.org>
parents: 20548
diff changeset
259
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
260 %!shared odeoptB, odeoptC
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
261 %!test
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
262 %! odeoptB = odeset ("ABSTOL", 1e-2, "reltol", 1e-1);
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
263 %! assert (odeoptB.AbsTol, 1e-2); # Check canonicalization of name
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
264 %! assert (odeoptB.RelTol, 1e-1);
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
265
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
266 %!test
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
267 %! odeoptC = odeset (odeoptB, "NormControl", "on");
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
268 %! assert (odeoptC.AbsTol, 1e-2); # check values from first struct copied
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
269 %! assert (odeoptC.NormControl, "on"); # check new values override old ones
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
270
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
271 %!test
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
272 %! odeoptD = odeset (odeoptB, odeoptC);
20634
80e630b37ba1 maint: Remove unnecessary 'v' prefix before variables in ODE m-files.
Rik <rik@octave.org>
parents: 20631
diff changeset
273 %! assert (odeoptD, odeoptC);
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
274
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
275 ## Test custom user-defined option
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
276 %!test
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
277 %! warning ("off", "Octave:invalid-input-arg", "local");
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
278 %! odeopt = odeset ("NewtonTol", 3);
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
279 %! assert (odeopt.NewtonTol, 3);
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
280
22632
0b21aece4b93 odeset.m: Update FIXME notes about non-exact matching (bug #49364).
Rik <rik@octave.org>
parents: 22626
diff changeset
281 ## FIXME: Add an inexact match option once it is available in inputParser.
22636
c44d57c0a925 maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 22635
diff changeset
282 ## See bug #49364.
22632
0b21aece4b93 odeset.m: Update FIXME notes about non-exact matching (bug #49364).
Rik <rik@octave.org>
parents: 22626
diff changeset
283 ## %!warning <no exact match for 'Rel'. Assuming 'RelTol'> odeset ("Rel", 1);
0b21aece4b93 odeset.m: Update FIXME notes about non-exact matching (bug #49364).
Rik <rik@octave.org>
parents: 22626
diff changeset
284 ## %!error <Possible fields found: InitialSlope, InitialStep> odeset ("Initial", 1)
0b21aece4b93 odeset.m: Update FIXME notes about non-exact matching (bug #49364).
Rik <rik@octave.org>
parents: 22626
diff changeset
285
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
286 ## Test input validation
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
287 %!error <argument 'OPT1' is not a valid parameter> odeset ("opt1")
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
288 %!error odeset (1, 1)
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
289 %!error <argument 'OPT1' is not a valid parameter> odeset (odeset (), "opt1")
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
290 %!error odeset (odeset (), 1, 1)