我正在做大量的拉格朗日乘数问题。它们基本上都是相同的形式
$$\max U(x,y)$$
$$\text{subject to}$$
$$g(x,y) = c$$
Then
$$L = U(x,y) - \lambda (g(x,y) -c) $$
$$[x]: \partial_x U = \lambda \partial_x g(x,y)$$
$$[y]: \partial_y U = \lambda \partial_y g(x,y)$$
$$[\lambda]: g(x,y) = c$$
我显然可以像这里一样把它写出来,但输入起来有点乏味。当我复制粘贴然后重写新公式时,它也很难看。如果有代码方式来做到这一点会更容易。比如像枚举这样的环境,我只需说 \item,然后列出一阶条件。还有一些会自动列出我的所有约束作为 FOC 的一部分的东西。如果我不必写出拉格朗日量,那就太好了,但它可以简单地采用我在初始设置中写的方程式并为我输出拉格朗日量。
有没有可以实现这个功能的软件包?如果没有,您觉得我应该如何编写上述代码?
如果太费力,我就会这么做。但我想问一下是否有一个简单的解决方案。
答案1
我认为拉格朗日方程没有现成的软件包。应用更多格式——$$
未在 LaTeX 文档中使用-- 可能是可取的。我建议使用gather*
带有嵌套alignedat
环境的环境。
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{gather*}
\max U(x,y)\\
\shortintertext{subject to}
g(x,y) = c\\
\shortintertext{Then}
\mathcal{L} = U(x,y) - \lambda \bigl(g(x,y) -c\bigr) \\[1ex]
\begin{alignedat}{2}
&[x] & \partial_x U &= \lambda \partial_x g(x,y)\\
&[y] & \partial_y U &= \lambda \partial_y g(x,y)\\
&[\lambda] & \quad g(x,y) &= c
\end{alignedat}
\end{gather*}
\end{document}