* Bugs 5824, 7732, 15344 fixed: datafit() upgraded + page overhauled
[scilab.git] / scilab / modules / optimization / tests / nonreg_tests / bug_2330.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2007-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- CLI SHELL MODE -->
9 // <-- NO CHECK REF -->
10 //
11 // <-- Non-regression test for bug 2330 -->
12 //
13 // <-- Bugzilla URL -->
14 // http://bugzilla.scilab.org/show_bug.cgi?id=2330
15 //
16 // <-- Short Description -->
17 //    datafit does not work equivalently on WinXP and Linux. With a given dataset and
18 //    same routines centered on datafit function, it works perfectly on Linux and
19 //    partially (some data are fitted some others not) on WinXP.
20
21 //build the data to fit
22 //---------------------
23 function Xcalc=biexp(p,t)
24   Xcalc = p(1).*exp(-p(2).*t) + p(3).*exp(-p(4).*t) + p(5);
25 endfunction;
26 t = (0:100:36000);
27 p = [0.1 ; 0.0001 ; 0.2 ; 0.0002 ; 0.3];
28 X = biexp(p,t);
29
30 //try to fit the data
31 //-------------------
32 //the error function
33 function e=myerf(p,X)
34     t = X(1,:)
35     e = sum(abs(X(2,:) - biexp(p,t)))
36 endfunction
37 // the initial point
38 p0 = [0.01 ; 0.001 ; 0.01 ; 0.001 ; 0.1];
39 //call datafit
40 [pr,err] = datafit(myerf,[t ; X], p0);
41 if err >= 6d-4 then pause,end