fmcTitle ("tp067v3")$ /* Source version 2 */ /* FMCMAC post processor version 1.2 */ /* FMC's second native input language. */ /* The Hock & Schittkowski test problem #67. */ /* This is a free, more intuitive formulation of #67, */ /* without discontinuities, as it would probably be defined */ /* by a modeler of our days. */ /* The solution is equal to the one obtained with tp067v1, */ /* i.e., it is sensible but not exact in the sense of #67. */ y2 : tp067v3x (fmc_ident_tcb, 2, 0, x1, x2, x3)$ y3 : tp067v3x (fmc_ident_tcb, 3, 0, x1, x2, x3)$ y4 : tp067v3x (fmc_ident_tcb, 4, 0, x1, x2, x3)$ y5 : tp067v3x (fmc_ident_tcb, 5, 0, x1, x2, x3)$ y6 : tp067v3x (fmc_ident_tcb, 6, 0, x1, x2, x3)$ y7 : tp067v3x (fmc_ident_tcb, 7, 0, x1, x2, x3)$ y8 : tp067v3x (fmc_ident_tcb, 8, 0, x1, x2, x3)$ fmcFunctionDiffHint ([ tp067v3x, 0, 0, 0, tp067v3x ( fmcFunctionArg1, fmcFunctionArg2, 1, fmcFunctionArg4, fmcFunctionArg5, fmcFunctionArg6 ), tp067v3x ( fmcFunctionArg1, fmcFunctionArg2, 2, fmcFunctionArg4, fmcFunctionArg5, fmcFunctionArg6 ), tp067v3x ( fmcFunctionArg1, fmcFunctionArg2, 3, fmcFunctionArg4, fmcFunctionArg5, fmcFunctionArg6 ) ])$ fmcExternalCodePath ("../../doc/RevisedHockSchittkowski/src/tp067v3x.c")$ myminfun : -(0.063b0*y2*y5 - 5.04b0*x1 - 3.36b0*y3 - 0.035b0*x2 - 10*x3)$ fmcMinimum (myminfun)$ fmcInequality (i1, y2 - 0)$ fmcInequality (i2, y3 - 0)$ fmcInequality (i3, y4 - 85)$ fmcInequality (i4, y5 - 90)$ fmcInequality (i5, y6 - 3)$ fmcInequality (i6, y7 - 1/100)$ fmcInequality (i7, y8 - 145)$ fmcInequality (i8, 5000 - y2)$ fmcInequality (i9, 2000 - y3)$ fmcInequality (i10, 93 - y4)$ fmcInequality (i11, 95 - y5)$ fmcInequality (i12, 12 - y6)$ fmcInequality (i13, 4 - y7)$ fmcInequality (i14, 162 - y8)$ fmcStrongLowerBound (x1, 10^(-5))$ fmcStrongLowerBound (x2, 10^(-5))$ fmcStrongLowerBound (x3, 10^(-5))$ fmcStrongUpperBound (x1, 2000)$ fmcStrongUpperBound (x2, 16000)$ fmcStrongUpperBound (x3, 120)$ fmcInitialValue (x1, 1745)$ fmcInitialValue (x2, 12000)$ fmcInitialValue (x3, 110)$ myownabs (x) := fmc_m_abs (x)$ myabsdevnod0_0 : myownabs (myminfun + 1162.02698005969b0)$ myreldevnod0_0 : myownabs (myminfun/1162.02698005969b0 + 1)$ myabsdevnod0_1 : myownabs (x1 - 1728.371443241086b0)$ myreldevnod0_1 : myownabs (x1/1728.371443241086b0 - 1)$ myabsdevnod0_2 : myownabs (x2 - 16000)$ myreldevnod0_2 : myownabs (x2/16000 - 1)$ myabsdevnod0_3 : myownabs (x3 - 98.13617652300942b0)$ myreldevnod0_3 : myownabs (x3/98.13617652300942b0 - 1)$ myabsdevnod1_0 : (1/2)*(myownabs (myabsdevnod0_0 - myabsdevnod0_1) + (myabsdevnod0_0 + myabsdevnod0_1))$ myreldevnod1_0 : (1/2)*(myownabs (myreldevnod0_0 - myreldevnod0_1) + (myreldevnod0_0 + myreldevnod0_1))$ myabsdevnod1_2 : (1/2)*(myownabs (myabsdevnod0_2 - myabsdevnod0_3) + (myabsdevnod0_2 + myabsdevnod0_3))$ myreldevnod1_2 : (1/2)*(myownabs (myreldevnod0_2 - myreldevnod0_3) + (myreldevnod0_2 + myreldevnod0_3))$ myabsdevnod2_0 : (1/2)*(myownabs (myabsdevnod1_0 - myabsdevnod1_2) + (myabsdevnod1_0 + myabsdevnod1_2))$ myreldevnod2_0 : (1/2)*(myownabs (myreldevnod1_0 - myreldevnod1_2) + (myreldevnod1_0 + myreldevnod1_2))$ zmyabsdevmax : myabsdevnod2_0$ zmyreldevmax : myreldevnod2_0$ fmcEscortFloat (x1, x1)$ fmcEscortFloat (x2, x2)$ fmcEscortFloat (x3, x3)$ fmcEscortFloat ('myminfun, myminfun)$ fmcEscortFloat ('zmyabsdevmax, zmyabsdevmax)$ fmcEscortFloat ('zmyreldevmax, zmyreldevmax)$