```{r data generation, echo = FALSE, results = "hide"} ## DATA GENERATION ok <- FALSE while(!ok){ L_multipli <- sample(1:3, 1) L_multipli_print <- if(L_multipli != 1) L_multipli else "" Q <- sample(seq(100, 1000, by=10), 1) p_K <- sample(2:30, 1) p_L <- sample(2:30, 1) ## QUESTION/ANSWER GENERATION L <- round((L_multipli * (p_K/p_L) * Q)^(1/(L_multipli+1)), digits = 8) K <- round((1/L_multipli) * (p_L/p_K) * L, digits = 8) cost <- (p_L*L + p_K*K) lambda <- round(p_K/(L^L_multipli),digits=6) ratio <- round((p_L)/(p_K * L_multipli), digits=6) type <- sample(c("labor", "capital", "costs"), 1) switch(type, "labor" = { question <- "What is the amount of the input factor _labor_ in this minimum?" solution <- paste0("Given the target output, the optimal amount of the input factor _labor_ is $L = ", fmt(L), "$.") sol <- L com1 <- "" }, "capital" = { question <- "What is the amount of the input factor _capital_ in this minimum?" solution <- paste0("Given the target output, the optimal amount of the input factor _capital_ is $K = ", fmt(K), "$.") sol <- K com1 <- "" }, "costs" = { question <- "How high are in this case the minimal costs?" solution <- paste0("Given the target output, the minimal costs are $", fmt(cost), "$.") sol <- cost com1 <- "" com2 <- "" }) ok <- L > 1 & K > 1 & cost > 0 } ``` Question ======== A firm has the following production function: $$ F(K,L)= K L^{`r L_multipli_print`}. $$ The price for one unit of _capital_ is $p_K = `r p_K`$ and the price for one unit of _labor_ is $p_L = `r p_L`$. Minimize the costs of the firm considering its production function and given a target production output of `r Q` units. `r question` Solution ======== _Step 1_: Formulating the minimization problem. $$ \begin{aligned} \min_{K,L} C(K,L) & = p_K K + p_L L\\ & = `r p_K` K + `r p_L` L\\ \mbox{subject~to:} & F(K,L) = Q \\ & K L^{`r L_multipli_print`} = `r Q` \end{aligned} $$ _Step 2_: Lagrange function. $$ \begin{aligned} \mathcal{L}(K, L, \lambda) & = C(K, L) - \lambda (F(K, L) - Q) \\ & = `r p_K` K + `r p_L` L - \lambda (K L^{`r L_multipli_print`} -`r Q`) \end{aligned} $$ _Step 3_: First order conditions. $$ \begin{aligned} \frac{\partial {\mathcal {L}}}{\partial K} & = `r p_K` - \lambda L^{`r L_multipli_print`} = 0\\ \frac{\partial {\mathcal {L}}}{\partial L} & = `r p_L` - {`r L_multipli`} \lambda K L^{`r L_multipli` - 1} = 0 \\ \frac{\partial {\mathcal {L}}}{\partial \lambda} & = -(K L^{`r L_multipli_print`}-`r Q`) = 0 \end{aligned} $$ _Step 4_: Solve the system of equations for $K$, $L$, and $\lambda$. Solving the first two equations for $\lambda$ and equating them gives: $$ \begin{aligned} \frac{`r p_K`}{L^{`r L_multipli_print`}} & = \frac{`r p_L`}{{`r L_multipli`} K L^{`r L_multipli` - 1}}\\ K & = \frac{`r p_L`}{`r L_multipli` \cdot `r p_K`} \cdot L^{`r L_multipli` - (`r L_multipli` - 1)}\\ K & = \frac{`r p_L`}{`r p_K * L_multipli`} \cdot L \end{aligned} $$ Substituting this in the optimization constraint gives: $$ \begin{aligned} K L^{`r L_multipli_print`} & = `r Q`\\ \left(\frac{`r p_L`}{`r p_K * L_multipli`}\cdot L \right) L^{`r L_multipli_print`} & = `r Q`\\ \frac{`r p_L`}{`r p_K * L_multipli`} L^{`r L_multipli + 1`} & = `r Q`\\ L & = \left(\frac{`r L_multipli*p_K`}{`r p_L`} \cdot `r Q`\right)^{\frac{1}{`r L_multipli + 1`}} = `r L` \approx `r fmt(L)`\\ K & = \frac{`r p_L`}{`r p_K * L_multipli`} \cdot L = `r K` \approx `r fmt(K)` \end{aligned} $$ `r com1` The minimal costs can be obtained by substituting the optimal factor combination in the objective function: $$ \begin{aligned} C(K, L) & = `r p_K` K + `r p_L` L\\ & = `r fmt(p_K * K, 6)` + `r fmt(p_L * L, 6)` \\ & = `r fmt(cost, 6)` \approx `r fmt(cost)` \end{aligned} $$ `r com2` `r solution` \ ```{r contourplot, echo = FALSE, fig.height = 5, fig.width = 5, fig.path = "", fig.cap = ""} costfunction <- function(x1, x2) (p_L * x1 + p_K * x2) prodfunction <- function(x) (Q/x^(L_multipli)) x1 <- seq(0, L * 3, length = L * 10) x2 <- seq(0, K * 4, length = K * 10) y <- outer(x1, x2, costfunction) contour(x1, x2, y, xaxs = "i", yaxs = "i", xlab = "L", ylab = "K", col = "gray") plot(prodfunction, 0, L * 10, add = TRUE, lty = 2) contour(x1, x2, y, add = TRUE, xaxs = "i", yaxs = "i", levels = costfunction(L, K), labcex = 0.8, lwd = 1.5) lines(c(L,L),c(0,K), lty=3) lines(c(0,L),c(K,K), lty=3) points(L, K, pch = 19, col = "red") ``` Meta-information ================ extype: num exsolution: `r fmt(sol)` exname: Lagrange cost minimization extol: 0.01