| Model Curve
|
|
| |
MODEL curvea ! linear regressions for L1 and L (infinity) norms |
| |
SET |
| |
|
nopts = {1 .. 19}; |
! number of data points |
| |
DATA |
| |
|
xvalue[nopts] << "xfile.dat", |
| |
|
yvalue[nopts] << "yfile.dat"; |
| |
VARIABLES |
| |
|
a free, |
! coefficients in |
| |
|
b free, |
! linear relation |
| |
|
maxdev, |
! maximum deviation variable |
| |
|
slack[nopts], |
! negative error |
| |
|
surp[nopts]; |
! positive error |
| |
OBJECTIVE |
| |
|
MINIMIZE sumdev = sum{i in nopts} (slack[i] + surp[i]); |
! minimise L1 norm |
| |
|
! MINIMIZE minmax = maxdev; |
! minimise L (infinity) norm |
| |
CONSTRAINTS |
| |
|
dev{i in nopts} : xvalue[i]*b + a + slack[i] |
! linear relation |
| |
|
- surp[i] = yvalue[i], |
|
| |
|
ula{i in nopts} : maxdev-slack[i] >= 0, |
! maximum deviation >= absolute deviations |
| |
|
ulb{i in nopts} : maxdev-surp[i] >= 0; |
|
| |
END MODEL |
| |
|
solve curvea; |
| |
|
print solution for curvea >> "curvea.sol"; |
| |
|
quit; |
| |
|
| |
|
| |
MODEL curveb ! quadratic regressions for L1 and L (infinity) norms |
| |
SET |
| |
|
nopts = {1 .. 19}; |
! number of data points |
| |
DATA |
| |
|
xvalue[nopts] << "xfile.dat", |
| |
|
yvalue[nopts] << "yfile.dat"; |
| |
VARIABLES |
| |
|
a free, |
! coefficients |
| |
|
b free, |
! in quadratic |
| |
|
c free, |
! relation |
| |
|
maxdev, |
! maximum deviation variable |
| |
|
slack[nopts], |
! negative error |
| |
|
surp[nopts]; |
! positive error |
| |
OBJECTIVE |
| |
|
! MINIMIZE sumdev = sum{i in nopts} (slack[i] + surp[i]); |
! minimise L1 norm |
| |
|
MINIMIZE minmax = maxdev; |
! minimise L (infinity) norm |
| |
CONSTRAINTS |
| |
|
dev{i in nopts} : (xvalue[i]*xvalue[i])*c + xvalue[i]*b |
! quadratic relation |
| |
|
+ a + slack[i] - surp[i] = yvalue[i], |
|
| |
|
ula{i in nopts} : maxdev-slack[i] >= 0, |
! maximum deviation >=absolute deviations |
| |
|
ulb{i in nopts} : maxdev-surp[i] >= 0; |
|
| |
END MODEL |
| |
|
solve curveb; |
| |
|
print solution for curveb >> "curveb.sol"; |
| |
|
quit; |
| |
|
| |
xfile.dat |
| |
[0.0,0.5,1.0,1.5,1.9,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.6,7.0,7.6,8.5,9.0,10.0] |
| |
|
| |
yfile.dat |
| |
[1.0,0.9,0.7,1.5,2.0,2.4,3.2,2.0,2.7,3.5,1.0,4.0,3.6,2.7,5.7,4.6,6.0,6.8,7.3] |
| |
|
| |
|