Mercurial > hg > octave-terminal
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))