set x inputs /bread, meat, milk/ z outputs /meal1, meal2, meal3/; alias (x,xx); alias (z,zz); table aa(x,xx) quadratic price coefficients bread meat milk bread -0.01 0.003 0.002 meat 0.003 -0.05 0.001 milk 0.002 0.001 -0.07 table bb(z,zz) quadratic quantity coefficients meal1 meal2 meal3 meal1 0.050 0.000 -0.003 meal2 0.000 0.060 -0.002 meal3 -0.003 -0.002 0.075 table gg(x,z) effect of quantity on price meal1 meal2 meal3 bread 0.003 0.000 0.000 meat 0.000 0.004 0.000 milk 0.000 0.000 0.005 parameter a(x) price constants /bread 100, meat 50, milk 75/; parameter b(z) quantity coefficients /meal1 0, meal2 0, meal3 0/; parameter ps(x) prices /bread 1.00, meat 4.00, milk 1.89/; variables p(x) input prices q(z) output levels u utility; positive variable q(z); equations cost household cost function utility utility function; cost.. sum(x,a(x)*p(x)+sum(xx,p(x)*aa(x,xx)*p(xx)))+sum(z,b(z)*q(z)+sum(zz,q(z)*bb(z,zz)*q(zz)))+ sum((x,z),p(x)*q(z)*gg(x,z)) =l= 450.0; utility.. q("meal1")**.3*q("meal2")**.4*q("meal3")**.3 =e= u; q.lo(z) = 0.001; p.fx(x) = ps(x); model port using /all/; solve port using nlp maximizing u;