Manufacturing and Production: an Exploration of the Cobb-Douglass FunctionBrian McLeish and Crystal StinesAbstract:The Cobb-Douglass function illustrates the increase in production that results from the increase in certain input variables. The function can also be used to manipulate the input variables - usually labor and capital - in order to maximize product output, usually with a financial constraint. In this work, these two applications of the Cobb-Douglass function will be explored.restart: with(plots): with(plottools): with(Student[MultivariateCalculus]): EnvExplicit := true:Gradients of Cobb-Douglass and Returns to ScaleFirst, we will consider a function with constant returns to scale. Thus, when the function is optimized, each additional unit expenditure will produce one unit of output.Here, we enter the function into Maple and graph the function.(x = labor, y = capital)f:= (x,y) -> 10*x^(3/10)*y^(7/10); cd := plot3d(f(x,y), x=0..1000, y=0..1000, style=PATCHCONTOUR, contours = 20, axes=boxed, labels = [x,y,z]): cd;Now, we will evaluate the gradient of the function at an arbitrary point (x,y). Gradients are vectors that indicate the direction and magnitude of the function's growth at a given point in the x-y plane. Gradient(f(x,y), [x,y]);This is a plot of the gradient vectors for our function with constant returns to scale. Notice that as x and y increase, the magnitudes of the gradient vectors remain constant.gp:=gradplot(f(x,y), x=0..1000, y=0..1000, scaling = constrained, arrows = THICK, grid = [15,15], color=green): gp;Now we consider a function that has negative returns to scale. Notice that the sum of the exponents for labor and capital in the Cobb-Douglass function is less than 1.f:= (x,y) -> 10*x^(1/10)*y^(3/16); sp := plot3d(f(x,y), x=0..1000, y=0..1000, style=PATCHCONTOUR, contours = 20, axes=boxed, labels = [x,y,z]): sp;Here we plot the gradients of the function. Notice that, for a function with negative returns to scale, the gradients decrease in magnitude as x and y increase.gp:=gradplot(f(x,y), x=0..1000, y=0..1000, scaling = constrained, arrows = THICK, grid = [15,15], color=green): gp;Now, let us look at a function with positive returns to scale. The sum of the exponents is now greater than one.f:= (x,y) -> 10*x^(7/10)*y^(13/16); sp := plot3d(f(x,y), x=0..1000, y=0..1000, style=PATCHCONTOUR, contours = 20, axes=boxed, labels = [x,y,z]): sp;This is a plot of the gradient vectors for the function with positive returns to scale. Here the magnitudes of the gradient vectors increase as x and y increase.gp:=gradplot(f(x,y), x=0..1000, y=0..1000, scaling = constrained, arrows = THICK, grid = [15,15], color=green): gp;Constrained Cobb-DouglassExample 1To begin with, we enter the function and its constraint into Maple. In the graph, the plane represents the constraint of $30,000 for the total of labor (at $150 per unit) and capital (at $350 per unit).f := (x,y) -> 20*x^(.2)*y^(.8);g := (x,y) -> 150*x+350*y;f1 := plot3d(f(x,y), x=0..100, y=0..100, style=patchcontour, contours=50):g1:=implicitplot3d(g(x,y)=30000, x=0..100, y=0..100, z=0..2000, style=patchnogrid, color=green, grid=[20,20,20]):display({f1,g1},axes=boxed);Here, we set the the function and a scalar multiple of its constraint equal to zero, in order to begin showing that the constraint is a scalar multiple of the function. Lambda represents this unknown scalar. h :=(x,y) -> f(x,y)-lambda*g(x,y);Next, we partially differentiate this difference in terms of x and y to show that the partial derivitives of the function are equal to a scalar multiple of the partial derivitives of the constraint.expr1:=diff(h(x,y),x);expr2:=diff(h(x,y),y);Finally, we solve this system of equations (including the constraint equation) for x, y, and lambda.expr3:=solve({g(x,y)=30000, expr1=0, expr2=0}, {x,y,lambda}); So now we find the maximum output by checking the original function at these values of x and y.f(40,68.57142857); Here, we plot a sphere at this value to visually check our solution.sp := sphere([40,68.57142857,1231.279225], 6, style=patchnogrid, color=blue):display(f1,g1,sp,style=patchcontour, axes=boxed);Example 2Now, let's try maximizing the same function with a new constraint, $10,000. We will allow Maple to solve for x and y by using the LagrangeMultipliers command.LagrangeMultipliers(f(x,y), [g(x,y)-10000], [x,y]); Next, we find the value of the function at this point.
f(13.3333333,22.85714286);Finally, we plot the function and a sphere at this point to visually check our solution.f2 := plot3d(f(x,y), x=0..25, y=0..30, style=patchcontour, contours=50): g2:=implicitplot3d(g(x,y)=10000, x=0..25, y=0..30, z=0..550, style=patchnogrid, color=green, grid=[20,20,20]): sp2 :=sphere([13.3333333, 22.85714286,410.4264084], 2, style=patchnogrid, color=blue): display({f2,g2,sp2},axes=boxed);