Mercurial > hg > octave-lyh
annotate liboctave/LSODE-opts.in @ 11188:4cb1522e4d0f
Use function handle as input to cellfun,
rather than quoted function name or anonymous function wrapper.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Wed, 03 Nov 2010 17:20:56 -0700 |
parents | 89f4d7e294cc |
children | fd0a3ac60b0e |
rev | line source |
---|---|
9245 | 1 # Copyright (C) 2002, 2005, 2007, 2009 John W. Eaton |
7017 | 2 # |
3 # This file is part of Octave. | |
4 # | |
5 # Octave is free software; you can redistribute it and/or modify it | |
6 # under the terms of the GNU General Public License as published by the | |
7 # Free Software Foundation; either version 3 of the License, or (at | |
8 # your option) any later version. | |
9 # | |
10 # Octave is distributed in the hope that it will be useful, but WITHOUT | |
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
12 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
13 # for more details. | |
14 # | |
15 # You should have received a copy of the GNU General Public License | |
16 # along with Octave; see the file COPYING. If not, see | |
17 # <http://www.gnu.org/licenses/>. | |
18 | |
3998 | 19 CLASS = "LSODE" |
20 | |
4044 | 21 INCLUDE = "ODE.h" |
22 | |
3998 | 23 OPTION |
24 NAME = "absolute tolerance" | |
4051 | 25 DOC_ITEM |
26 Absolute tolerance. May be either vector or scalar. If a vector, it | |
27 must match the dimension of the state vector. | |
10840 | 28 |
4051 | 29 END_DOC_ITEM |
3998 | 30 TYPE = "Array<double>" |
31 SET_ARG_TYPE = "const $TYPE&" | |
32 INIT_BODY | |
10350
12884915a8e4
merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents:
9245
diff
changeset
|
33 $OPTVAR.resize (1, 1); |
3998 | 34 $OPTVAR(0) = ::sqrt (DBL_EPSILON); |
35 END_INIT_BODY | |
36 SET_CODE | |
37 void set_$OPT (double val) | |
38 { | |
10350
12884915a8e4
merge MArray classes & improve Array interface
Jaroslav Hajek <highegg@gmail.com>
parents:
9245
diff
changeset
|
39 $OPTVAR.resize (1, 1); |
3998 | 40 $OPTVAR(0) = (val > 0.0) ? val : ::sqrt (DBL_EPSILON); |
4049 | 41 reset = true; |
3998 | 42 } |
43 | |
44 void set_$OPT (const $TYPE& val) | |
4049 | 45 { $OPTVAR = val; reset = true; } |
3998 | 46 END_SET_CODE |
47 END_OPTION | |
48 | |
49 OPTION | |
4051 | 50 NAME = "relative tolerance" |
51 DOC_ITEM | |
52 Relative tolerance parameter. Unlike the absolute tolerance, this | |
53 parameter may only be a scalar. | |
54 | |
55 The local error test applied at each integration step is | |
56 | |
57 @example | |
9067
8970b4b10e9f
Cleanup documentation for quad.texi and diffeq.texi
Rik <rdrider0-list@yahoo.com>
parents:
7081
diff
changeset
|
58 @group |
7081 | 59 abs (local error in x(i)) <= ... |
60 rtol * abs (y(i)) + atol(i) | |
9067
8970b4b10e9f
Cleanup documentation for quad.texi and diffeq.texi
Rik <rdrider0-list@yahoo.com>
parents:
7081
diff
changeset
|
61 @end group |
4051 | 62 @end example |
10840 | 63 |
4051 | 64 END_DOC_ITEM |
65 TYPE = "double" | |
66 INIT_VALUE = "::sqrt (DBL_EPSILON)" | |
67 SET_EXPR = "(val > 0.0) ? val : ::sqrt (DBL_EPSILON)" | |
68 END_OPTION | |
69 | |
70 OPTION | |
3998 | 71 NAME = "integration method" |
4231 | 72 DOC_ITEM |
7007 | 73 A string specifying the method of integration to use to solve the ODE |
4051 | 74 system. Valid values are |
75 | |
76 @table @asis | |
77 @item \"adams\" | |
78 @itemx \"non-stiff\" | |
79 No Jacobian used (even if it is available). | |
10840 | 80 |
4051 | 81 @item \"bdf\" |
10840 | 82 @itemx \"stiff\" |
4051 | 83 Use stiff backward differentiation formula (BDF) method. If a |
84 function to compute the Jacobian is not supplied, @code{lsode} will | |
85 compute a finite difference approximation of the Jacobian matrix. | |
86 @end table | |
10840 | 87 |
4051 | 88 END_DOC_ITEM |
3998 | 89 TYPE = "std::string" |
90 SET_ARG_TYPE = "const $TYPE&" | |
91 INIT_VALUE = ""stiff"" | |
92 SET_BODY | |
93 if (val == "stiff" || val == "bdf") | |
94 $OPTVAR = "stiff"; | |
95 else if (val == "non-stiff" || val == "adams") | |
96 $OPTVAR = "non-stiff"; | |
97 else | |
98 (*current_liboctave_error_handler) | |
99 ("lsode_options: method must be \"stiff\", \"bdf\", \"non-stiff\", or \"adams\""); | |
100 END_SET_BODY | |
101 END_OPTION | |
102 | |
103 OPTION | |
104 NAME = "initial step size" | |
4051 | 105 DOC_ITEM |
106 The step size to be attempted on the first step (default is determined | |
107 automatically). | |
10840 | 108 |
4051 | 109 END_DOC_ITEM |
3998 | 110 TYPE = "double" |
111 INIT_VALUE = "-1.0" | |
112 SET_EXPR = "(val >= 0.0) ? val : -1.0" | |
113 END_OPTION | |
114 | |
115 OPTION | |
4231 | 116 NAME = "maximum order" |
117 DOC_ITEM | |
118 Restrict the maximum order of the solution method. If using the Adams | |
119 method, this option must be between 1 and 12. Otherwise, it must be | |
120 between 1 and 5, inclusive. | |
10840 | 121 |
4231 | 122 END_DOC_ITEM |
5275 | 123 TYPE = "octave_idx_type" |
4231 | 124 INIT_VALUE = "-1" |
125 SET_EXPR = "val" | |
126 END_OPTION | |
127 | |
128 OPTION | |
3998 | 129 NAME = "maximum step size" |
4051 | 130 DOC_ITEM |
131 Setting the maximum stepsize will avoid passing over very large | |
132 regions (default is not specified). | |
10840 | 133 |
4051 | 134 END_DOC_ITEM |
3998 | 135 TYPE = "double" |
136 INIT_VALUE = "-1.0" | |
137 SET_EXPR = "(val >= 0.0) ? val : -1.0" | |
138 END_OPTION | |
139 | |
140 OPTION | |
141 NAME = "minimum step size" | |
4051 | 142 DOC_ITEM |
143 The minimum absolute step size allowed (default is 0). | |
10840 | 144 |
4051 | 145 END_DOC_ITEM |
3998 | 146 TYPE = "double" |
147 INIT_VALUE = "0.0" | |
148 SET_EXPR = "(val >= 0.0) ? val : 0.0" | |
149 END_OPTION | |
150 | |
151 OPTION | |
152 NAME = "step limit" | |
4051 | 153 DOC_ITEM |
154 Maximum number of steps allowed (default is 100000). | |
155 END_DOC_ITEM | |
5275 | 156 TYPE = "octave_idx_type" |
3998 | 157 INIT_VALUE = "100000" |
158 SET_EXPR = "val" | |
159 END_OPTION |