* Rental market simulation with Eswaran and Kotwal model $offsymxref offsymlist options limrow=0, limcol=0; options solprint=off; ************************************************************* * definition of sets and parameters ************************************************************* set i number of simulation /1*1 /; set j number of simulation /1*30/; parameters a0, aland, alab, afert, s1, s2, u0, u1, cr0, cr1, pfert, wage, rent, kbar, lowned, dumshare, w0, vmax, vj; a0 =3; aland =0.25; alab =.65;afert=.35; s1 =0.001; s2 =0.00 ; u0 =1.5 ; u1=0.5; w0 = 3.206; cr0 =0.4; cr1 = 1.9; wage =1.8; rent =0.350 ; kbar =4; pfert=.5 ; lowned=0; parameter sol(i,*) solution table; parameter soli(i,j,*) solution table; ************************************************************* * definition of variables and equations ************************************************************* positive variables land operated land landsh sharecropped land lin family labor on farm labor1 labor on farm on own land labor2 labor on farm on sharecropped land loff family labor on labor market lrest family labor in leisure lhired hired labor q production qown production qshare production fert fertilizer use fert1 fertilizer use fert2 fertilizer use tshare tenant share lambdacr lagrange mult on credit ; variables w tenant welfare v landlord welfare wagey net wage income tfix tenant fixed income ; equations prodeq production function prodown production function on owned land prodsh production function on sharecropped land utility utility function utilsh utility function for sharecropper utilll utility function for landlord netwage netwage income labor labor allocation labish first oredr cond for on farm hireyes first oredr cond for hired hireno1 no hired worker hireno2 no hired worker offyes first oredr cond for off farm offno1 no off farm work offno2 no off farm work fertsh first oredr cond for fert2 credit working capital constraint creditsh working capital constraint for sharecropper landeq2 sharecropped area decided by landlord welften sharecropped area decided by landlord landeq1 opportunity cost of owned land rest forcing lrest to be positive lineq forcing lin to be positive lhiredeq forcing lhired to be positive labor1eq forcing labor1 to be positive labor2eq forcing labor2 to be positive lhirepos forcing lhired to be positive cultivate forcing land to be positive cultivsh forcing sharecropped land to be positive ferteq forcing fert to be positive ferteq1 forcing fert to be positive ferteq2 forcing fert to be positive tshareeq forcing tshare to be less than one ; prodeq.. q =e= a0 * land**aland * (lin+lhired)**alab * fert**afert; prodown.. qown =e= a0 * land**aland * labor1**alab * fert1**afert; prodsh.. qshare =e= a0 * landsh**aland * labor2**alab * fert2**afert; utility.. w =e= q + wagey + rent*(lowned-land) - fert*pfert + u0 * lrest**u1; utilsh.. w =e= qown + tshare*qshare + wagey - (fert1+tshare*fert2)*pfert + rent*(lowned-land) + u0 * lrest**u1; labish.. tshare*alab*qshare-labor2* u0*u1*lrest**(u1-1) =e= 0; hireyes.. tshare*alab*qshare - labor2*wage*(1+s1+2*s2*lhired) *(1+lambdacr) =e= 0; hireno1.. lhired =e= 0; hireno2.. tshare*alab*qshare - labor2*wage*(1+s1+2*s2*lhired) *(1+lambdacr) =g= 0; offno1.. loff =e= 0; offno2.. wage*(1+lambdacr)-u0*u1*lrest**(u1-1) =l= 0; offyes.. wage*(1+lambdacr)-u0*u1*lrest**(u1-1) =e= 0; fertsh.. afert*qshare - fert2*pfert*(1+lambdacr) =e=0 ; utilll.. v=e=(1-tshare)*qshare-(1-tshare)*pfert*fert2 - tfix -rent*landsh; * utilll.. v =e= (1-tshare)*qshare - tfix -rent*landsh; netwage.. wagey =e= wage*(loff-lhired*(1+ s1 + s2*lhired)) ; labor.. lin + loff + lrest =l= 1. ; * credit.. wage*(lhired*(1+s1+s2*lhired)-loff) credit.. rent*(land-lowned) + wage*(lhired*(1+s1+s2*lhired)-loff) + kbar + fert*pfert =l= cr0 + cr1*lowned ; creditsh.. rent*(land-lowned) +wage*(lhired*(1+s1+s2*lhired)-loff) + kbar + (fert1+tshare*fert2)*pfert =l= cr0 + cr1*lowned ; lhiredeq.. lhired =e= labor1 + labor2 - lin; landeq2.. aland*qshare =e= rent*landsh; welften.. w =e= w0; landeq1.. land =l= lowned ; rest.. lrest =g= .001; lineq.. lin =g= .001; labor1eq.. labor1 =g= .001; labor2eq.. labor2 =g= .001; lhirepos.. lhired =g= .001; cultivate.. land =g= .001 ; cultivsh.. landsh =g= .001 ; ferteq.. fert =g= .001; ferteq1.. fert1 =g= .001; ferteq2.. fert2 =g= .001; tshareeq.. tshare =l= 1; ************************************************************* * definition of models ************************************************************* model simple /prodeq, utility, netwage, labor, rest/; model basic /prodeq, utility, netwage, labor, rest, cultivate, credit/; model fixedr /prodeq, utility, netwage, labor, rest, cultivate, credit, ferteq, lineq, utilll/; model sharecr /prodown, prodsh, utilsh, netwage, labor, lhiredeq, rest, lineq, labor1eq, labor2eq, cultivate, cultivsh, ferteq1, ferteq2, creditsh , landeq1, lhirepos/; model sharoff /prodown, prodsh, utilsh, netwage, labor, lhiredeq, rest, lineq, labor1eq, labor2eq, cultivate, cultivsh, ferteq1, ferteq2, creditsh , landeq1, welften, utilll, labish, hireno1, offyes,fertsh, tshareeq/; model sharhire /prodown, prodsh, utilsh, netwage, labor, lhiredeq, rest, lineq, labor1eq, labor2eq, cultivate, cultivsh, ferteq1, ferteq2, creditsh , landeq1, welften, utilll, labish, hireyes, offno1, fertsh, tshareeq, lhirepos/; model sharself /prodown, prodsh, utilsh, netwage, labor, lhiredeq, rest, lineq, labor1eq, labor2eq, cultivate, cultivsh, ferteq1, ferteq2, creditsh , landeq1, welften, utilll, labish, hireno1, hireno2, offno1, offno2, fertsh, tshareeq/; model nocredit /prodeq, utility, netwage, labor, rest, cultivate, ferteq, lineq/; ************************************************************* * initial values. Loop on solution. ************************************************************* qown.l=0; qshare.l=0.; fert1.l=0; fert2.l=0; landsh.l=0; fert.l=0; labor1.l=0; labor2.l=0.; tshare.l=0; tfix.l=0.;lambdacr.l=0; q.l=0; dumshare=1; w0 = 2.901; w0=wage; *tshare.fx =0.5; *tfix.fx =0; lowned=0.001 ;cr0=2.4; aland=.25; alab =.74;afert=.01; landsh.fx = 50.; tshare.fx = .5; tfix.fx =0; cr0 = 25.; ****************** * 1rst loop loop (i, *landsh.fx = landsh.l +2.; cr0 = cr0 +.2 $(cr0 le 4) + 2 $(cr0 gt 4) ; * 2nd loop on landlord and tenant's optimization loop (j, lin.l=0.5; lrest.l=0.5; land.l=lowned +.002; solve sharecr using nlp maximizing w; *solve sharself using nlp maximizing v; *solve fixedr using nlp maximizing w; tfix.fx = w0 -w.l ; v.fx = (1-tshare.l)*qshare.l-(1-tshare.l)*pfert*fert2.l- tfix.l-rent*landsh.l; soli(i,j,"cr0")=cr0; *soli(i,j,"tshare")=tshare.l; soli(i,j,"tfix")=tfix.l; soli(i,j,"landsh")=landsh.l; soli(i,j,"w")=w.l; soli(i,j,"v")=v.l; soli(i,j,"v/ha")=v.l/landsh.l; soli(i,j,"loff")=loff.l; soli(i,j,"lhired")=lhired.l; soli(i,j,"fert2")=fert2.l; soli(i,j,"lab2")=labor2.l; soli(i,j,"mplabs")$qshare.l=alab*qshare.l/labor2.l; soli(i,j,"mpferts")$qshare.l=afert*qshare.l/fert2.l; soli(i,j,"mpland")$qshare.l=aland*qshare.l/landsh.l; soli(i,j,"lambdacr")$qshare.l=afert*qshare.l/fert2.l/pfert; soli(i,j,"lrest")=lrest.l; soli(i,j,"creditsh")= wage*(lhired.l*(1+s1+s2*lhired.l)-loff.l) + kbar + (fert1.l+tshare.l*fert2.l)*pfert ; landsh.fx = landsh.l +.10 $(cr0 le 4) + 1. $(cr0 gt 4) ; ); vmax = smax(j, soli(i,j,"v")); loop (j, vj = soli(i,j,"v"); landsh.fx $(vj eq vmax) = max(soli(i,j,"landsh") +.05,.01); sol(i,"cr0") $(vj eq vmax) = soli(i,j,"cr0"); sol(i,"landsh") $(vj eq vmax) = soli(i,j,"landsh"); sol(i,"mplabs") $(vj eq vmax) = soli(i,j,"mplabs"); sol(i,"mpland") $(vj eq vmax) = soli(i,j,"mpland"); sol(i,"mpferts") $(vj eq vmax) = soli(i,j,"mpferts"); sol(i,"loff") $(vj eq vmax) = soli(i,j,"loff"); sol(i,"lhired") $(vj eq vmax) = soli(i,j,"lhired"); sol(i,"creditsh") $(vj eq vmax) = soli(i,j,"creditsh"); ); ); display soli; display sol;