#************************************************************* # Test Problem 2 from Chapter 11, section 3.4 # Simple First Order Reversible Reaction #************************************************************* OPTION {{ FTOL = 1e-10; OTOL = 1e-10; NLP = "SNOPT"; }} DECLARATION {{ INDEX {m,i,p}; SET M = |1:20|; # Number of Data sets SET I = |1:3|; # Number of Variables SET P = |1:4|; # Number of Parameters XVAR {x(M,I), # Fitted data variables a(P) # Parameters }; ZVAR {z(I)}; ISPE {z(I)}; ZINC {1,0,0}; TIME {0,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55, 0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0}; # Observed data PARA xe(M,I) = {0.8241, 0.0937, 0.0821, 0.6852, 0.1345, 0.1802, 0.5747, 0.1654, 0.2598, 0.4867, 0.1899, 0.3233, 0.4166, 0.2094, 0.3738, 0.3608, 0.2249, 0.4141, 0.3164, 0.2373, 0.4461, 0.2810, 0.2472, 0.4717, 0.2529, 0.2550, 0.4920, 0.2304, 0.2613, 0.5082, 0.2126, 0.2662, 0.5210, 0.1984, 0.2702, 0.5313, 0.1870, 0.2733, 0.5395, 0.1780, 0.2759, 0.5460, 0.1709, 0.2779, 0.5511, 0.1651, 0.2794, 0.5553, 0.1606, 0.2807, 0.5585, 0.1570, 0.2817, 0.5612, 0.1541, 0.2825, 0.5632, 0.1518, 0.2832, 0.5649}; # Variable Bounds LBDS x(M,I) = < m E M | < i E I | 0 > >; UBDS x(M,I) = < m E M | < i E I | 1 > >; LBDS a(P) = {0,0,10,10}; UBDS a(P) = {10,10,50,50}; }} MODEL {{ MIN: <> >>; dae1: z'(1) =e= -a(1)*z(1) + a(2)*z(2); dae2: z'(2) =e= a(1)*z(1) - (a(2) + a(3))*z(2) + a(4)*z(3); dae3: z'(3) =e= -a(4)*z(3) + a(3)*z(2); err(m E M,i E I)[m]: z(i) - x(m,i) =e= 0; }}