tp090r.apm.m4
Model tp090r
! Source version 2
! The present file has to be drawn through the m4 macro processor
! at first, with or without `-Drevisedhs'. With the macro
! defined, the feasible domain is reduced in comparison with the H+S
! one such that the solution becomes unique.
ifdef(`revisedhs',`define(`stricths',0)',`define(`stricths',1)')
Parameters
mu12[ 1] = 0.8603335890194
mu12[ 2] = 3.4256184594817
mu12[ 3] = 6.4372981791719
mu12[ 4] = 9.5293344053620
mu12[ 5] = 12.6452872238566
mu12[ 6] = 15.7712848748159
mu12[ 7] = 18.9024099568600
mu12[ 8] = 22.0364967279386
mu12[ 9] = 25.1724463266467
mu12[10] = 28.3096428544520
mu12[11] = 31.4477146375462
mu12[12] = 34.5864242152889
mu12[13] = 37.7256128277765
mu12[14] = 40.8651703304881
mu12[15] = 44.0050179208308
mu12[16] = 47.1450977367610
mu12[17] = 50.2853663377737
mu12[18] = 53.4257904773947
mu12[19] = 56.5663442798215
mu12[20] = 59.7070073053355
mu12[21] = 62.8477631944545
mu12[22] = 65.9885986984904
mu12[23] = 69.1295029738953
mu12[24] = 72.2704670603090
mu12[25] = 75.4114834888482
mu12[26] = 78.5525459842429
mu12[27] = 81.6936492356017
mu12[28] = 84.8347887180423
mu12[29] = 87.9759605524932
mu12[30] = 91.1171613944647
tg12[1:30] = tan(mu12[1:30])
mu24[1:30] = (1 + mu12[1:30]^2*(1 + tg12[1:30]^2)) &
/ (tg12[1:30] + mu12[1:30]*(1 + tg12[1:30]^2))
tg24[1:30] = tan(mu24[1:30])
mu48[1:30] = (1 + mu24[1:30]^2*(1 + tg24[1:30]^2)) &
/ (tg24[1:30] + mu24[1:30]*(1 + tg24[1:30]^2))
mu[1:30] = mu48[1:30]
isign[1] = 1
isign[2:30] = (-1)*isign[1:29]
snmu[1:30] = isign[1:30]*sqrt(1/(1 + mu[1:30]^2))
csmu[1:30] = isign[1:30]*sqrt(mu[1:30]^2/(1 + mu[1:30]^2))
snmuxcsmu[1:30] = mu[1:30]/(1 + mu[1:30]^2)
aux2[1:30] = snmuxcsmu[1:30]/(2*mu[1:30]) + 1/2
aux4[1:30] = (-2)*snmu[1:30]/mu[1:30] + 2*csmu[1:30]
A[1:30] = 2*snmu[1:30]/(mu[1:30] + snmuxcsmu[1:30])
hsum[0] = 2/15
mfcorrhs = 0
End Parameters
Variables
x[1] = 1/2 ifelse(stricths,1,`',`, >= 1/10')
x[2] = -1/2 ifelse(stricths,1,`',`, <= 0')
x[3] = 1/2 ifelse(stricths,1,`',`, >= 1/10')
x[4] = -1/2 ifelse(stricths,1,`',`, <= -1/10')
obj
End Variables
Intermediates
emx[1][1:30] = exp(-mu[1:30]^2*x[1]^2)
emx[2][1:30] = exp(-mu[1:30]^2*x[2]^2)
emx[3][1:30] = exp(-mu[1:30]^2*x[3]^2)
emx[4][1:30] = exp(-mu[1:30]^2*x[4]^2)
rhoaux[4][1:30] = 1*emx[1][1:30]*emx[2][1:30]*emx[3][1:30] &
*emx[4][1:30] &
- 2*emx[2][1:30]*emx[3][1:30]*emx[4][1:30] &
+ 2*emx[3][1:30]*emx[4][1:30] &
- 2*emx[4][1:30] &
+ 1
rho[1:30] = (-1)*rhoaux[4][1:30]/mu[1:30]^2
aux1[1:30] = A[1:30]^2*rhoaux[4][1:30]^2
aux3[1:30] = A[1:30]*rho[1:30]
hsum[1:30] = hsum[0:29] + aux1[1:30]*aux2[1:30] &
+ aux3[1:30]*aux4[1:30]
h = hsum[30]
mfcorrr = (-1)*x[2] + (x[3] - 8/10)^2
End Intermediates
Equations
0.0001 - h >= 0
! the problem is pretty ill-posed; though the best known
! objective is quite stable the solution is capricious
! without additional pressure
obj = x[1]^2 + x[2]^2 + x[3]^2 + x[4]^2 &
+ ifelse(stricths,1,`mfcorrhs',`mfcorrr')
! best known objective = 1.362656814889885
! begin of best known solution belonging to the revised case
! x[1] = 0.717050023543273
! x[2] = 0
! x[3] = 0.8
! x[4] = -0.456613708320804
! end of best known solution belonging to the revised case
End Equations
End Model
Stephan K.H. Seidl