diff src/DLD-FUNCTIONS/dassl.cc @ 7562:c827f5673321

move tests to individual source files
author John W. Eaton <jwe@octave.org>
date Thu, 06 Mar 2008 02:27:55 -0500
parents a1dbe9d80eee
children 81d6ab3ac93c
line wrap: on
line diff
--- a/src/DLD-FUNCTIONS/dassl.cc
+++ b/src/DLD-FUNCTIONS/dassl.cc
@@ -488,6 +488,87 @@
 }
 
 /*
+
+%% 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)
+%!function res = f (x, xdot, t)
+%!  res = [xdot(1)+x(2); xdot(2)-x(1)];
+%!test
+%! 
+%! x0 = [1; 0];
+%! xdot0 = [0; 1];
+%! t = (0:1:10)';
+%! 
+%! tol = 100 * dassl_options ("relative tolerance");
+%! 
+%! 
+%! [x, xdot] = dassl ("f", x0, xdot0, t);
+%! 
+%! y = [cos(t), sin(t)];
+%! 
+%! assert(all (all (abs (x - y) < tol)));
+
+%% 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)
+%!function res = f (x, xdot, t)
+%!  res = [xdot(1)+10*x(1); x(1)+x(2)-1];
+%!test
+%! 
+%! x0 = [1; 0];
+%! xdot0 = [-10; 10];
+%! t = (0:0.2:1)';
+%! 
+%! tol = 500 * dassl_options ("relative tolerance");
+%! 
+%! 
+%! [x, xdot] = dassl ("f", x0, xdot0, t);
+%! 
+%! y = [exp(-10*t), 1-exp(-10*t)];
+%! 
+%! assert(all (all (abs (x - y) < tol)));
+
+%!test
+%! dassl_options ("absolute tolerance", eps);
+%! assert(dassl_options ("absolute tolerance") == eps);
+
+%!error <Invalid call to dassl_options.*> dassl_options ("foo", 1, 2);
+
+*/
+
+/*
 ;;; Local Variables: ***
 ;;; mode: C++ ***
 ;;; End: ***