Xcos solvers : Sundials Dormand-Price 4(5) implementation
[scilab.git] / scilab / modules / scicos / tests / unit_tests / LSodar.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2012 - Scilab Enterprises - Paul Bignier
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 // <-- ENGLISH IMPOSED -->
9
10 // Execute with exec("SCI/modules/scicos/tests/unit_tests/LSodar.tst");
11 //  or test_run('scicos', 'LSodar', ['no_check_error_output']);
12
13 // Import diagram
14 loadScicos();
15 loadXcosLibs();
16 assert_checktrue(importXcosDiagram("SCI/modules/xcos/tests/unit_tests/LSodar_test.zcos"));
17
18 // Set solver to LSodar + run LSodar + save results
19 scs_m.props.tol(6) = 0;                                         // Set solver to LSodar
20 try scicos_simulate(scs_m, 'nw'); catch disp(lasterror()); end; // Run LSodar
21 lsodarval = res.values;  // Results
22 time = res.time;         // Time
23
24 // Set solver to CVode BDF/Newton + run + save results
25 scs_m.props.tol(6) = 1;
26 try scicos_simulate(scs_m, 'nw'); catch disp(lasterror()); end;
27 cvval = res.values;
28
29 // Compare results
30 compa = abs(lsodarval-cvval);
31
32 // Extract mean, standard deviation, maximum
33 mea = mean(compa);
34 [maxi, indexMaxi] = max(compa);
35 stdeviation = st_deviation(compa);
36
37 // Verifying closeness of the results
38 assert_checktrue(maxi <= 10^-8);
39 assert_checktrue(mea <= 10^-8);
40 assert_checktrue(stdeviation <= 10^-8);