/usr/share/octave/packages/odepkg-0.8.5/odepkg_examples_ide.m is in octave-odepkg 0.8.5-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | %# Copyright (C) 2008-2012, Thomas Treichl <treichl@users.sourceforge.net>
%# OdePkg - A package for solving ordinary differential equations and more
%#
%# This program is free software; you can redistribute it and/or modify
%# it under the terms of the GNU General Public License as published by
%# the Free Software Foundation; either version 2 of the License, or
%# (at your option) any later version.
%#
%# This program is distributed in the hope that it will be useful,
%# but WITHOUT ANY WARRANTY; without even the implied warranty of
%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
%# GNU General Public License for more details.
%#
%# You should have received a copy of the GNU General Public License
%# along with this program; If not, see <http://www.gnu.org/licenses/>.
%# -*- texinfo -*-
%# @deftypefn {Function File} {[@var{}] =} odepkg_examples_ide (@var{})
%# Open the IDE examples menu and allow the user to select a demo that will be evaluated.
%# @end deftypefn
function [] = odepkg_examples_ide ()
vode = 1; while (vode > 0)
clc;
fprintf (1, ...
['IDE examples menu:\n', ...
'==================\n', ...
'\n', ...
' (1) Solve the "Robertson problem" with solver "odebdi"\n', ...
' (2) Solve another "Robertson implementation" with solver "odekdi"\n', ...
' (3) Solve a stiff "Van der Pol" implementation with solver "odebdi"\n', ...
' (4) Solve a stiff "Van der Pol" implementation with solver "odekdi"\n', ...
'\n', ...
' Note: There are further IDE examples available with the OdePkg\n', ...
' testsuite functions.\n', ...
'\n', ...
' If you have another interesting IDE example that you would like\n', ...
' to share then please modify this file, create a patch and send\n', ...
' your patch to the OdePkg developer team.\n', ...
'\n' ]);
vode = input ('Please choose a number from above or press <Enter> to return: ');
clc; if (vode > 0 && vode < 5)
%# We can't use the function 'demo' directly here because it does
%# not allow to run other functions within a demo.
vexa = example (mfilename (), vode);
disp (vexa); eval (vexa);
input ('Press <Enter> to continue: ');
end %# if (vode > 0)
end %# while (vode > 0)
%!demo
%! # Solve the "Robertson problem" that is given as a function handle
%! # to an implicite differential equation implementation.
%!
%! function [vres] = firobertson (vt, vy, vyd, varargin)
%! vres(1,1) = -0.04*vy(1) + 1e4*vy(2)*vy(3) - vyd(1);
%! vres(2,1) = 0.04*vy(1) - 1e4*vy(2)*vy(3) - 3e7*vy(2)^2-vyd(2);
%! vres(3,1) = vy(1) + vy(2) + vy(3) - 1;
%! endfunction
%!
%! vopt = odeset ("NormControl", "on");
%! vsol = odebdi (@firobertson, [0, 1e5], [1, 0, 0], [-4e-2, 4e-2, 0], vopt);
%! plot (vsol.x, vsol.y);
%!demo
%! # Solve the "Robertson problem" that is given as a function handle
%! # to an implicite differential equation implementation.
%!
%! function [vres] = firobertson (vt, vy, vyd, varargin)
%! vres(1,1) = -0.04*vy(1) + 1e4*vy(2)*vy(3) - vyd(1);
%! vres(2,1) = 0.04*vy(1) - 1e4*vy(2)*vy(3) - 3e7*vy(2)^2-vyd(2);
%! vres(3,1) = vy(1) + vy(2) + vy(3) - 1;
%! endfunction
%!
%! vopt = odeset ("NormControl", "on");
%! vsol = odekdi (@firobertson, [0, 1e5], [1, 0, 0], [-4e-2, 4e-2, 0], vopt);
%! plot (vsol.x, vsol.y);
%!demo
%! # Solve the "Van der Pol" problem that is given as a function
%! # handle to an implicite differential equation implementation.
%!
%! function [vres] = fvanderpol (vt, vy, vyd, varargin)
%! mu = varargin{1};
%! vres = [vy(2) - vyd(1);
%! mu * (1 - vy(1)^2) * vy(2) - vy(1) - vyd(2)];
%! endfunction
%!
%! vopt = odeset ("NormControl", "on", "RelTol", 1e-8, "MaxStep", 1e-2);
%! vsol = odebdi (@fvanderpol, [0, 20], [2; 0], [0; -2], vopt, 10);
%! plot (vsol.x, vsol.y);
%!demo
%! # Solve the "Van der Pol" problem that is given as a function
%! # handle to an implicite differential equation implementation.
%!
%! function [vres] = fvanderpol (vt, vy, vyd, varargin)
%! mu = varargin{1};
%! vres = [vy(2) - vyd(1);
%! mu * (1 - vy(1)^2) * vy(2) - vy(1) - vyd(2)];
%! endfunction
%!
%! vsol = odekdi (@fvanderpol, [0, 1000], [2; 0], [0; -2], 500);
%! plot (vsol.x, vsol.y);
%# Local Variables: ***
%# mode: octave ***
%# End: ***
|