annotate scripts/ode/odeset.m @ 22661:c00578ac8dda stable

Resolve FIXME notes in ode code base. * ode23.m: Remove FIXME about constant mass matrices comment. * odeset.m: Add notes to documentation for BDF, MvPattern, and Refine that they are not yet implemented. * runge_kutta_45_dorpri.m: Add correct reference for constants used in calculation. * runge_kutta_interpolate.m: Remove 4th order method which is never used.
author Rik <rik@octave.org>
date Mon, 24 Oct 2016 08:56:15 -0700
parents cf8ec7abb4ae
children 3a2b891d0b33 e9a0469dedd9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22626
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
1 ## Copyright (C) 2016 Carlo de Falco
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
2 ## Copyright (C) 2016 Francesco Faccio <francesco.faccio@mail.polimi.it>
22323
bac0d6f07a3e maint: Update copyright notices for 2016.
John W. Eaton <jwe@octave.org>
parents: 22058
diff changeset
3 ## Copyright (C) 2013-2016 Roberto Porcu' <roberto.porcu@polimi.it>
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 ##
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
8 ## Octave is free software; you can redistribute it and/or modify it
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
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
10 ## the Free Software Foundation; either version 3 of the License, or (at
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
11 ## your option) any later version.
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
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
15 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
16 ## General Public License for more details.
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
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
20 ## <http://www.gnu.org/licenses/>.
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
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
55 ## by @qcode{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
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
58 ## @item AbsTol
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 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
61 ## @item BDF
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.
22661
c00578ac8dda Resolve FIXME notes in ode code base.
Rik <rik@octave.org>
parents: 22647
diff changeset
63 ## @strong{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 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
65 ## @item Events
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
66 ## Event function. An event function must have the form
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 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
69 ## @item InitialSlope
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 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
72 ## @item InitialStep
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 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
75 ## @item Jacobian
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 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
79 ## @item JConstant
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 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
83 ## @item JPattern
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 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
87 ## @item Mass
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 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
91 ## @item MassSingular
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
92 ## Specify whether the mass matrix is singular. Accepted values include
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
93 ## @qcode{"yes"}, @qcode{"no"}, @qcode{"maybe"}.
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
94 ##
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
95 ## @item MaxOrder
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
96 ## Maximum order of formula.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
97 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
98 ## @item MaxStep
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
99 ## Maximum time step value.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
100 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
101 ## @item MStateDependence
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
102 ## 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
103 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
104 ## @item MvPattern
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
105 ## 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
106 ## constant sparsity pattern, specify the sparsity pattern.
22661
c00578ac8dda Resolve FIXME notes in ode code base.
Rik <rik@octave.org>
parents: 22647
diff changeset
107 ## @strong{Note:} This option is not yet implemented.
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
108 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
109 ## @item NonNegative
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
110 ## Specify elements of the state vector that are expected to remain
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
111 ## nonnegative during the simulation.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
112 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
113 ## @item NormControl
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
114 ## 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
115 ## absolute value.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
116 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
117 ## @item OutputFcn
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
118 ## Function to monitor the state during the simulation. For the form of
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
119 ## the function to use see @qcode{odeplot}.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
120 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
121 ## @item OutputSel
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
122 ## 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
123 ## monitoring function.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
124 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
125 ## @item Refine
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
126 ## Specify whether output should be returned only at the end of each
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
127 ## time step or also at intermediate time instances. The value should be
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
128 ## 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
129 ## within each timestep at which to return output.
22661
c00578ac8dda Resolve FIXME notes in ode code base.
Rik <rik@octave.org>
parents: 22647
diff changeset
130 ## @strong{Note:} This option is not yet implemented.
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
131 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
132 ## @item RelTol
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
133 ## Relative error tolerance.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
134 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
135 ## @item Stats
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
136 ## Print solver statistics after simulation.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
137 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
138 ## @item Vectorized
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
139 ## Specify whether @qcode{odefun} can be passed multiple values of the
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
140 ## state at once.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
141 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
142 ## @end table
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
143 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
144 ## 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
145 ## added to the result structure.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
146 ##
20548
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20533
diff changeset
147 ## @seealso{odeget}
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
148 ## @end deftypefn
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
149
20553
45151de7423f maint: Clean up implementations of ode45.m, odeget.m, odeset.m.
Rik <rik@octave.org>
parents: 20549
diff changeset
150 function odestruct = odeset (varargin)
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
151
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
152 persistent p;
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
153
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
154 if (isempty (p))
22632
0b21aece4b93 odeset.m: Update FIXME notes about non-exact matching (bug #49364).
Rik <rik@octave.org>
parents: 22626
diff changeset
155 ## 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
156 ## See bug #49364.
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
157 p = inputParser ();
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
158 p.addParameter ("AbsTol", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
159 p.addParameter ("BDF", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
160 p.addParameter ("Events", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
161 p.addParameter ("InitialSlope", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
162 p.addParameter ("InitialStep", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
163 p.addParameter ("Jacobian", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
164 p.addParameter ("JConstant", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
165 p.addParameter ("JPattern", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
166 p.addParameter ("Mass", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
167 p.addParameter ("MassSingular", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
168 p.addParameter ("MaxOrder", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
169 p.addParameter ("MaxStep", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
170 p.addParameter ("MStateDependence", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
171 p.addParameter ("MvPattern", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
172 p.addParameter ("NonNegative", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
173 p.addParameter ("NormControl", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
174 p.addParameter ("OutputFcn", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
175 p.addParameter ("OutputSel", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
176 p.addParameter ("Refine", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
177 p.addParameter ("RelTol", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
178 p.addParameter ("Stats", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
179 p.addParameter ("Vectorized", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
180 p.KeepUnmatched = true;
20636
6e81f4b37e13 Performance improvements for ODE functions.
Rik <rik@octave.org>
parents: 20634
diff changeset
181 endif
6e81f4b37e13 Performance improvements for ODE functions.
Rik <rik@octave.org>
parents: 20634
diff changeset
182
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
183 if (nargin == 0 && nargout == 0)
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
184 print_options ();
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
185 else
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
186 p.parse (varargin{:});
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
187 odestruct = p.Results;
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
188 odestruct_extra = p.Unmatched;
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
189
22640
58c1c6aeb737 odeset: Improve performance by using for loop for merging of unknown options.
Rik <rik@octave.org>
parents: 22636
diff changeset
190 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
191 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
192 ## 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
193 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
194 fldname = fldname{1};
c28648e039da odeset.m: emit warning for any unknown property (bug #49364).
Rik <rik@octave.org>
parents: 22640
diff changeset
195 warning ("Octave:invalid-input-arg",
c28648e039da odeset.m: emit warning for any unknown property (bug #49364).
Rik <rik@octave.org>
parents: 22640
diff changeset
196 "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
197 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
198 endfor
58c1c6aeb737 odeset: Improve performance by using for loop for merging of unknown options.
Rik <rik@octave.org>
parents: 22636
diff changeset
199 endif
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
200
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
201 endif
22626
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
202
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
203 endfunction
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
204
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
205 ## 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
206 function print_options ()
20634
80e630b37ba1 maint: Remove unnecessary 'v' prefix before variables in ODE m-files.
Rik <rik@octave.org>
parents: 20631
diff changeset
207
22058
47f4268f8c5e Fix usage message in odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 21092
diff changeset
208 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
209 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
210 disp ("");
22626
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
211 disp (' AbsTol: scalar or vector, >0, [1e-6]');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
212 disp (' BDF: binary, {["off"], "on"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
213 disp (' Events: function_handle, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
214 disp (' InitialSlope: vector, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
215 disp (' InitialStep: scalar, >0, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
216 disp (' Jacobian: matrix or function_handle, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
217 disp (' JConstant: binary, {["off"], "on"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
218 disp (' JPattern: sparse matrix, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
219 disp (' Mass: matrix or function_handle, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
220 disp (' MassSingular: switch, {["maybe"], "no", "yes"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
221 disp (' MaxOrder: switch, {[5], 1, 2, 3, 4, }');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
222 disp (' MaxStep: scalar, >0, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
223 disp (' MStateDependence: switch, {["weak"], "none", "strong"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
224 disp (' MvPattern: sparse matrix, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
225 disp (' NonNegative: vector of integers, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
226 disp (' NormControl: binary, {["off"], "on"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
227 disp (' OutputFcn: function_handle, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
228 disp (' OutputSel: scalar or vector, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
229 disp (' Refine: scalar, integer, >0, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
230 disp (' RelTol: scalar, >0, [1e-3]');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
231 disp (' Stats: binary, {["off"], "on"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
232 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
233
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
234 endfunction
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
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
237 %!demo
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
238 %! ## 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
239 %!
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
240 %! odeoptA = odeset ();
20553
45151de7423f maint: Clean up implementations of ode45.m, odeget.m, odeset.m.
Rik <rik@octave.org>
parents: 20549
diff changeset
241
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
242 %!demo
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
243 %! ## 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
244 %! ## 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
245 %!
20549
e368ce72a844 maint: Use Octave coding conventions for ode* functions.
Rik <rik@octave.org>
parents: 20548
diff changeset
246 %! 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
247
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
248 %!demo
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
249 %! ## 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
250 %! ## a modified value for option "NormControl".
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
251 %!
20549
e368ce72a844 maint: Use Octave coding conventions for ode* functions.
Rik <rik@octave.org>
parents: 20548
diff changeset
252 %! 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
253 %! 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
254
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
255 %!test
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
256 %! odeoptA = odeset ();
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
257 %! assert (isstruct (odeoptA));
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
258 %! assert (numfields (odeoptA), 22);
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
259 %! assert (all (structfun ("isempty", odeoptA)));
20549
e368ce72a844 maint: Use Octave coding conventions for ode* functions.
Rik <rik@octave.org>
parents: 20548
diff changeset
260
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
261 %!shared odeoptB, odeoptC
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
262 %!test
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
263 %! odeoptB = odeset ("ABSTOL", 1e-2, "reltol", 1e-1);
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
264 %! assert (odeoptB.AbsTol, 1e-2); # Check canonicalization of name
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
265 %! assert (odeoptB.RelTol, 1e-1);
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
266
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
267 %!test
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
268 %! odeoptC = odeset (odeoptB, "NormControl", "on");
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
269 %! 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
270 %! 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
271
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
272 %!test
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
273 %! 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
274 %! assert (odeoptD, odeoptC);
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
275
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
276 ## Test custom user-defined option
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
277 %!test
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
278 %! 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
279 %! odeopt = odeset ("NewtonTol", 3);
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
280 %! assert (odeopt.NewtonTol, 3);
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
281
22632
0b21aece4b93 odeset.m: Update FIXME notes about non-exact matching (bug #49364).
Rik <rik@octave.org>
parents: 22626
diff changeset
282 ## 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
283 ## See bug #49364.
22632
0b21aece4b93 odeset.m: Update FIXME notes about non-exact matching (bug #49364).
Rik <rik@octave.org>
parents: 22626
diff changeset
284 ## %!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
285 ## %!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
286
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
287 ## Test input validation
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
288 %!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
289 %!error odeset (1, 1)
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
290 %!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
291 %!error odeset (odeset (), 1, 1)
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
292