Mercurial > octave
annotate scripts/ode/private/runge_kutta_45_dorpri.m @ 20634:80e630b37ba1
maint: Remove unnecessary 'v' prefix before variables in ODE m-files.
* ode_rk_interpolate.m: Deleted file.
* odepkg_event_handle.m: Deleted file.
* runge_kutta_interpolate.m: Renamed from ode_rk_interpolate.m. Remove 'v'
prefix on variables. Delete blank space at end of lines.
* ode_event_handler.m: Renamed from odepkg_event_handle.m. Remove 'v'
prefix on variables. Delete blank space at end of lines. Use 'evt' for
event rather than 'eve' in variable names. Use 'idx' rather than 'index'
in variable names.
* scripts/ode/module.mk: Add ode_event_handler.m and runge_kutta_interpolate.m
to build system.
* AbsRel_Norm.m, starting_stepsize.m, ode_struct_value_check.m, odeget.m,
odeset.m: Delete blank space at end of lines.
* integrate_adaptive, integrate_const.m, integrate_n_steps.m,
runge_kutta_45_dorpri.m:
Remove 'v' prefix on variable. Delete blank space at end of lines.
* ode45.m: Expand docstring to cover more of the inputs/outputs.
Remove 'v' prefix on variable. Use name of variable in input validation
warnings. Use name of function as prefix in warnings and error messages.
Delete long, unnecessary comments. Use faster 'isempty' rather than slow
'isequal' to check whether option has been set. Remove SubOpts variable.
Shorten lines < 80 chars.
author | Rik <rik@octave.org> |
---|---|
date | Sun, 18 Oct 2015 09:55:41 -0700 |
parents | b92f8e148936 |
children | 516bb87ea72e |
rev | line source |
---|---|
20621
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
1 ## Copyright (C) 2015 Carlo de Falco |
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
2 ## Copyright (C) 2013 Roberto Porcu' <roberto.porcu@polimi.it> |
20536
6256f6e366ac
Fix copyright text in private ode functions
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20533
diff
changeset
|
3 ## |
6256f6e366ac
Fix copyright text in private ode functions
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20533
diff
changeset
|
4 ## This file is part of Octave. |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
5 ## |
20536
6256f6e366ac
Fix copyright text in private ode functions
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20533
diff
changeset
|
6 ## Octave is free software; you can redistribute it and/or modify it |
6256f6e366ac
Fix copyright text in private ode functions
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20533
diff
changeset
|
7 ## under the terms of the GNU General Public License as published by |
6256f6e366ac
Fix copyright text in private ode functions
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20533
diff
changeset
|
8 ## the Free Software Foundation; either version 3 of the License, or (at |
6256f6e366ac
Fix copyright text in private ode functions
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20533
diff
changeset
|
9 ## 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
|
10 ## |
20536
6256f6e366ac
Fix copyright text in private ode functions
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20533
diff
changeset
|
11 ## Octave is distributed in the hope that it will be useful, but |
6256f6e366ac
Fix copyright text in private ode functions
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20533
diff
changeset
|
12 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
6256f6e366ac
Fix copyright text in private ode functions
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20533
diff
changeset
|
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
6256f6e366ac
Fix copyright text in private ode functions
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20533
diff
changeset
|
14 ## 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
|
15 ## |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
16 ## You should have received a copy of the GNU General Public License |
20536
6256f6e366ac
Fix copyright text in private ode functions
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20533
diff
changeset
|
17 ## along with Octave; see the file COPYING. If not, see |
6256f6e366ac
Fix copyright text in private ode functions
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20533
diff
changeset
|
18 ## <http://www.gnu.org/licenses/>. |
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 ## -*- texinfo -*- |
20548
25623ef2ff4f
doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents:
20543
diff
changeset
|
21 ## @deftypefn {Function File} {[@var{t_next}, @var{x_next}] =} runge_kutta_45_dorpri (@var{@@fun}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals_in}) |
25623ef2ff4f
doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents:
20543
diff
changeset
|
22 ## @deftypefnx {Function File} {[@var{t_next}, @var{x_next}, @var{x_est}] =} runge_kutta_45_dorpri (@var{@@fun}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals_in}) |
25623ef2ff4f
doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents:
20543
diff
changeset
|
23 ## @deftypefnx {Function File} {[@var{t_next}, @var{x_next}, @var{x_est}, @var{k_vals_out}] =} runge_kutta_45_dorpri (@var{@@fun}, @var{t}, @var{x}, @var{dt}, @var{options}, @var{k_vals_in}) |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
24 ## |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
25 ## This function can be used to integrate a system of ODEs with a given initial |
20621
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
26 ## condition @var{x} from @var{t} to @var{t+dt} with the Dormand-Prince method. |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
27 ## For the definition of this method see |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
28 ## @url{http://en.wikipedia.org/wiki/Dormand%E2%80%93Prince_method}. |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
29 ## |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
30 ## First output argument is the final integration time value. |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
31 ## |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
32 ## Second output parameter is the higher order computed solution at time |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
33 ## @var{t_next} (local extrapolation). |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
34 ## |
20548
25623ef2ff4f
doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents:
20543
diff
changeset
|
35 ## Third output parameter is a lower order solution for the estimation of the |
25623ef2ff4f
doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents:
20543
diff
changeset
|
36 ## error. |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
37 ## |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
38 ## Fourth output parameter is matrix containing the Runge-Kutta evaluations |
20621
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
39 ## to use in an FSAL scheme or for dense output. |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
40 ## |
20548
25623ef2ff4f
doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents:
20543
diff
changeset
|
41 ## First input argument is the function describing the system of ODEs to be |
25623ef2ff4f
doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents:
20543
diff
changeset
|
42 ## integrated. |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
43 ## |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
44 ## Second input parameter is the first extreme of integration interval. |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
45 ## |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
46 ## Third input argument is the initial condition of the system. |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
47 ## |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
48 ## Fourth input argument is the timestep, that is the length of the |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
49 ## integration interval. |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
50 ## |
20548
25623ef2ff4f
doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents:
20543
diff
changeset
|
51 ## Fifth input parameter is optional and describes a set of options useful to |
25623ef2ff4f
doc: Rewrite docstrings for ode* family of functions.
Rik <rik@octave.org>
parents:
20543
diff
changeset
|
52 ## adapt the computation to what is needed. |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
53 ## |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
54 ## Sixth input parameter is optional and describes the Runge-Kutta evaluations |
20621
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
55 ## of the previous step to use in an FSAL scheme. |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
56 ## @end deftypefn |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
57 ## |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
58 ## @seealso{odepkg} |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
59 |
20621
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
60 function [t_next, x_next, x_est, k] = runge_kutta_45_dorpri (f, t, x, dt, |
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
61 options = [], |
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
62 k_vals = [], |
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
63 t_next = t + dt) |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
64 |
20540
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
65 persistent a = [0 0 0 0 0 0; |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
66 1/5 0 0 0 0 0; |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
67 3/40 9/40 0 0 0 0; |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
68 44/45 -56/15 32/9 0 0 0; |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
69 19372/6561 -25360/2187 64448/6561 -212/729 0 0; |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
70 9017/3168 -355/33 46732/5247 49/176 -5103/18656 0; |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
71 35/384 0 500/1113 125/192 -2187/6784 11/84]; |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
72 persistent b = [0 1/5 3/10 4/5 8/9 1 1]; |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
73 persistent c = [(35/384) 0 (500/1113) (125/192) (-2187/6784) (11/84)]; |
20621
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
74 persistent c_prime = [(5179/57600) 0 (7571/16695) (393/640), ... |
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
75 (-92097/339200) (187/2100) (1/40)]; |
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
76 ## According to Shampine 1986: |
20540
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
77 ## persistent c_prime = [(1951/21600) 0 (22642/50085) (451/720), ... |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
78 ## (-12231/42400) (649/6300) (1/60)]; |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
79 |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
80 s = t + dt * b; |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
81 cc = dt * c; |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
82 aa = dt * a; |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
83 k = zeros (rows (x), 7); |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
84 |
20621
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
85 if (! isempty (options)) # extra arguments for function evaluator |
20634
80e630b37ba1
maint: Remove unnecessary 'v' prefix before variables in ODE m-files.
Rik <rik@octave.org>
parents:
20621
diff
changeset
|
86 args = options.funarguments; |
20543
3339c9bdfe6a
Activate FSAL property in dorpri timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20540
diff
changeset
|
87 else |
3339c9bdfe6a
Activate FSAL property in dorpri timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20540
diff
changeset
|
88 args = {}; |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
89 endif |
20543
3339c9bdfe6a
Activate FSAL property in dorpri timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20540
diff
changeset
|
90 |
20621
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
91 if (! isempty (k_vals)) # k values from previous step are passed |
20600
a22d8a2eb0e5
fix adaptive strategy in ode solvers.
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20554
diff
changeset
|
92 k(:,1) = k_vals(:,end); # FSAL property |
20634
80e630b37ba1
maint: Remove unnecessary 'v' prefix before variables in ODE m-files.
Rik <rik@octave.org>
parents:
20621
diff
changeset
|
93 else |
20600
a22d8a2eb0e5
fix adaptive strategy in ode solvers.
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20554
diff
changeset
|
94 k(:,1) = feval (f, t, x, args{:}); |
a22d8a2eb0e5
fix adaptive strategy in ode solvers.
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20554
diff
changeset
|
95 endif |
20634
80e630b37ba1
maint: Remove unnecessary 'v' prefix before variables in ODE m-files.
Rik <rik@octave.org>
parents:
20621
diff
changeset
|
96 |
20621
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
97 k(:,2) = feval (f, s(2), x + k(:,1) * aa(2, 1).' , args{:}); |
20540
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
98 k(:,3) = feval (f, s(3), x + k(:,1:2) * aa(3, 1:2).', args{:}); |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
99 k(:,4) = feval (f, s(4), x + k(:,1:3) * aa(4, 1:3).', args{:}); |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
100 k(:,5) = feval (f, s(5), x + k(:,1:4) * aa(5, 1:4).', args{:}); |
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
101 k(:,6) = feval (f, s(6), x + k(:,1:5) * aa(6, 1:5).', args{:}); |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
102 |
20552
eb9e2d187ed2
maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents:
20548
diff
changeset
|
103 ## compute new time and new values for the unknowns |
20621
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
104 ## t_next = t + dt; |
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
105 x_next = x + k(:,1:6) * cc(:); # 5th order approximation |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
106 |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
107 ## if the estimation of the error is required |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
108 if (nargout >= 3) |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
109 ## new solution to be compared with the previous one |
20621
b92f8e148936
maint: Continued clean-up of functions in ode/private dir.
Rik <rik@octave.org>
parents:
20600
diff
changeset
|
110 k(:,7) = feval (f, t_next, x_next, args{:}); |
20540
72cd24aa5f7a
Clean up and vetorize Dormant&Prince RK timestepper
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20536
diff
changeset
|
111 cc_prime = dt * c_prime; |
20552
eb9e2d187ed2
maint: Use Octave coding conventions in scripts/ode/private dir.
Rik <rik@octave.org>
parents:
20548
diff
changeset
|
112 x_est = x + k * cc_prime(:); |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
113 endif |
20634
80e630b37ba1
maint: Remove unnecessary 'v' prefix before variables in ODE m-files.
Rik <rik@octave.org>
parents:
20621
diff
changeset
|
114 |
20533
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
115 endfunction |
fcb792acab9b
Moving ode45, odeset, odeget, and levenshtein from odepkg to core.
jcorno <jacopo.corno@gmail.com>
parents:
diff
changeset
|
116 |