/*Code will not run without Constrained Optimization Module obtainable from www.aptech.com*/ /*settings for CO Module and format*/ new; library co; coset; format 16,6; cls; _co_Algorithm = 3; _co_LineSearch = 2; /*Data Input*/ load ma[29,6]= "c:\\gauss\\touri1.txt"; mi = ma; /*Set ver= 1 if Asymmetric using GDP; set ver= 2 if Asymmetric using tourism expenditure; set ver = 3 if Symmetric [default]*/ ver=3; ma[1:29,3] = 10+zeros(29,1); coo = zeros(29, 2); coo[1:29, 2] = ma[1:29, 3]; coo[1:29, 2] = coo[1:29, 2]-1; _co_Bounds = coo; /*Startvektor*/ x0 = coo[1:29, 2]'; x0 = x0-2; {x, f, g, retcode } = co(&fsys, x0); output off; proc fsys (x); local l1, repo, sumo, ego, repo2, repo3, repo4, ropo; repo =(diag(ma[1:29, 5].*ma[1:29,5]')./(sumc(diag(ma[1:29, 5].*ma[1:29, 5]'))./29)+5); if ver == 1; ropo=(mi[1:29,5]./(sumc(mi[1:29,5])./29)); endif; if ver >1; ropo=(mi[1:29,4]./(sumc(mi[1:29,4])./29)); endif; if ver == 3; ego = 1+zeros(rows(ropo),1); endif; sumo =(repo[1]*(ma[1, 3]-x[1]))+(repo[2]*(ma[2, 3]-x[2]))+(repo[3]*(ma[3, 3]-x[3]))+(repo[4]*(ma[4, 3]-x[4]))+(repo[5]*(ma[5, 3]-x[5]))+(repo[6]*(ma[6, 3]-x[6]))+(repo[7]*(ma[7, 3]-x[7]))+(repo[8]*(ma[8, 3]-x[8]))+(repo[9]*(ma[9, 3]-x[9]))+(repo[10]*(ma[10, 3]-x[10]))+(repo[11]*(ma[11, 3]-x[11]))+(repo[12]*(ma[12, 3]-x[12]))+(repo[13]*(ma[13, 3]-x[13]))+(repo[14]*(ma[14, 3]-x[14]))+(repo[15]*(ma[15, 3]-x[15]))+(repo[16]*(ma[16, 3]-x[16]))+(repo[17]*(ma[17, 3]-x[17]))+(repo[18]*(ma[18, 3]-x[18]))+(repo[19]*(ma[19, 3]-x[19]))+(repo[20]*(ma[20, 3]-x[20]))+(repo[21]*(ma[21, 3]-x[21]))+(repo[22]*(ma[22, 3]-x[22]))+(repo[23]*(ma[23, 3]-x[23]))+(repo[24]*(ma[24, 3]-x[24]))+(repo[25]*(ma[25, 3]-x[25]))+(repo[26]*(ma[26, 3]-x[26]))+(repo[27]*(ma[27, 3]-x[27]))+(repo[28]*(ma[28, 3]-x[28]))+(repo[29]*(ma[29, 3]-x[29])); l1=((repo[1,1]+x[1])*(sumo)-(repo[1,1]*(ma[1,3]-x[1])))^ego[1]*((repo[2,1]+x[2])*(sumo)-(repo[2,1]*(ma[2,3]-x[2])))^ego[2] *((repo[3,1]+x[3])*(sumo)-(repo[3,1]*(ma[3,3]-x[3])))^ego[3] *((repo[4,1]+x[4])*(sumo)-(repo[4,1]*(ma[4,3]-x[4])))^ego[4] *((repo[5,1]+x[5])*(sumo)-(repo[5,1]*(ma[5,3]-x[5])))^ego[5] *((repo[6,1]+x[6])*(sumo)-(repo[6,1]*(ma[6,3]-x[6])))^ego[6] *((repo[7,1]+x[7])*(sumo)-(repo[7,1]*(ma[7,3]-x[7])))^ego[7] *((repo[8,1]+x[8])*(sumo)-(repo[8,1]*(ma[8,3]-x[8])))^ego[8] *((repo[9,1]+x[9])*(sumo)-(repo[9,1]*(ma[9,3]-x[9])))^ego[9] *((repo[10,1]+x[10])*(sumo)-(repo[10,1]*(ma[10,3]-x[10])))^ego[10] *((repo[11,1]+x[11])*(sumo)-(repo[11,1]*(ma[11,3]-x[11])))^ego[11] *((repo[12,1]+x[12])*(sumo)-(repo[12,1]*(ma[12,3]-x[12])))^ego[12] *((repo[13,1]+x[13])*(sumo)-(repo[13,1]*(ma[13,3]-x[13])))^ego[13] *((repo[14,1]+x[14])*(sumo)-(repo[14,1]*(ma[14,3]-x[14])))^ego[14] *((repo[15,1]+x[15])*(sumo)-(repo[15,1]*(ma[15,3]-x[15])))^ego[15] *((repo[16,1]+x[16])*(sumo)-(repo[16,1]*(ma[16,3]-x[16])))^ego[16] *((repo[17,1]+x[17])*(sumo)-(repo[17,1]*(ma[17,3]-x[17])))^ego[17] *((repo[18,1]+x[18])*(sumo)-(repo[18,1]*(ma[18,3]-x[18])))^ego[18] *((repo[19,1]+x[19])*(sumo)-(repo[19,1]*(ma[19,3]-x[19])))^ego[19] *((repo[20,1]+x[20])*(sumo)-(repo[20,1]*(ma[20,3]-x[20])))^ego[20] *((repo[21,1]+x[21])*(sumo)-(repo[21,1]*(ma[21,3]-x[21])))^ego[21] *((repo[22,1]+x[22])*(sumo)-(repo[22,1]*(ma[22,3]-x[22])))^ego[22] *((repo[23,1]+x[23])*(sumo)-(repo[23,1]*(ma[23,3]-x[23])))^ego[23] *((repo[24,1]+x[24])*(sumo)-(repo[24,1]*(ma[24,3]-x[24])))^ego[24] *((repo[25,1]+x[25])*(sumo)-(repo[25,1]*(ma[25,3]-x[25])))^ego[25] *((repo[26,1]+x[26])*(sumo)-(repo[26,1]*(ma[26,3]-x[26])))^ego[26] *((repo[27,1]+x[27])*(sumo)-(repo[27,1]*(ma[27,3]-x[27])))^ego[27] *((repo[28,1]+x[28])*(sumo)-(repo[28,1]*(ma[28,3]-x[28])))^ego[28] *((repo[29,1]+x[29])*(sumo)-(repo[29,1]*(ma[29,3]-x[29])))^ego[29] ; l1 = -sqrt(sqrt(sqrt(l1./(99^9)))); retp(l1); endp; call coPRT(x, f,g,retcode); dd = x./(sumc(x)/29); ddd= x./(sumc(x)); d = ma[1:29,1]+ma[1:29,2]; d =d./(sumc(d)/29); tt=d./(sumc(d)); ko = zeros(29,9); ff= x./maxc(x); fff = d./maxc(d); /*gernerating Output*/ ko[1:29,1] = dd; ko[1:29,2] = d; ko[1:29,3] = abs(d-dd); ko[1:29,4] = ddd; ko[1:29,5] = tt; ko[1:29,6] = abs(tt-ddd); ko[1:29,7] = fff; ko[1:29,8] = ff; ko[1:29,9] = abs(ff-fff); /*printing Output from lef to right: Spalten von links nach rechts: 1. Vorhersage: Konzessionen/mean(Knzessionen) 2. Outcome: Konzessionen/mean(Konzessionen) 3. Differenz: abs(1.-2.) 4. Vorhersage: Konzessionen/summe(KOnzessionen) 5. Outcome: Konzessionen/summe(Konzessionen) 6. Differenz: abs(4.-5.) 7. Vorhersage: Konzessionen/MAXimum(KOnzessionen) 8. Outcome: Konzessionen/Maximum(Konzessionen) 9. Differenz: abs(7.-8.)*/ print ko;