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