changeset 3275:b9a024ee0312

[project @ 1999-10-12 05:28:52 by jwe]
author jwe
date Tue, 12 Oct 1999 05:28:53 +0000
parents 5a691cbef111
children edf6e4852287
files test/octave.test/diffeq/dassl-1.m test/octave.test/diffeq/dassl-2.m test/octave.test/diffeq/lsode-1.m test/octave.test/diffeq/lsode-2.m test/octave.test/diffeq/lsode-3.m
diffstat 5 files changed, 128 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/test/octave.test/diffeq/dassl-1.m
@@ -0,0 +1,33 @@
+## dassl-1.m
+##
+## Test dassl() function
+##
+## Author: David Billinghurst (David.Billinghurst@riotinto.com.au)
+##         Comalco Research and Technology
+##         20 May 1998
+##
+## Problem
+##
+##    y1' = -y2,   y1(0) = 1
+##    y2' =  y1,   y2(0) = 0
+##
+## Solution
+##
+##    y1(t) = cos(t)
+##    y2(t) = sin(t)
+
+x0 = [1; 0];
+xdot0 = [0; 1];
+t = (0:1:10)';
+
+tol = 100 * dassl_options ("absolute tolerance");
+
+function res = f (x, xdot, t)
+  res = [xdot(1)+x(2); xdot(2)-x(1)];
+endfunction
+
+[x, xdot] = dassl ("f", x0, xdot0, t);
+
+y = [cos(t), sin(t)];
+
+all (all (abs (x - y) < tol))
new file mode 100644
--- /dev/null
+++ b/test/octave.test/diffeq/dassl-2.m
@@ -0,0 +1,36 @@
+## dassl-2.m
+##
+## Test dassl() function
+##
+## Author: David Billinghurst (David.Billinghurst@riotinto.com.au)
+##         Comalco Research and Technology
+##         20 May 1998
+##
+## Based on SLATEC quick check for DASSL by Linda Petzold
+##
+## Problem
+##
+##   x1' + 10*x1 = 0,   x1(0) = 1
+##   x1  + x2    = 1,   x2(0) = 0
+## 
+##
+## Solution
+##
+##  x1(t) = exp(-10*t)
+##  x2(t) = 1 - x(1)
+
+x0 = [1; 0];
+xdot0 = [-10; 10];
+t = (0:0.2:1)';
+
+tol = 500 * dassl_options ("absolute tolerance");
+
+function res = f (x, xdot, t)
+  res = [xdot(1)+10*x(1); x(1)+x(2)-1];
+endfunction
+
+[x, xdot] = dassl ("f", x0, xdot0, t);
+
+y = [exp(-10*t), 1-exp(-10*t)];
+
+all (all (abs (x - y) < tol))
new file mode 100644
--- /dev/null
+++ b/test/octave.test/diffeq/lsode-1.m
@@ -0,0 +1,33 @@
+## dassl-1.m
+##
+## Test lsode() function
+##
+## Author: David Billinghurst (David.Billinghurst@riotinto.com.au)
+##         Comalco Research and Technology
+##         20 May 1998
+##
+## Problem
+##
+##    y1' = -y2,   y1(0) = 1
+##    y2' =  y1,   y2(0) = 0
+##
+## Solution
+##
+##    y1(t) = cos(t)
+##    y2(t) = sin(t)
+
+x0 = [1; 0];
+xdot0 = [0; 1];
+t = (0:1:10)';
+
+tol = 500 * lsode_options ("absolute tolerance");
+
+function xdot = f (x, t)
+  xdot = [-x(2); x(1)];
+endfunction
+
+x = lsode ("f", x0, t);
+
+y = [cos(t), sin(t)];
+
+all (all (abs (x - y) < tol))
new file mode 100644
--- /dev/null
+++ b/test/octave.test/diffeq/lsode-2.m
@@ -0,0 +1,13 @@
+function xdotdot = f (x, t)
+  xdotdot = [x(2); -x(1)];
+endfunction
+
+x0 = [1; 0];
+t = [0; 2*pi];
+tol = 100 * dassl_options ("absolute tolerance");
+
+x = lsode ("f", x0, t);
+
+y = [1, 0; 1, 0];
+
+all (all (abs (x - y) < tol))
new file mode 100644
--- /dev/null
+++ b/test/octave.test/diffeq/lsode-3.m
@@ -0,0 +1,13 @@
+function xdot = f (x, t)
+  xdot = x;
+endfunction
+
+x0 = 1;
+t = [0; 1];
+tol = 100 * dassl_options ("absolute tolerance");
+
+x = lsode ("f", x0, t);
+
+y = [1; e];
+
+all (all (abs (x - y) < tol))