examples/cflsq.mod
author Alpar Juttner <alpar@cs.elte.hu>
Sun, 05 Dec 2010 17:35:23 +0100
changeset 2 4c8956a7bdf4
permissions -rw-r--r--
Set up CMAKE build environment
     1 /*Curve fitting problem by Least Squares
     2   Nigel_Galloway@operamail.com
     3   October 1st., 2007
     4 */
     5 set Sample;
     6 param Sx {z in Sample};
     7 param Sy {z in Sample};
     8 
     9 var X;
    10 var Y;
    11 var Ex{z in Sample};
    12 var Ey{z in Sample};
    13 
    14 /* sum of variances is zero for Sx*/
    15 variencesX{z in Sample}: X + Ex[z] = Sx[z];
    16 zumVariancesX: sum{z in Sample} Ex[z] = 0;
    17 /* sum of variances is zero for Sy*/
    18 variencesY{z in Sample}: Y + Ey[z] = Sy[z];
    19 zumVariancesY: sum{z in Sample} Ey[z] = 0;
    20 
    21 solve;
    22 
    23 param b1 := (sum{z in Sample} Ex[z]*Ey[z])/(sum{z in Sample} Ex[z]*Ex[z]);
    24 printf "\nbest linear fit is:\n\ty = %f %s %fx\n\n", Y-b1*X, if b1 < 0 then "-" else "+", abs(b1);
    25 
    26 data;
    27 
    28 param:
    29 Sample:   Sx    Sy :=
    30   1         0    1
    31   2       0.5  0.9
    32   3         1  0.7
    33   4       1.5  1.5
    34   5       1.9    2
    35   6       2.5  2.4
    36   7         3  3.2
    37   8       3.5    2
    38   9         4  2.7
    39  10       4.5  3.5
    40  11         5    1
    41  12       5.5    4
    42  13         6  3.6
    43  14       6.6  2.7
    44  15         7  5.7
    45  16       7.6  4.6
    46  17       8.5    6
    47  18         9  6.8
    48  19        10  7.3
    49 ;
    50 
    51 end;