/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created by wxMaxima version 0.7.3a ] */ /* [wxMaxima: comment start ] Clear all symbols [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ Kill(all)$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Definitions (1) - (3) Relabel variables since maxima offers no support for greek letters alpha: a rho: r mu: m [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ profit(w,p):= p*a - w -c; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ r:q*(1+m*log(w/W)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ a:r*x + (1-r)*y; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Zero profit price (6) Set w=W [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ w:W; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve([profit(w,p)=0],p); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Clear w=W [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ kill(W,w); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Check equation (6) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ -(W+c)/((q-1)*y-q*x) = (W+c)/(q*(x-y)+y); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Check if both expressions are equal after simplifying [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ is(ratsimp(%)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Selection wage curve (7) - (9) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ W:w; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Dprofit(w,p):= diff(profit(w,p),w); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ D2profit(w,p):=diff(profit(w,p),w,2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Dprofit(w,p) = (p*q*m*(x-y)*1/w-1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ is(ratsimp(%)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ D2profit(w,p) = (-p*q*m*(x-y)*1/(w^2)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ is(ratsimp(%)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve([Dprofit(w,p)=0],p); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ -w/(m*q*y-m*q*x) = w/(m*q*(x-y)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ is(ratsimp(%)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Equilibrium (10), (11) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ solve([profit(w,p)=0, Dprofit(w,p)=0],[w,p]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Check w [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ -(c*m*q*y-c*m*q*x)/(((m-1)*q+1)*y+(1-m)*q*x) = (m*q*(x-y))/(q*(x-y)*(1-m)+y)*c; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ is(ratsimp(%)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Check p [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ c/(((m-1)*q+1)*y+(1-m)*q*x) = c/(q*(x-y)*(1-m)+y); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ is(ratsimp(%)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Stability (12) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ kill(w,W); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve([p*q*m*(x-y)*1/w-1=0],w); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ p:(W+c)/(q*(x-y)+y); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ w:m*p*q*x-m*p*q*y; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ w = (m*(x-y)*q)/((x-y)*q+y)*(W+c); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ is(ratsimp(%)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ W_:(m*q*(x-y))/(q*(x-y)*(1-m)+y)*c; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ w-W= -((1-m)*(x-y)*q+y)/((x-y)*q+y)*(W-W_); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ is(ratsimp(%)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Inequality (13) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ kill(W,p); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Condition is given wrongly in the manuscript. It should relate to mediocre productivity y rather than prolific productivity x and read py > W and inequalities (13) should read y > qxm/(1+qm) and mq < y/(x-y) Replacing the inequality with equality, I check whether these inequalities are equivalent to py > W. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ p_:c/(y+q*(x-y)*(1-m)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve([p_*y=W_],y); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve(p_*y=W_,q); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Quality mix (14) and (15) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ diff(W_, q); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ is(ratsimp(%=(c*m*(x-y)*y)/(y+(1-m)*q*(x-y))^2)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ diff(p_,q); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ is(ratsimp(%=-(1/(q*(x-y)*(1-m)+y))^(2)*c*(x-y)*(1-m))); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ (c*q*(x-y)*(q*(x-y)+y)*m)/((c+W)*(y-q*(x-y)*(1-m))); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] *****APPENDIX: Performance Pay*****; [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ kill(p,W,w); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] The profit function (17) is [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ prof(w,p):=p*(r*x+(1-r)*y)-r*w-(1-r)*(y/x)*w-c; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ r:q*(1+m*log(w/W)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prof(w,p); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] The derivative of prof(w,p) with respect to w is [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ diff(prof(w,p),w); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Dprof(w,p):=%o47; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ Dprof(w,p); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ W:w$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve([prof(w,p)=0, Dprof(w,p)=0],[w,p]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Check that expression (18) for w is correct [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ -(c*m*q*x*y-c*m*q*x^2)/((q^2-2*q+1)*y^2+(2*q-2*q^2)*x*y+q^2*x^2) =(c*m*q*x*(x-y))/((1-q)*y+q*x)^2; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ is(ratsimp(%)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Compare flat pay with performance pay [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ kill(W); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ W_t:c*q*x*m*((x-y)/(q*x+(1-q)*y)^(2)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ V_t:(y/x)*W_t; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ W_:((m*q*(x-y))/(q*(x-y)*(1-m)+y))*c; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ (W_-(q*W_t+(1-q)*V_t))= (c*q^(2)*(x-y)^(2)*m^(2))/((q*x+(1-q)*y)*(q*(x-y)*(1-m)+y)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ is(ratsimp(%)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Wage Compression [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ kill(all); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] The Lagrangean is [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ L(w,v,l):=q*(1+m*log(w/W))*(p*x-w)+(1-q)*(1+m*log(v/V))* (p*y-v)-c-l*(q*log(w/W)+(1-q)*log(v/V)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] The derivatives are [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ L(w,v,l); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ diff(L(w,v,l),w); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ DLw(w,v,l):=%o3; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ diff(L(w,v,l),v); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ DLv(w,v,l):=%o5; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] We evaluate these expressions at W = w and V = v [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ W:w; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ V:v; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve([DLw(w,v,l)=0], w); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ w_:(m*p*x-l)/(m+1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve([DLv(w,v,l)=0], v); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ v_:(m*p*y-l)/(m+1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ratsimp(w_-v_)=(p*(x-y)*m)/(1+m); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ is(ratsimp(%)); /* [wxMaxima: input end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$