annotate scripts/ode/odeset.m @ 30564:796f54d4ddbf stable

update Octave Project Developers copyright for the new year In files that have the "Octave Project Developers" copyright notice, update for 2021. In all .txi and .texi files except gpl.txi and gpl.texi in the doc/liboctave and doc/interpreter directories, change the copyright to "Octave Project Developers", the same as used for other source files. Update copyright notices for 2022 (not done since 2019). For gpl.txi and gpl.texi, change the copyright notice to be "Free Software Foundation, Inc." and leave the date at 2007 only because this file only contains the text of the GPL, not anything created by the Octave Project Developers. Add Paul Thomas to contributors.in.
author John W. Eaton <jwe@octave.org>
date Tue, 28 Dec 2021 18:22:40 -0500
parents 7854d5752dd2
children e1788b1a315f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ########################################################################
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 ##
30564
796f54d4ddbf update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
3 ## Copyright (C) 2006-2022 The Octave Project Developers
27918
b442ec6dda5c use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
4 ##
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 ## See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 ## distribution or <https://octave.org/copyright/>.
20533
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 ## 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
9 ##
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 23565
diff changeset
10 ## 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
11 ## 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
12 ## 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
13 ## (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
14 ##
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
15 ## 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
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22661
diff changeset
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22661
diff changeset
18 ## 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
19 ##
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
20 ## 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
21 ## 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
22 ## <https://www.gnu.org/licenses/>.
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 ##
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ########################################################################
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
25
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
26 ## -*- texinfo -*-
22626
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
27 ## @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
28 ## @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
29 ## @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
30 ## @deftypefnx {} {@var{odestruct} =} odeset (@var{oldstruct}, @var{newstruct})
22626
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
31 ## @deftypefnx {} {} odeset ()
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
32 ##
20548
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20533
diff changeset
33 ## Create or modify an ODE options structure.
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20533
diff changeset
34 ##
22626
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
35 ## 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
36 ## 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
37 ## 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
38 ## 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
39 ##
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
40 ## 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
41 ## @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
42 ## 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
43 ## 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
44 ## @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
45 ## @dots{}.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
46 ##
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
47 ## 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
48 ## 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
49 ## 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
50 ## modified structure.
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
51 ##
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
52 ## 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
53 ## @var{newstruct} overwrite all values from the structure
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
54 ## @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
55 ## 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
56 ## @var{oldstruct}.
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
57 ##
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
58 ## 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
59 ## by @code{odeset}, are the following:
22633
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 ## @table @asis
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
62 ## @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
63 ## Absolute error tolerance.
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{BDF}: @{@qcode{"off"}@} | @qcode{"on"}
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
66 ## Use BDF formulas in implicit multistep methods.
23309
a363ca94d1b7 * odeset.m: doc fix
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 23220
diff changeset
67 ## @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
68 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
69 ## @item @code{Events}: function_handle
23565
3a730821e4a2 doc: Peridoc grammarcheck of documentation.
Rik <rik@octave.org>
parents: 23310
diff changeset
70 ## 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
71 ## @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
72 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
73 ## @item @code{InitialSlope}: vector
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
74 ## Consistent initial slope vector for DAE solvers.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
75 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
76 ## @item @code{InitialStep}: positive scalar
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
77 ## Initial time step size.
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{Jacobian}: matrix | function_handle
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
80 ## 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
81 ## time and state.
22633
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{JConstant}: @{@qcode{"off"}@} | @qcode{"on"}
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
84 ## 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
85 ## state.
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{JPattern}: sparse matrix
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
88 ## 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
89 ## constant sparsity pattern, specify the sparsity pattern.
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{Mass}: matrix | function_handle
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
92 ## 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
93 ## time and state.
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
94 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
95 ## @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
96 ## 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
97 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
98 ## @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
99 ## Maximum order of formula.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
100 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
101 ## @item @code{MaxStep}: positive scalar
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
102 ## Maximum time step value.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
103 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
104 ## @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
105 ## 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
106 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
107 ## @item @code{MvPattern}: sparse matrix
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
108 ## 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
109 ## 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
110 ## @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
111 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
112 ## @item @code{NonNegative}: scalar | vector
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
113 ## 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
114 ## non-negative during the simulation.
22633
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{NormControl}: @{@qcode{"off"}@} | @qcode{"on"}
22635
aace27d19162 Improve docstring of odeset.m
Nir Krakauer <nkrakauer@ccny.cuny.edu>
parents: 22634
diff changeset
117 ## 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
118 ## absolute value.
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{OutputFcn}: function_handle
23565
3a730821e4a2 doc: Peridoc grammarcheck of documentation.
Rik <rik@octave.org>
parents: 23310
diff changeset
121 ## Function to monitor the state during the simulation. For the form of
28958
6fd6ad758b10 doc: Use @xref, @pxref rather than "see @code{}" in TexInfo.
Rik <rik@octave.org>
parents: 27923
diff changeset
122 ## the function to use @pxref{XREFodeplot,,@code{odeplot}}.
22633
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{OutputSel}: scalar | vector
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
125 ## 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
126 ## monitoring function.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
127 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
128 ## @item @code{Refine}: positive scalar
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
129 ## 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
130 ## 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
131 ## 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
132 ## 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
133 ## @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
134 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
135 ## @item @code{RelTol}: positive scalar
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
136 ## Relative error tolerance.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
137 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
138 ## @item @code{Stats}: @{@qcode{"off"}@} | @qcode{"on"}
22633
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
139 ## Print solver statistics after simulation.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
140 ##
25900
22f6cb277893 doc: Improve odeset documentation (bug #49360).
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 25054
diff changeset
141 ## @item @code{Vectorized}: @{@qcode{"off"}@} | @qcode{"on"}
23565
3a730821e4a2 doc: Peridoc grammarcheck of documentation.
Rik <rik@octave.org>
parents: 23310
diff changeset
142 ## 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
143 ## state at once.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
144 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
145 ## @end table
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
146 ##
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
147 ## 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
148 ## added to the result structure.
b9f31d41ab66 Improve documentation for odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22632
diff changeset
149 ##
20548
25623ef2ff4f doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents: 20533
diff changeset
150 ## @seealso{odeget}
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
151 ## @end deftypefn
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
152
20553
45151de7423f maint: Clean up implementations of ode45.m, odeget.m, odeset.m.
Rik <rik@octave.org>
parents: 20549
diff changeset
153 function odestruct = odeset (varargin)
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
154
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
155 persistent p;
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
156
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
157 if (isempty (p))
22632
0b21aece4b93 odeset.m: Update FIXME notes about non-exact matching (bug #49364).
Rik <rik@octave.org>
parents: 22626
diff changeset
158 ## 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
159 ## See bug #49364.
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
160 p = inputParser ();
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
161 p.addParameter ("AbsTol", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
162 p.addParameter ("BDF", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
163 p.addParameter ("Events", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
164 p.addParameter ("InitialSlope", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
165 p.addParameter ("InitialStep", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
166 p.addParameter ("Jacobian", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
167 p.addParameter ("JConstant", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
168 p.addParameter ("JPattern", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
169 p.addParameter ("Mass", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
170 p.addParameter ("MassSingular", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
171 p.addParameter ("MaxOrder", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
172 p.addParameter ("MaxStep", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
173 p.addParameter ("MStateDependence", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
174 p.addParameter ("MvPattern", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
175 p.addParameter ("NonNegative", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
176 p.addParameter ("NormControl", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
177 p.addParameter ("OutputFcn", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
178 p.addParameter ("OutputSel", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
179 p.addParameter ("Refine", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
180 p.addParameter ("RelTol", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
181 p.addParameter ("Stats", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
182 p.addParameter ("Vectorized", []);
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
183 p.KeepUnmatched = true;
20636
6e81f4b37e13 Performance improvements for ODE functions.
Rik <rik@octave.org>
parents: 20634
diff changeset
184 endif
6e81f4b37e13 Performance improvements for ODE functions.
Rik <rik@octave.org>
parents: 20634
diff changeset
185
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
186 if (nargin == 0 && nargout == 0)
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
187 print_options ();
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
188 else
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
189 p.parse (varargin{:});
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
190 odestruct = p.Results;
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
191 odestruct_extra = p.Unmatched;
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
192
22640
58c1c6aeb737 odeset: Improve performance by using for loop for merging of unknown options.
Rik <rik@octave.org>
parents: 22636
diff changeset
193 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
194 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
195 ## 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
196 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
197 fldname = fldname{1};
c28648e039da odeset.m: emit warning for any unknown property (bug #49364).
Rik <rik@octave.org>
parents: 22640
diff changeset
198 warning ("Octave:invalid-input-arg",
c28648e039da odeset.m: emit warning for any unknown property (bug #49364).
Rik <rik@octave.org>
parents: 22640
diff changeset
199 "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
200 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
201 endfor
58c1c6aeb737 odeset: Improve performance by using for loop for merging of unknown options.
Rik <rik@octave.org>
parents: 22636
diff changeset
202 endif
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
203
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
204 endif
22626
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
205
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
206 endfunction
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
207
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
208 ## 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
209 function print_options ()
20634
80e630b37ba1 maint: Remove unnecessary 'v' prefix before variables in ODE m-files.
Rik <rik@octave.org>
parents: 20631
diff changeset
210
22058
47f4268f8c5e Fix usage message in odeset.
Carlo de Falco <carlo.defalco@polimi.it>
parents: 21092
diff changeset
211 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
212 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
213 disp ("");
22626
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
214 disp (' AbsTol: scalar or vector, >0, [1e-6]');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
215 disp (' BDF: binary, {["off"], "on"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
216 disp (' Events: function_handle, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
217 disp (' InitialSlope: vector, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
218 disp (' InitialStep: scalar, >0, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
219 disp (' Jacobian: matrix or function_handle, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
220 disp (' JConstant: binary, {["off"], "on"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
221 disp (' JPattern: sparse matrix, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
222 disp (' Mass: matrix or function_handle, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
223 disp (' MassSingular: switch, {["maybe"], "no", "yes"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
224 disp (' MaxOrder: switch, {[5], 1, 2, 3, 4, }');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
225 disp (' MaxStep: scalar, >0, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
226 disp (' MStateDependence: switch, {["weak"], "none", "strong"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
227 disp (' MvPattern: sparse matrix, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
228 disp (' NonNegative: vector of integers, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
229 disp (' NormControl: binary, {["off"], "on"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
230 disp (' OutputFcn: function_handle, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
231 disp (' OutputSel: scalar or vector, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
232 disp (' Refine: scalar, integer, >0, []');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
233 disp (' RelTol: scalar, >0, [1e-3]');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
234 disp (' Stats: binary, {["off"], "on"}');
869c02fde46c Further clean-up of ode functions.
Rik <rik@octave.org>
parents: 22593
diff changeset
235 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
236
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
237 endfunction
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
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
240 %!demo
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
241 %! ## 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
242 %!
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
243 %! odeoptA = odeset ();
20553
45151de7423f maint: Clean up implementations of ode45.m, odeget.m, odeset.m.
Rik <rik@octave.org>
parents: 20549
diff changeset
244
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
245 %!demo
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
246 %! ## 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
247 %! ## 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
248 %!
20549
e368ce72a844 maint: Use Octave coding conventions for ode* functions.
Rik <rik@octave.org>
parents: 20548
diff changeset
249 %! 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
250
20533
fcb792acab9b Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff changeset
251 %!demo
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
252 %! ## 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
253 %! ## a modified value for option "NormControl".
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
254 %!
20549
e368ce72a844 maint: Use Octave coding conventions for ode* functions.
Rik <rik@octave.org>
parents: 20548
diff changeset
255 %! 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
256 %! 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
257
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
258 %!test
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
259 %! odeoptA = odeset ();
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
260 %! assert (isstruct (odeoptA));
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
261 %! assert (numfields (odeoptA), 22);
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
262 %! assert (all (structfun ("isempty", odeoptA)));
20549
e368ce72a844 maint: Use Octave coding conventions for ode* functions.
Rik <rik@octave.org>
parents: 20548
diff changeset
263
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
264 %!shared odeoptB, odeoptC
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
265 %!test
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
266 %! odeoptB = odeset ("ABSTOL", 1e-2, "reltol", 1e-1);
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
267 %! assert (odeoptB.AbsTol, 1e-2); # Check canonicalization of name
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
268 %! assert (odeoptB.RelTol, 1e-1);
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
269
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
270 %!test
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
271 %! odeoptC = odeset (odeoptB, "NormControl", "on");
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
272 %! 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
273 %! 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
274
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
275 %!test
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
276 %! 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
277 %! assert (odeoptD, odeoptC);
20585
e5f36a7854a5 Remove fuzzy matching from odeset/odeget.
Rik <rik@octave.org>
parents: 20553
diff changeset
278
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
279 ## Test custom user-defined option
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
280 %!test
22647
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
281 %! 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
282 %! odeopt = odeset ("NewtonTol", 3);
cf8ec7abb4ae Clean up demo and test blocks for ode functions.
Rik <rik@octave.org>
parents: 22642
diff changeset
283 %! assert (odeopt.NewtonTol, 3);
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
284
22632
0b21aece4b93 odeset.m: Update FIXME notes about non-exact matching (bug #49364).
Rik <rik@octave.org>
parents: 22626
diff changeset
285 ## 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
286 ## See bug #49364.
22632
0b21aece4b93 odeset.m: Update FIXME notes about non-exact matching (bug #49364).
Rik <rik@octave.org>
parents: 22626
diff changeset
287 ## %!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
288 ## %!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
289
20631
00caf63edcdf maint: Remove obsolete ODE options from odeset/odeget/ode45.
Rik <rik@octave.org>
parents: 20585
diff changeset
290 ## Test input validation
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
291 %!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
292 %!error odeset (1, 1)
22593
dba5074bdc79 simplify options management in ode solvers
Carlo de Falco <carlo.defalco@polimi.it>
parents: 22323
diff changeset
293 %!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
294 %!error odeset (odeset (), 1, 1)