Bug #10574 fixed - Runge-Kutta-Method failed for vector [x, 1] with x > 9.
[scilab.git] / scilab / modules / differential_equations / tests / nonreg_tests / bug_10574.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2012 - DIGITEO - Allan CORNET
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- Non-regression test for bug 10574 -->
9 //
10 // <-- Bugzilla URL -->
11 //http://bugzilla.scilab.org/show_bug.cgi?id=10574
12 //
13 // <-- Short Description -->
14 // Runge-Kutta-Method failed for vector [x, 1] with x > 9
15 dt = 0.25;
16 a = 1;
17 b = a/dt;
18 t = 0:dt:a;
19 t0 = t(1);
20 St = size(t);
21 Dim = 18;
22 x = ones(Dim, 1);
23 X = eye(Dim,Dim);
24 function xdot = Test(t, x)
25   xdot = X * x;
26 endfunction
27 x = ode('rk', x, t0, t, Test);
28 assert_checkequal(size(x), [18 5]);
29 REF_X = [    1.    1.2840254    1.6487213    2.117    2.7182818; ..
30     1.    1.2840254    1.6487213    2.117    2.7182818; ..
31     1.    1.2840254    1.6487213    2.117    2.7182818; ..
32     1.    1.2840254    1.6487213    2.117    2.7182818; ..
33     1.    1.2840254    1.6487213    2.117    2.7182818; ..
34     1.    1.2840254    1.6487213    2.117    2.7182818; ..
35     1.    1.2840254    1.6487213    2.117    2.7182818; ..
36     1.    1.2840254    1.6487213    2.117    2.7182818; ..
37     1.    1.2840254    1.6487213    2.117    2.7182818; ..
38     1.    1.2840254    1.6487213    2.117    2.7182818; ..
39     1.    1.2840254    1.6487213    2.117    2.7182818; ..
40     1.    1.2840254    1.6487213    2.117    2.7182818; ..
41     1.    1.2840254    1.6487213    2.117    2.7182818; ..
42     1.    1.2840254    1.6487213    2.117    2.7182818; ..
43     1.    1.2840254    1.6487213    2.117    2.7182818; ..
44     1.    1.2840254    1.6487213    2.117    2.7182818; ..
45     1.    1.2840254    1.6487213    2.117    2.7182818; ..
46     1.    1.2840254    1.6487213    2.117    2.7182818];
47 assert_checkalmostequal(x, REF_X, 0, 1e-7);
48 Dim = 9;
49 x = ones(Dim, 1);
50 X = eye(Dim, Dim);
51 x = ode('rk', x, t0, t, Test);
52 assert_checkequal(size(x), [9 5]);
53 REF_X = [    1.    1.2840254    1.6487213    2.117    2.7182818; ..
54     1.    1.2840254    1.6487213    2.117    2.7182818; ..
55     1.    1.2840254    1.6487213    2.117    2.7182818; ..
56     1.    1.2840254    1.6487213    2.117    2.7182818; ..
57     1.    1.2840254    1.6487213    2.117    2.7182818; ..
58     1.    1.2840254    1.6487213    2.117    2.7182818; ..
59     1.    1.2840254    1.6487213    2.117    2.7182818; ..
60     1.    1.2840254    1.6487213    2.117    2.7182818; ..
61     1.    1.2840254    1.6487213    2.117    2.7182818];
62 assert_checkalmostequal(x, REF_X, 0, 1e-7);