* Bugs 5824, 7732, 15344 fixed: datafit() upgraded + page overhauled
[scilab.git] / scilab / modules / optimization / tests / nonreg_tests / bug_2330.tst
index 69d4c17..2032a95 100644 (file)
@@ -4,11 +4,14 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-
+//
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+//
 // <-- Non-regression test for bug 2330 -->
 //
 // <-- Bugzilla URL -->
-// http://www.scilab.org/cgi-bin/bugzilla_bug_II/show_bug.cgi?id=2330
+// http://bugzilla.scilab.org/show_bug.cgi?id=2330
 //
 // <-- Short Description -->
 //    datafit does not work equivalently on WinXP and Linux. With a given dataset and
 //build the data to fit
 //---------------------
 function Xcalc=biexp(p,t)
-  Xcalc=p(1).*exp(-p(2).*t)+p(3).*exp(-p(4).*t)+p(5);
+  Xcalc = p(1).*exp(-p(2).*t) + p(3).*exp(-p(4).*t) + p(5);
 endfunction;
-t=(0:100:36000)'; 
-p=[0.1;0.0001;0.2;0.0002;0.3];
-X=biexp(p,t);
+t = (0:100:36000);
+p = [0.1 ; 0.0001 ; 0.2 ; 0.0002 ; 0.3];
+X = biexp(p,t);
 
 //try to fit the data
 //-------------------
 //the error function
-function e=myerf(p,X,t),e=X-biexp(p,t),endfunction
+function e=myerf(p,X)
+    t = X(1,:)
+    e = sum(abs(X(2,:) - biexp(p,t)))
+endfunction
 // the initial point
-p0=[0.01;0.001;0.01;0.001;0.1];
+p0 = [0.01 ; 0.001 ; 0.01 ; 0.001 ; 0.1];
 //call datafit
-[pr,err]=datafit(list(myerf,t),X,p0);
-if err>=5d-6 then pause,end
+[pr,err] = datafit(myerf,[t ; X], p0);
+if err >= 6d-4 then pause,end