这是我的问题:我试图将雅可比矩阵写为两个其他矩阵的乘积,但结果是错误的,因为它们的高度不一样。这是我的代码:
\documentclass[11pt]{book}
\usepackage{amsmath}
\begin{document}
\begin{align*}
Jac(f \circ \varphi)_{x_0} =& Jac(f)_{\varphi(x_0)} Jac(\varphi)_{x_0} \\
=& \begin{pmatrix}
\frac{\partial f}{\partial x}(r \cos(\theta), r \sin(\theta)) \\
\frac{\partial f}{\partial y}(r \cos(\theta), r \sin(\theta))
\end{pmatrix} \begin{pmatrix}
\cos(\theta) & -r \sin(\theta) \\
\sin(\theta) & r \cos(\theta)
\end{pmatrix}
\end{align*}
\end{document}
我不想使用技巧。您有解决方案吗?谢谢!
答案1
我不会坚持矩阵具有相同的高度;相反,我会使用\dfrac
内部偏导数并将行稍微隔开;请参见第二个对齐以具有相同的高度。
\documentclass[11pt]{book}
\usepackage{amsmath}
\DeclareMathOperator{\Jac}{Jac}
\begin{document}
\begin{align*}
\Jac(f \circ \varphi)_{x_0}
&= \Jac(f)_{\varphi(x_0)} \Jac(\varphi)_{x_0} \\
&= \begin{pmatrix}
\dfrac{\partial f}{\partial x}(r \cos(\theta), r \sin(\theta)) \\[3ex]
\dfrac{\partial f}{\partial y}(r \cos(\theta), r \sin(\theta))
\end{pmatrix}
\begin{pmatrix}
\cos(\theta) & -r \sin(\theta) \\[2ex]
\sin(\theta) & r \cos(\theta)
\end{pmatrix}
\end{align*}
\begin{align*}
\Jac(f \circ \varphi)_{x_0}
&= \Jac(f)_{\varphi(x_0)} \Jac(\varphi)_{x_0} \\
&= \begin{pmatrix}
\frac{\partial f}{\partial x}(r \cos(\theta), r \sin(\theta)) \\[1ex]
\frac{\partial f}{\partial y}(r \cos(\theta), r \sin(\theta))
\end{pmatrix}
\begin{pmatrix}
\cos(\theta) & -r \sin(\theta) \\[1ex]
\sin(\theta) & r \cos(\theta)
\end{pmatrix}
\end{align*}
\end{document}
请注意数学运算符的用法以及正确的&=
代替=&
。
答案2
使用包\mfrac
中的 (中等大小的分数)nccmath
可以为矩阵提供更合理的大小。我认为更糟糕的情况(从美学角度而言)是让线条几乎对齐,因此您必须手动在第二个矩阵的行之间添加一些空间,并且如果您更改字体,甚至字体大小,您可能必须再次调整所有内容。
有一种自动方法可以精确对齐矩阵,使用 blkarray
包并只写入 1 个带有分隔符的矩阵。但是它有一些缺陷:它与 align 配合得不好,因此,例如对齐点 (=) 必须写成before
& 符号。无论如何,以下代码显示了这两种方法。我还使用该 cellspace
包简化了矩阵中的线条(不适用于 blkarray):
\documentclass[11pt, leqno]{book}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\DeclareMathOperator{\Jac}{Jac}
\usepackage{blkarray}
\usepackage{nccmath}
\usepackage[math]{cellspace}
\cellspacetoplimit = 3pt
\cellspacebottomlimit = 3pt
\begin{document}
\begin{align*}
\Jac(f \circ \varphi)_{x_0} =&\Jac(f)_{\varphi(x_0)} \Jac(\varphi)_{x_0} \\
\tag*{\small manual adjustment:} =& \begin{pmatrix}
\mfrac{\partial f}{\partial x}(r \cos(\theta), r \sin(\theta)) \\
\mfrac{\partial f}{\partial y}(r \cos(\theta), r \sin(\theta))
\end{pmatrix} \begin{pmatrix}
\cos(\theta) & -r \sin(\theta) \\[6pt]
\sin(\theta) & r \cos(\theta)
\end{pmatrix}
\\%
\tag*{\small with blkarray:} = &{\ } \begin{blockarray}[t]{(c)!{\ }(cc)}
\mfrac{\partial f}{\partial x}(r \cos(\theta), r \sin(\theta)) & \cos(\theta) & -r \sin(\theta)\\[8pt]
\mfrac{\partial f}{\partial y}(r \cos(\theta), r \sin(\theta)) & \sin(\theta) & r \cos(\theta)
\end{blockarray}
\end{align*}
\end{document}