annotate scripts/ode/odeset.m @ 30893:e1788b1a315f

maint: Use "fcn" as preferred abbreviation for "function" in m-files. * accumarray.m, accumdim.m, quadl.m, quadv.m, randi.m, structfun.m, __is_function__.m, uigetfile.m, uimenu.m, uiputfile.m, doc_cache_create.m, colorspace_conversion_input_check.m, imageIO.m, argnames.m, vectorize.m, vectorize.m, normest1.m, inputname.m, nthargout.m, display_info_file.m, decic.m, ode15i.m, ode15s.m, ode23.m, ode23s.m, ode45.m, odeset.m, check_default_input.m, integrate_adaptive.m, ode_event_handler.m, runge_kutta_23.m, runge_kutta_23s.m, runge_kutta_45_dorpri.m, runge_kutta_interpolate.m, starting_stepsize.m, __all_opts__.m, fminbnd.m, fminsearch.m, fminunc.m, fsolve.m, fzero.m, sqp.m, fplot.m, plotyy.m, __bar__.m, __ezplot__.m, flat_entry.html, profexport.m, movfun.m, bicg.m, bicgstab.m, cgs.m, eigs.m, gmres.m, pcg.m, __alltohandles__.m, __sprand__.m, qmr.m, tfqmr.m, dump_demos.m: Replace "func", "fun", "fn" in documentation and variable names with "fcn".
author Rik <rik@octave.org>
date Mon, 04 Apr 2022 18:14:56 -0700
parents 796f54d4ddbf
children 449ed6f427cb
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"}
30893
e1788b1a315f maint: Use "fcn" as preferred abbreviation for "function" in m-files.
Rik <rik@octave.org>
parents: 30564
diff changeset
142 ## Specify whether @code{odefcn} 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)