Lindo Systems

MODEL:
SETS:
   PERIODS /1..8/: OBSERVED, PREDICT,
    ERROR;
   QUARTERS /1..4/: SEASFAC;
ENDSETS

DATA:
   OBSERVED = 10 14 12 19 14 21 19 26;
ENDDATA

MIN = @SUM( PERIODS: ERROR ^ 2);

@FOR( PERIODS: ERROR =
 PREDICT - OBSERVED);

@FOR( PERIODS( P): PREDICT( P) =
 SEASFAC( @WRAP( P, 4))
  * ( BASE + P * TREND));

@SUM( QUARTERS: SEASFAC) = 4;

@FOR( PERIODS: @FREE( ERROR); 
 @BND( -1000, ERROR, 1000));

END