1 Star 0 Fork 0

chenglibo/gt-linalg

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
determinant-volume.xml 47.46 KB
一键复制 编辑 原始数据 按行查看 历史
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015
<?xml version="1.0" encoding="UTF-8"?>
<!--********************************************************************
Copyright 2017 Georgia Institute of Technology
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation. A copy of
the license is included in gfdl.xml.
*********************************************************************-->
<section xml:id="determinants-volumes">
<title>Determinants and Volumes</title>
<objectives>
<ol>
<li>Understand the relationship between the determinant of a matrix and the volume of a parallelepiped.</li>
<li>Learn to use determinants to compute volumes of parallelograms and triangles.</li>
<li>Learn to use determinants to compute the volume of some curvy shapes like ellipses.</li>
<li><em>Pictures:</em> parallelepiped, the image of a curvy shape under a linear transformation.</li>
<li><em>Theorem:</em> determinants and volumes.</li>
<li><em>Vocabulary word:</em> <term>parallelepiped</term>.</li>
</ol>
</objectives>
<introduction>
<p>
In this section we give a geometric interpretation of determinants, in terms of <em>volumes.</em> This will shed light on the reason behind three of the four <xref ref="det-defn-the-defn" text="title">defining properties of the determinant</xref>. It is also a crucial ingredient in the change-of-variables formula in multivariable calculus.
</p>
</introduction>
<subsection>
<title>Parallelograms and Paralellepipeds</title>
<p>
The determinant computes the volume of the following kind of geometric object.
</p>
<definition>
<idx><h>Parallelepiped</h><h>definition of</h></idx>
<statement>
<p>
The <term>paralellepiped</term> determined by <m>n</m> vectors <m>v_1, v_2,\ldots,v_n</m> in <m>\R^n</m> is the subset
<me>
P = \bigl\{a_1x_1 + a_2x_2 + \cdots + a_nx_n \bigm| 0 \leq a_1,a_2,\ldots,a_n\leq 1\bigr\}.
</me>
</p>
</statement>
</definition>
<p>
In other words, a parallelepiped is the set of all linear combinations of <m>n</m> vectors with coefficients in <m>[0,1]</m>. We can draw parallelepipeds using the parallelogram law for vector addition.
</p>
<specialcase>
<title>The unit cube</title>
<idx><h>Unit cube</h></idx>
<p>
The parallelepiped determined by the standard coordinate vectors <m>e_1,e_2,\ldots,e_n</m> is the unit <m>n</m>-dimensional cube.
<latex-code mode="bare">
\usetikzlibrary{math}
</latex-code>
<latex-code>
\begin{tikzpicture}[thin border nodes, scale=2]
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\draw[vector] (0,0) -- node[auto]{$e_2$} (0,1);
\draw[vector, opacity=.75] (0,0) -- node[auto,swap]{$e_1$} (1,0);
\end{tikzpicture}
\qquad\qquad
\begin{tikzpicture}[thin border nodes, myxyz, scale=2, baseline=-1cm]
\def\va{(1,0,0)}
\def\vb{(0,1,0)}
\def\vc{(0,0,1)}
\tikzmath{
coordinate \vab;
coordinate \vac;
coordinate \vbc;
\vab = \va + \vb;
\vac = \va + \vc;
\vbc = \vb + \vc;
}
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- \vb -- (\vbc) -- \vc -- cycle;
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- \vb -- (\vab) -- \va -- cycle;
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- \va -- (\vac) -- \vc -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={\vb}, very thin]
(0,0,0) -- \va -- (\vac) -- \vc -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={\va}, very thin]
(0,0,0) -- \vb -- (\vbc) -- \vc -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={\vc}, very thin]
(0,0,0) -- \vb -- (\vab) -- \va -- cycle;
\draw[vector, opacity=.4] (0,0,0) -- node[auto] {$e_1$} \va;
\draw[vector, opacity=.4] (0,0,0) -- node[auto, swap] {$e_2$} \vb;
\draw[vector, opacity=.4] (0,0,0) -- node[auto,pos=.3] {$e_3$} \vc;
\end{tikzpicture}
</latex-code>
</p>
</specialcase>
<specialcase>
<title>Parallelograms</title>
<idx><h>Parallelepiped</h><h>parallelogram</h></idx>
<idx><h>Parallelogram</h><see>Parallelepiped</see></idx>
<p>
When <m>n = 2</m>, a paralellepiped is just a paralellogram in <m>\R^2</m>. Note that the edges come in parallel pairs.
<latex-code><![CDATA[
\begin{tikzpicture}[thin border nodes, scale=1.3]
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (1,2) -- (3,3) -- (2,1) -- cycle;
\draw[vector] (0,0) -- node[auto]{$v_2$} (1,2);
\draw[vector] (0,0) -- node[auto,swap]{$v_1$} (2,1);
\node at (1.5,1.5) {$P$};
\end{tikzpicture}
]]>
</latex-code>
</p>
</specialcase>
<specialcase>
<p>
When <m>n=3</m>, a parallelepiped is a kind of a skewed cube. Note that the faces come in parallel pairs.
<latex-code><![CDATA[
\begin{tikzpicture}[thin border nodes, myxyz, scale=2]
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\filldraw[fill=seq-orange, opacity=.2, shift={(-1,0,0)}, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(.2,1,0)}, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(0,.3,1)}, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\draw[vector] (0,0,0) -- node[auto,swap] {$v_1$} (.2,1,0);
\draw[vector, opacity=.4] (0,0,0) -- node[auto,swap] {$v_2$} (-1,0,0);
\draw[vector] (0,0,0) -- node[auto] {$v_3$} (0,.3,1);
\node at (0,1.2,1.2) {$P$};
\end{tikzpicture}
]]>
</latex-code>
</p>
</specialcase>
<p>
When does a parallelepiped have zero volume? This can happen only if the parallelepiped is flat, i.e., it is squashed into a lower dimension.
<latex-code>
\begin{tikzpicture}[thin border nodes, baseline=0]
\draw[line width=1mm, seq-orange] (-1,-.5) to["$P$"' black] (2,1);
\draw[vector, opacity=.75] (0,0) to["$v_1$" opacity=1] (2,1);
\draw[vector, opacity=.75] (0,0) to["$v_2$"' opacity=1] (-1,-.5);
\point at (0,0);
\end{tikzpicture}
\qquad
\begin{tikzpicture}[thin border nodes, baseline=0]
\node[coordinate] (X) at (1,.2) {};
\node[coordinate] (Y) at (-.7,-1) {};
\begin{scope}[x=(X), y=(Y), transformxy]
\draw[help lines, step=.5, opacity=.75] (-2,-1.5) grid (4,1.5);
\end{scope}
\def\va{(2,1)}
\def\vb{(1.5,-.5)}
\def\vc{(-1.5,0)}
\coordinate (v1) at ($4/2*(X) - 1/2*(Y)$);
\coordinate (v2) at ($3/2*(X) + 1*(Y)$);
\coordinate (v3) at ($-3/2*(X) - 1/2*(Y)$);
\filldraw[fill=seq-orange, opacity=.2, draw opacity=1, very thin]
(v1) -- ($(v1) + (v2)$) -- (v2) -- ($(v2) + (v3)$) -- (v3) -- ($(v3) + (v1)$) -- cycle;
\draw[vector] (0,0) to["$v_1$"] (v1);
\draw[vector] (0,0) to["$v_2$"] (v2);
\draw[vector] (0,0) to["$v_3$"'] (v3);
\node at ($1/2*(v1) + 1/2*(v2)$) {$P$};
\point at (0,0);
\end{tikzpicture}
</latex-code>
This means exactly that <m>\{v_1,v_2,\ldots,v_n\}</m> is <em>linearly dependent,</em> which by this <xref ref="det-defn-dep-det0"/> means that the matrix with rows <m>v_1,v_2,\ldots,v_n</m> has determinant zero. To summarize:
</p>
<note type-name="Key Observation">
<idx><h>Parallelepiped</h><h>flat</h></idx>
<p>
The parallelepiped defined by <m>v_1,v_2,\ldots,v_n</m> has zero volume if and only if the matrix with rows <m>v_1,v_2,\ldots,v_n</m> has zero determinant.
</p>
</note>
</subsection>
<subsection>
<title>Determinants and Volumes</title>
<p>
The key observation above is only the beginning of the story:
the volume of a parallelepiped is <em>always</em> a determinant.
</p>
<theorem xml:id="det-is-volume">
<title>Determinants and volumes</title>
<idx><h>Parallelepiped</h><h>volume of</h></idx>
<idx><h>Matrix</h><h>parallelepiped determined by</h></idx>
<idx><h>Determinant</h><h>and volumes</h></idx>
<idx><h>Volume</h><h>of a parallelepiped</h></idx>
<statement>
<p>
Let <m>v_1,v_2,\ldots,v_n</m> be vectors in <m>\R^n</m>, let <m>P</m> be the parallelepiped determined by these vectors, and let <m>A</m> be the matrix with rows <m>v_1,v_2,\ldots,v_n</m>. Then the absolute value of the determinant of <m>A</m> is the volume of <m>P</m>:
<me>
|\det(A)| = \vol(P).
</me>
<notation><usage>\vol(P)</usage><description>Volume of a region</description></notation>
</p>
</statement>
<proof visible="true">
<p>
Since the four <xref ref="det-defn-the-defn" text="title">defining properties</xref> characterize the determinant, they also characterize the absolute value of the determinant. Explicitly, <m>|\det|</m> is a function on square matrices which satisfies these properties:
<ol>
<li>
Doing a row replacement on <m>A</m> does not change <m>|\det(A)|</m>.
</li>
<li>
Scaling a row of <m>A</m> by a scalar <m>c</m> multiplies <m>|\det(A)|</m> by <m>|c|</m>.
</li>
<li>
Swapping two rows of a matrix does not change <m>|\det(A)|</m>.
</li>
<li>
The determinant of the identity matrix <m>I_n</m> is equal to <m>1</m>.
</li>
</ol>
The absolute value of the determinant is the <em>only</em> such function: indeed, by this <xref ref="det-defn-ref-compute"/>, if you do some number of row operations on <m>A</m> to obtain a matrix <m>B</m> in row echelon form, then
<me>
|\det(A)| =
\left|\frac{\text{(product of the diagonal entries of $B$)}}
{\text{(product of scaling factors used)}}\right|.
</me>
</p>
<p>
<notation><usage>\vol(A)</usage><description>Volume of the parallelepiped of a matrix</description></notation>
For a square matrix <m>A</m>, we abuse notation and let <m>\vol(A)</m> denote the volume of the paralellepiped determined by the rows of <m>A</m>. Then we can regard <m>\vol</m> as a function from the set of square matrices to the real numbers. We will show that <m>\vol</m> also satisfies the above four properties.
<ol>
<li>
For simplicity, we consider a row replacement of the form <m>R_n = R_n + cR_i</m>. The volume of a paralellepiped is the volume of its base, times its height: here the <q>base</q> is the paralellepiped determined by <m>v_1,v_2,\ldots,v_{n-1}</m>, and the <q>height</q> is the perpendicular distance of <m>v_n</m> from the base.
<latex-code>
\begin{tikzpicture}[thin border nodes, scale=1.3]
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (1,2) -- (3,3) -- (2,1) -- cycle;
\draw[line width=1mm, seq-blue] (0,0) to["base"' {pos=.3,sloped}] (2,1);
\draw[vector] (0,0) -- node[auto]{$v_2$} (1,2);
\draw[vector, opacity=.75] (0,0) -- node[auto,swap,opacity=1,pos=.7]{$v_1$} (2,1);
\draw[dashed, very thick, seq-red] (1,2) to["height"] (8/5,4/5);
\end{tikzpicture}
\qquad
\begin{tikzpicture}[thin border nodes, myxyz, scale=2]
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-blue, opacity=.5, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\node[seq-blue] at (-.4,.5,0) {base};
\filldraw[fill=seq-orange, opacity=.2, shift={(-1,0,0)}, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\draw[dashed, very thick, seq-red] (0,.3,1) to["height" pos=.55] (-.2,.2,0);
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(.2,1,0)}, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(0,.3,1)}, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\draw[vector] (0,0,0) -- node[auto,swap] {$v_1$} (.2,1,0);
\draw[vector, opacity=.4] (0,0,0) -- node[auto,pos=.4] {$v_2$} (-1,0,0);
\draw[vector] (0,0,0) -- node[auto] {$v_3$} (0,.3,1);
\end{tikzpicture}
</latex-code>
Translating <m>v_n</m> by a multiple of <m>v_i</m> moves <m>v_n</m> in a direction parallel to the base. This changes neither the base nor the height! Thus, <m>\vol(A)</m> is unchanged by row replacements.
<latex-code mode="bare">
\usetikzlibrary{math}
</latex-code>
<latex-code>
\begin{tikzpicture}[thin border nodes, scale=1.3, baseline=1.3cm]
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (1,2) -- (3,3) -- (2,1) -- cycle;
\draw[line width=1mm, seq-blue] (0,0) to["base"' {pos=.3,sloped}] (2,1);
\draw[vector] (0,0) -- node[auto]{$v_2$} (1,2);
\draw[vector, opacity=.75] (0,0) -- node[auto,swap,opacity=1,pos=.7]{$v_1$} (2,1);
\draw[dashed, very thick, seq-red] (1,2) to["height"] (8/5,4/5);
\end{tikzpicture}
$\quad\xrightarrow{\phantom{MMMM}}\quad$
\begin{tikzpicture}[thin border nodes, scale=1.3, baseline=1.3cm]
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (0,3/2) -- (2,5/2) -- (2,1) -- cycle;
\draw[line width=1mm, seq-blue] (0,0) to["base"' {pos=.3,sloped}] (2,1);
\draw[vector, opacity=.5] (0,0) -- node[auto,swap,pos=.8]{$v_2$} (1,2);
\draw[vector] (0,0) -- node[auto]{$v_2-.5v_1$} (0,3/2);
\draw[vector, opacity=.75] (0,0) -- node[auto,swap,opacity=1,pos=.7]{$v_1$} (2,1);
\draw[dashed, very thick, seq-red] (0,3/2) to["height"] (3/5,3/10);
\end{tikzpicture}\\[3mm]
\begin{tikzpicture}[thin border nodes, myxyz, scale=2, baseline=1.3cm]
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-blue, opacity=.5, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\node[seq-blue] at (-.4,.5,0) {base};
\filldraw[fill=seq-orange, opacity=.2, shift={(-1,0,0)}, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\draw[dashed, very thick, seq-red] (0,.3,1) to["height" pos=.55] (-.2,.2,0);
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(.2,1,0)}, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(0,.3,1)}, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\draw[vector] (0,0,0) -- node[auto,swap] {$v_1$} (.2,1,0);
\draw[vector, opacity=.4] (0,0,0) -- node[auto,pos=.4] {$v_2$} (-1,0,0);
\draw[vector] (0,0,0) -- node[auto] {$v_3$} (0,.3,1);
\end{tikzpicture}
$\quad\xrightarrow{\phantom{MMMM}}\quad$
\begin{tikzpicture}[thin border nodes, myxyz, scale=2, baseline=1.3cm]
\def\va{(.2,1,0)}
\def\vb{(-1,0,0)}
\def\vc{(.1,.8,1)}
\tikzmath{
coordinate \vab;
coordinate \vac;
coordinate \vbc;
\vab = \va + \vb;
\vac = \va + \vc;
\vbc = \vb + \vc;
}
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- \vb -- (\vbc) -- \vc -- cycle;
\filldraw[fill=seq-blue, opacity=.5, very thin]
(0,0,0) -- \vb -- (\vab) -- \va -- cycle;
\node[seq-blue] at (-.25,.35,0) {base};
\filldraw[fill=seq-orange, opacity=.2, shift={\vb}, very thin]
(0,0,0) -- \va -- (\vac) -- \vc -- cycle;
\draw[dashed, very thick, seq-red] \vc to["height" pos=.55] ($(-.2,.2,0)+.5*(.2,1,0)$);
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0,0) -- \va -- (\vac) -- \vc -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={\va}, very thin]
(0,0,0) -- \vb -- (\vbc) -- \vc -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={\vc}, very thin]
(0,0,0) -- \vb -- (\vab) -- \va -- cycle;
\draw[vector] (0,0,0) -- node[auto,swap] {$v_1$} \va;
\draw[vector, opacity=.4] (0,0,0) -- node[auto,pos=.8] {$v_2$} \vb;
\draw[vector] (0,0,0) -- \vc node[above] {$v_3+.5v_1$};
\draw[vector, opacity=.5] (0,0,0) -- node[auto,pos=.5] {$v_3$} (0,.3,1);
\end{tikzpicture}
</latex-code>
</li>
<li>
For simplicity, we consider a row scale of the form <m>R_n = cR_n.</m> This scales the length of <m>v_n</m> by a factor of <m>|c|</m>, which also scales the perpendicular distance of <m>v_n</m> from the base by a factor of <m>|c|</m>. Thus, <m>\vol(A)</m> is scaled by <m>|c|</m>.
<latex-code mode="bare">
\usetikzlibrary{math}
</latex-code>
<latex-code>
\begin{tikzpicture}[thin border nodes, scale=1.3, baseline=1.3cm]
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (1,2) -- (3,3) -- (2,1) -- cycle;
\draw[line width=1mm, seq-blue] (0,0) to["base"' {pos=.3, sloped}] (2,1);
\draw[vector] (0,0) -- node[auto]{$v_2$} (1,2);
\draw[vector, opacity=.75] (0,0) -- node[auto,swap,opacity=1,pos=.7]{$v_1$} (2,1);
\draw[dashed, very thick, seq-red] (1,2) to["height"] (8/5,4/5);
\end{tikzpicture}
$\quad\xrightarrow{\phantom{MMMM}}\quad$
\begin{tikzpicture}[thin border nodes, scale=1.3, baseline=1.3cm]
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (.75,1.5) -- (2.75,2.5) -- (2,1) -- cycle;
\draw[line width=1mm, seq-blue] (0,0) to["base"' {pos=.3, sloped}] (2,1);
\draw[vector, opacity=.5] (0,0) -- (1,2);
\draw[vector] (0,0) -- node[auto]{$\frac34v_2$} (.75,1.5);
\draw[vector, opacity=.75] (0,0) -- node[auto,swap,opacity=1,pos=.7]{$v_1$} (2,1);
\draw[dashed, very thick, seq-red] (.75,1.5) to["$\frac34$\small height"] ($.75*(8/5,4/5)$);
\end{tikzpicture}\\[3mm]
\begin{tikzpicture}[thin border nodes, myxyz, scale=2, baseline=1.3cm]
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-blue, opacity=.5, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\node[seq-blue] at (-.4,.5,0) {base};
\filldraw[fill=seq-orange, opacity=.2, shift={(-1,0,0)}, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\draw[dashed, very thick, seq-red] (0,.3,1) to["height" pos=.55] (-.2,.2,0);
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(.2,1,0)}, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(0,.3,1)}, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\draw[vector] (0,0,0) -- node[auto,swap] {$v_1$} (.2,1,0);
\draw[vector, opacity=.4] (0,0,0) -- node[auto,pos=.4] {$v_2$} (-1,0,0);
\draw[vector] (0,0,0) -- node[auto] {$v_3$} (0,.3,1);
\end{tikzpicture}
$\quad\xrightarrow{\phantom{MMMM}}\quad$
\begin{tikzpicture}[thin border nodes, myxyz, scale=2, baseline=1.3cm]
\def\va{(.2,1,0)}
\def\vb{(-1,0,0)}
\def\vc{(0,.4,4/3)}
\tikzmath{
coordinate \vab;
coordinate \vac;
coordinate \vbc;
\vab = \va + \vb;
\vac = \va + \vc;
\vbc = \vb + \vc;
}
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- \vb -- (\vbc) -- \vc -- cycle;
\filldraw[fill=seq-blue, opacity=.5, very thin]
(0,0,0) -- \vb -- (\vab) -- \va -- cycle;
\node[seq-blue] at (-.4,.5,0) {base};
\filldraw[fill=seq-orange, opacity=.2, shift={\vb}, very thin]
(0,0,0) -- \va -- (\vac) -- \vc -- cycle;
\draw[dashed, very thick, seq-red] \vc to["$\frac43$\small height" pos=.55] ($4/3*(-.2,.2,0)$);
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0,0) -- \va -- (\vac) -- \vc -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={\va}, very thin]
(0,0,0) -- \vb -- (\vbc) -- \vc -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={\vc}, very thin]
(0,0,0) -- \vb -- (\vab) -- \va -- cycle;
\draw[vector] (0,0,0) -- node[auto,swap] {$v_1$} \va;
\draw[vector, opacity=.4] (0,0,0) -- node[auto,pos=.5] {$v_2$} \vb;
\draw[vector] (0,0,0) -- node[auto,pos=.8] {$\frac 43v_3$} \vc;
\draw[vector, black!50!white] (0,0,0) -- (0,.3,1);
\end{tikzpicture}
</latex-code>
</li>
<li>
Swapping two rows of <m>A</m> just reorders the vectors <m>v_1,v_2,\ldots,v_n</m>, hence has no effect on the parallelepiped determined by those vectors. Thus, <m>\vol(A)</m> is unchanged by row swaps.
<latex-code>
\begin{tikzpicture}[thin border nodes, scale=1.3, baseline=1.3cm]
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (1,2) -- (3,3) -- (2,1) -- cycle;
\draw[vector] (0,0) -- node[auto]{$v_2$} (1,2);
\draw[vector] (0,0) -- node[auto,swap]{$v_1$} (2,1);
\end{tikzpicture}
$\quad\xrightarrow{\phantom{MMMM}}\quad$
\begin{tikzpicture}[thin border nodes, scale=1.3, baseline=1.3cm]
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (1,2) -- (3,3) -- (2,1) -- cycle;
\draw[vector] (0,0) -- node[auto]{$v_1$} (1,2);
\draw[vector] (0,0) -- node[auto,swap]{$v_2$} (2,1);
\end{tikzpicture}\\[3mm]
\begin{tikzpicture}[thin border nodes, myxyz, scale=2, baseline=1.3cm]
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\filldraw[fill=seq-orange, opacity=.2, shift={(-1,0,0)}, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(.2,1,0)}, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(0,.3,1)}, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\draw[vector] (0,0,0) -- node[auto,swap] {$v_1$} (.2,1,0);
\draw[vector, opacity=.4] (0,0,0) -- node[auto] {$v_3$} (-1,0,0);
\draw[vector] (0,0,0) -- node[auto] {$v_2$} (0,.3,1);
\end{tikzpicture}
$\quad\xrightarrow{\phantom{MMMM}}\quad$
\begin{tikzpicture}[thin border nodes, myxyz, scale=2, baseline=1.3cm]
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\filldraw[fill=seq-orange, opacity=.2, shift={(-1,0,0)}, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(.2,1,0)}, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(0,.3,1)}, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\draw[vector] (0,0,0) -- node[auto,swap] {$v_1$} (.2,1,0);
\draw[vector, opacity=.4] (0,0,0) -- node[auto] {$v_2$} (-1,0,0);
\draw[vector] (0,0,0) -- node[auto] {$v_3$} (0,.3,1);
\end{tikzpicture}
</latex-code>
</li>
<li>
The rows of the identity matrix <m>I_n</m> are the standard coordinate vectors <m>e_1,e_2,\ldots,e_n</m>. The associated paralellepiped is the unit cube, which has volume <m>1</m>. Thus, <m>\vol(I_n) = 1</m>.
</li>
</ol>
Since <m>|\det|</m> is the only function satisfying these properties, we have
<me>\vol(P) = \vol(A) = |\det(A)|.</me>
This completes the proof.
</p>
</proof>
</theorem>
<p>
Since <m>\det(A) = \det(A^T)</m> by the <xref ref="det-defn-trans-prop" text="title">transpose property</xref>, the absolute value of <m>\det(A)</m> is also equal to the volume of the paralellepiped determined by the <em>columns</em> of <m>A</m> as well.
</p>
<specialcase>
<title>Length</title>
<idx><h>Volume</h><h>and length</h></idx>
<p>
A <m>1\times 1</m> matrix <m>A</m> is just a number <m>\mat a</m>. In this case, the parallelepiped <m>P</m> determined by its one row is just the interval <m>[0,a]</m> (or <m>[a,0]</m> if <m>a\lt0</m>). The <q>volume</q> of a region in <m>\R^1 = \R</m> is just its length, so it is clear in this case that <m>\vol(P) = |a|</m>.
<latex-code>
\begin{tikzpicture}
\draw[very thick, draw=seq-orange] (0,0) -- node[above] {$\vol(\textcolor{seq-orange}{P}) = |a|$} (3,0);
\draw (0,.15) -- (0,-.15) node[below] {$0$}
(3,.15) -- (3,-.15) node[below] {$a$};
\end{tikzpicture}
</latex-code>
</p>
</specialcase>
<specialcase>
<title>Area</title>
<idx><h>Parallelepiped</h><h>parallelogram</h><h>area of</h></idx>
<p>
When <m>A</m> is a <m>2\times 2</m> matrix, its rows determine a parallelogram in <m>\R^2</m>. The <q>volume</q> of a region in <m>\R^2</m> is its area, so we obtain a formula for the area of a parallelogram: it is the determinant of the matrix whose rows are the vectors forming two adjacent sides of the parallelogram.
<latex-code>
\begin{tikzpicture}[thin border nodes, scale=1.3]
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (1,2) -- (3,3) -- (2,1) -- cycle;
\draw[vector] (0,0) -- node[auto]{$\vec{a b}$} (1,2);
\draw[vector] (0,0) -- node[auto,swap,opacity=1]{$\vec{c d}$} (2,1);
\node at (6, 1.5) {area${}=\left|\det\mat{a b; c d}\right| = |ad-bc|$};
\end{tikzpicture}
</latex-code>
It is perhaps surprising that it is possible to compute the area of a parallelogram without trigonometry. It is a fun geometry problem to prove this formula by hand. [Hint: first think about the case when the first row of <m>A</m> lies on the <m>x</m>-axis.]
</p>
</specialcase>
<example>
<statement>
<p>
Find the area of the parallelogram with sides <m>(1,3)</m> and <m>(2,-3)</m>.
<latex-code>
\begin{tikzpicture}[thin border nodes, scale=1]
\draw[help lines] (-1,-4) grid (4,4);
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (1,3) -- (3,0) -- (2,-3) -- cycle;
\draw[vector] (0,0) -- (1,3);
\draw[vector] (0,0) -- (2,-3);
\end{tikzpicture}
</latex-code>
</p>
</statement>
<solution>
<p>
The area is
<me>
\left|\det\mat{1 3; 2 -3}\right| = |-3-6| = 9.
</me>
</p>
</solution>
</example>
<example>
<statement>
<p>
Find the area of the parallelogram in the picture.
<latex-code>
\begin{tikzpicture}[thin border nodes, scale=1]
\draw[help lines] (-3,-1) grid (2,6);
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (-2,1) -- (-1,5) -- (1,4) -- cycle;
\end{tikzpicture}
</latex-code>
</p>
</statement>
<solution>
<p>
We choose two adjacent sides to be the rows of a matrix. We choose the top two:
<latex-code>
\begin{tikzpicture}[thin border nodes, scale=1]
\draw[help lines] (-3,-1) grid (2,6);
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (-2,1) -- (-1,5) -- (1,4) -- cycle;
\draw[vector] (-1,5) -- node[auto,whitebg,behind path] {$\vec{2 -1}$} (1,4);
\draw[vector] (-1,5) -- node[auto,swap,whitebg,behind path] {$\vec{-1 -4}$} (-2,1);
\end{tikzpicture}
</latex-code>
Note that we do not need to know where the origin is in the picture: vectors are determined by their length and direction, not where they start. The area is
<me>
\left|\det\mat{-1 -4; 2 -1}\right| = |1+8| = 9.
</me>
</p>
</solution>
</example>
<example>
<title>Area of a triangle</title>
<idx><h>Triangle</h><h>area of</h><see>Volume</see></idx>
<idx><h>Volume</h><h>of a triangle</h></idx>
<statement>
<p>
Find the area of the triangle with vertices
<m>(-1,-2), \,(2,-1),\,(1,3).</m>
<latex-code>
\begin{tikzpicture}[thin border nodes, scale=1]
\draw[help lines] (-2,-3) grid (3,4);
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(-1,-2) -- (2,-1) -- (1,3) -- cycle;
\end{tikzpicture}
</latex-code>
</p>
</statement>
<solution>
<p>
Doubling a triangle makes a paralellogram. We choose two of its sides to be the rows of a matrix.
<latex-code>
\begin{tikzpicture}[thin border nodes, scale=1]
\draw[help lines] (-2,-3) grid (5,5);
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(-1,-2) -- (2,-1) -- (1,3) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.1, very thin, dashed]
(2,-1) -- (4,4) -- (1,3);
\draw[vector] (-1,-2) -- node[auto,whitebg,swap,behind path] {$\vec{3 1}$} (2,-1);
\draw[vector] (-1,-2) -- node[auto,whitebg,behind path] {$\vec{2 5}$} (1,3);
\end{tikzpicture}
</latex-code>
The area of the parallelogram is
<me>
\left|\det\mat{2 5; 3 1}\right| = |2-15| = 13,
</me>
so the area of the triangle is <m>13/2</m>.
</p>
</solution>
</example>
<p>
You might be wondering: if the absolute value of the determinant is a volume, what is the geometric meaning of the determinant without the absolute value? The next remark explains that we can think of the determinant as a <em>signed</em> volume. If you have taken an integral calculus course, you probably computed negative areas under curves; the idea here is similar.
</p>
<remark>
<title>Signed volumes</title>
<idx><h>Volume</h><h>signed</h></idx>
<p>
The <xref ref="det-is-volume"/> on determinants and volumes tells us that the <em>absolute value</em> of the determinant is the volume of a paralellepiped. This raises the question of whether the sign of the determinant has any geometric meaning.
</p>
<p>
A <m>1\times 1</m> matrix <m>A</m> is just a number <m>\mat a</m>. In this case, the parallelepiped <m>P</m> determined by its one row is just the interval <m>[0,a]</m> if <m>a \geq 0</m>, and it is <m>[a,0]</m> if <m>a\lt0</m>. In this case, the sign of the determinant determines whether the interval is to the left or the right of the origin.
</p>
<p>
For a <m>2\times 2</m> matrix with rows <m>v_1,v_2</m>, the sign of the determinant determines whether <m>v_2</m> is counterclockwise or clockwise from <m>v_1</m>. That is, if the counterclockwise angle from <m>v_1</m> to <m>v_2</m> is less than <m>180^\circ</m>, then the determinant is positive; otherwise it is negative (or zero).
<latex-code>
<![CDATA[
\usetikzlibrary{angles}
\begin{tikzpicture}[thin border nodes, scale=1.3]
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (1,2) -- (3,3) -- (2,1) -- cycle;
\draw[vector] (0,0) -- node[auto]{$v_2$} (1,2);
\draw[vector] (0,0) -- node[auto,swap]{$v_1$} (2,1);
\coordinate (o) at (0,0);
\coordinate (v1) at (2,1);
\coordinate (v2) at (1,2);
\pic[draw, ->, angle radius=1cm] {angle=v1--o--v2};
\node at (1.5,-.7) {$\det\mat{\matrow{v_1}; \matrow{v_2}} > 0$};
\end{tikzpicture}
\qquad
\begin{tikzpicture}[thin border nodes, scale=1.3]
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (1,2) -- (3,3) -- (2,1) -- cycle;
\draw[vector] (0,0) -- node[auto]{$v_1$} (1,2);
\draw[vector] (0,0) -- node[auto,swap]{$v_2$} (2,1);
\coordinate (o) at (0,0);
\coordinate (v1) at (2,1);
\coordinate (v2) at (1,2);
\pic[draw, <-, angle radius=1cm] {angle=v1--o--v2};
\node at (1.5,-.7) {$\det\mat{\matrow{v_1}; \matrow{v_2}} < 0$};
\end{tikzpicture}
]]>
</latex-code>
For example, if <m>v_1 = {a\choose b}</m>, then the counterclockwise rotation of <m>v_1</m> by <m>90^\circ</m> is <m>v_2 = {-b\choose a}</m> by this <xref ref="linear-trans-rotation-matrix"/>, and
<me>
\det\mat{a b; -b a} = a^2 + b^2 > 0.
</me>
On the other hand, the <em>clockwise</em> rotation of <m>v_1</m> by <m>90^\circ</m> is <m>b\choose -a</m>, and
<me>
\det\mat{a b; b -a} = -a^2 - b^2 \lt 0.
</me>
</p>
<p>
For a <m>3\times 3</m> matrix with rows <m>v_1,v_2,v_3</m>, the <em>right-hand rule</em> determines the sign of the determinant. If you point the index finger of your right hand in the direction of <m>v_1</m> and your middle finger in the direction of <m>v_2</m>, then the determinant is positive if your thumb points roughly in the direction of <m>v_3</m>, and it is negative otherwise.
<latex-code>
\begin{tikzpicture}[thin border nodes, myxyz, scale=2]
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\filldraw[fill=seq-orange, opacity=.2, shift={(-1,0,0)}, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(.2,1,0)}, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(0,.3,1)}, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\draw[vector] (0,0,0) -- node[auto,swap] {$v_1$} (.2,1,0);
\draw[vector, opacity=.4] (0,0,0) -- node[auto] {$v_2$} (-1,0,0);
\draw[vector] (0,0,0) -- node[auto] {$v_3$} (0,.3,1);
\node[resetxy] at (1,-.75) {$\det\mat{\matrow{v_1};\matrow{v_2};\matrow{v_3}}>0$};
\end{tikzpicture}
\qquad
\begin{tikzpicture}[thin border nodes, myxyz, scale=2]
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, opacity=.2, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\filldraw[fill=seq-orange, opacity=.2, shift={(-1,0,0)}, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0,0) -- (.2,1,0) -- (.2,1.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(.2,1,0)}, very thin]
(0,0,0) -- (-1,0,0) -- (-1,.3,1) -- (0,.3,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, shift={(0,.3,1)}, very thin]
(0,0,0) -- (-1,0,0) -- (-.8,1,0) -- (.2,1,0) -- cycle;
\draw[vector] (0,0,0) -- node[auto,swap] {$v_2$} (.2,1,0);
\draw[vector, opacity=.4] (0,0,0) -- node[auto] {$v_1$} (-1,0,0);
\draw[vector] (0,0,0) -- node[auto] {$v_3$} (0,.3,1);
\node[resetxy] at (1,-.75) {$\det\mat{\matrow{v_1};\matrow{v_2};\matrow{v_3}}\lt0$};
\end{tikzpicture}
</latex-code>
</p>
<p>
In higher dimensions, the notion of signed volume is still important, but it is usually <em>defined</em> in terms of the sign of a determinant.
</p>
</remark>
</subsection>
<subsection>
<title>Volumes of Regions</title>
<p>
Let <m>A</m> be an <m>n\times n</m> matrix with columns <m>v_1,v_2,\ldots,v_n</m>, and let <m>T\colon\R^n\to\R^n</m> be the associated <xref ref="matrix-trans-defn-of" text="title">matrix transformation</xref> <m>T(x)=Ax</m>. Then <m>T(e_1)=v_1</m> and <m>T(e_2)=v_2</m>, so <m>T</m> takes the unit cube <m>C</m> to the parallelepiped <m>P</m> determined by <m>v_1,v_2,\ldots,v_n</m>:
<latex-code>
\begin{tikzpicture}[thin border nodes, scale=1.3]
\begin{scope}[scale=1.7, yshift=.3cm]
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\node at (.5, .5) {$C$};
\draw[vector] (0,0) -- node[auto]{$e_2$} (0,1);
\draw[vector, opacity=.75] (0,0) -- node[auto,swap]{$e_1$} (1,0);
\coordinate (a) at (1.2, .5);
\end{scope}
\draw[->, thick] (a) to[bend left]
node[above=2pt] {$T$}
node[below=4pt] {$\mat{| |; v_1 v_2; | |}$}
($(a) + (2.8cm,0)$);
\begin{scope}[xshift=5cm]
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (1,2) -- (3,3) -- (2,1) -- cycle;
\draw[vector] (0,0) -- node[auto]{$v_2$} (1,2);
\draw[vector] (0,0) -- node[auto,swap]{$v_1$} (2,1);
\node at (1.5, 1.5) {$P$};
\end{scope}
\end{tikzpicture}
</latex-code>
Since the unit cube has volume <m>1</m> and its image has volume <m>|\det(A)|</m>, the transformation <m>T</m> scaled the volume of the cube by a factor of <m>|\det(A)|</m>. To rephrase:
</p>
<bluebox>
<p>
If <m>A</m> is an <m>n\times n</m> matrix with corresponding matrix transformation <m>T\colon\R^n\to\R^n</m>, and if <m>C</m> is the unit cube in <m>\R^n</m>, then the volume of <m>T(C)</m> is <m>|\det(A)|.</m>
</p>
</bluebox>
<p>
<notation><usage>T(S)</usage><description>The image of a region under a transformation</description></notation>
The notation <m>T(S)</m> means the image of the region <m>S</m> under the transformation <m>T</m>. In <xref ref="set-builder-notation" text="title">set builder notation</xref>, this is the subset
<me>T(S) = \bigl\{T(x)\mid x \text{ in } S\bigr\}. </me>
</p>
<p>
In fact, <m>T</m> scales the volume of <em>any</em> region in <m>\R^n</m> by the same factor, even for curvy regions.
</p>
<theorem xml:id="det-vol-regions">
<idx><h>Volume</h><h>of a region</h></idx>
<idx><h>Matrix transformation</h><h>and volumes</h></idx>
<idx><h>Linear transformation</h><h>and volumes</h><see>Matrix transformation</see></idx>
<statement>
<p>
Let <m>A</m> be an <m>n\times n</m> matrix, and let <m>T\colon\R^n\to\R^n</m> be the associated matrix transformation <m>T(x)=Ax</m>. If <m>S</m> is any region in <m>\R^n</m>, then
<me>
\vol(T(S))=|\det(A)|\cdot\vol(S).
</me>
</p>
</statement>
<proof visible="true">
<p>
Let <m>C</m> be the unit cube, let <m>v_1,v_2,\ldots,v_n</m> be the columns of <m>A</m>, and let <m>P</m> be the paralellepiped determined by these vectors, so <m>T(C) = P</m> and <m>\vol(P) = |\det(A)|</m>. For <m>\epsilon > 0</m> we let <m>\epsilon C</m> be the cube with side lengths <m>\epsilon</m>, i.e., the paralellepiped determined by the vectors <m>\epsilon e_1,\epsilon e_2,\ldots,\epsilon e_n</m>, and we define <m>\epsilon P</m> similarly. By the second <xref ref="linear-trans-defn" text="title">defining property</xref>, <m>T</m> takes <m>\epsilon C</m> to <m>\epsilon P</m>. The volume of <m>\epsilon C</m> is <m>\epsilon^n</m> (we scaled each of the <m>n</m> standard vectors by a factor of <m>\epsilon</m>) and the volume of <m>\epsilon P</m> is <m>\epsilon^n|\det(A)|</m> (for the same reason), so we have shown that <m>T</m> scales the volume of <m>\epsilon C</m> by <m>|\det(A)|</m>.
<latex-code>
\begin{tikzpicture}[thin border nodes, scale=1.3]
\begin{scope}[scale=1.7, yshift=.3cm]
\filldraw[very thin, black!50!white, fill=seq-orange!10!white]
(0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (.6,0) -- (.6,.6) -- (0,.6) -- cycle;
\draw[vector, black!50!white] (0, 0) -- (1, 0);
\draw[vector, black!50!white] (0, 0) -- (0, 1);
\draw[vector] (0,0) -- node[auto]{$\epsilon e_2$} (0,.6);
\draw[vector, opacity=.75] (0,0) -- node[auto,swap]{$\epsilon e_1$} (.6,0);
\node at (.3, .3) {$\epsilon C$};
\coordinate (a) at (1.2, .5);
\end{scope}
\node at (1.7/2, -.5) {$\vol(\epsilon C) = \epsilon^n$};
\draw[->, thick] (a) to[bend left]
node[above=2pt] {$T$}
node[below=4pt] {$\mat{| |; v_1 v_2; | |}$}
($(a) + (2.8cm,0)$);
\begin{scope}[xshift=5cm]
\filldraw[black!50!white, fill=seq-orange!10!white, very thin]
(0,0) -- (1,2) -- (3,3) -- (2,1) -- cycle;
\filldraw[fill=seq-orange, fill opacity=.2, very thin]
(0,0) -- (.6,1.2) -- (1.8,1.8) -- (1.2,.6) -- cycle;
\draw[vector, black!50!white] (0, 0) -- (1,2);
\draw[vector, black!50!white] (0, 0) -- (2,1);
\draw[vector] (0,0) -- node[auto]{$\epsilon v_2$} (.6,1.2);
\draw[vector] (0,0) -- node[auto,swap]{$\epsilon v_1$} (1.2,.6);
\node at (.9,.9) {$\epsilon P$};
\end{scope}
\node at (6.3, -.5) {$\vol(\epsilon P) = \epsilon^n|\det(A)|$};
\end{tikzpicture}
</latex-code>
</p>
<p>
By the first <xref ref="linear-trans-defn" text="title">defining property</xref>, the image of a translate of <m>\epsilon C</m> is a translate of <m>\epsilon P</m>:
<me>T(x + \epsilon C) = T(x) + \epsilon T(C) = T(x) + \epsilon P.</me>
Since a translation does not change volumes, this proves that <m>T</m> scales the volume of a translate of <m>\epsilon C</m> by <m>|\det(A)|</m>.
</p>
<p>
At this point, we need to use techniques from multivariable calculus, so we only give an idea of the rest of the proof. Any region <m>S</m> can be approximated by a collection of very small cubes of the form <m>x + \epsilon C</m>. The image <m>T(S)</m> is then approximated by the image of this collection of cubes, which is a collection of very small paralellepipeds of the form <m>T(x) + \epsilon P</m>.
<latex-code>
\def\curvy{(-37.3333, 2.6667)
.. controls (-37.3333, -5.3333) and (-26.6667, -10.6667) .. (-16, -24)
.. controls (-5.3333, -37.3333) and (5.3333, -58.6667) .. (18.6667, -48)
.. controls (32, -37.3333) and (48, 5.3333) .. (45.3333, 18.6667)
.. controls (42.6667, 32) and (21.3333, 16) .. (8, 13.3333)
.. controls (-5.3333, 10.6667) and (-10.6667, 21.3333) .. (-18.6667, 21.3333)
.. controls (-26.6667, 21.3333) and (-37.3333, 10.6667) .. cycle}
\begin{tikzpicture}[scale=1, thin border nodes]
\draw[help lines, black!25] (-2,-2) rectangle (2,2);
\begin{scope}[fill=seq-orange, fill opacity=.2, thin,
x=1.7*.7bp, y=1.7*.7bp, yshift=.4cm, xshift=-.2cm]
\expandafter\filldraw\curvy;
\expandafter\clip\curvy;
\fill[seq-red, opacity=.5, shift={(2*4,-4*4)}] (0,0) rectangle (4,4);
\coordinate (a) at (2*4,-4*4);
\draw[very thin, black!70!white, step=4] (-60,-60) grid (60,60);
\end{scope}
\draw[thin] (-1.2, -1.2) node[below] {$x + \epsilon C$} -- (a);
\node at (0,1.5) {$S$};
%\point at (0,0);
\draw[->, thick] (2.1,0) to[bend left, "$T$" above=1mm]
(8-2.1,0);
\begin{scope}[xshift=8cm]
\draw[help lines, black!25] (-2,-2) rectangle (2,2);
\begin{scope}[cm={2,1,1,2,(0,.5)}, x=.7bp, y=.7bp,
fill=seq-orange, fill opacity=.2, thin]
\expandafter\filldraw\curvy;
\expandafter\clip\curvy;
\fill[seq-red, opacity=.5, shift={(2*4,-4*4)}] (0,0) rectangle (4,4);
\draw[very thin, black!70!white, step=4] (-60,-60) grid (60,60);
\coordinate (b) at (3*4,-4*4);
\end{scope}
\draw[thin] (.9,-1.3) node[below] {$T(x) + \epsilon P$} -- (b);
\node at (-.7,1.5) {$T(S)$};
% \point at (0,0);
\end{scope}
\end{tikzpicture}
</latex-code>
The volume of <m>S</m> is closely approximated by the sum of the volumes of the cubes; in fact, as <m>\epsilon</m> goes to zero, the limit of this sum is precisely <m>\vol(S)</m>. Likewise, the volume of <m>T(S)</m> is equal to the sum of the volumes of the paralellepipeds, take in the limit as <m>\epsilon\to 0</m>. The key point is that <em>the volume of each cube is scaled by <m>|\det(A)|</m>.</em> Therefore, the sum of the volumes of the paralellepipeds is <m>|\det(A)|</m> times the sum of the volumes of the cubes. This proves that <m>\vol(T(S)) = |\det(A)|\vol(S).</m>
</p>
</proof>
</theorem>
<example>
<statement>
<p>
Let <m>S</m> be a half-circle of radius <m>1</m>, let
<me>A = \mat{1 2; 2 1},</me>
and define <m>T\colon\R^2\to\R^2</m> by <m>T(x)=Ax</m>. What is the area of <m>T(S)</m>?
<latex-code>
\begin{tikzpicture}
\begin{scope}[yshift=-.3cm]
\draw[grid lines] (-1.5,-.5) grid (1.5, 1.5);
\filldraw[fill=seq-orange, fill opacity=.2, thin]
(1,0) arc[start angle=0, end angle=180, radius=1] -- cycle;
\node at (0,.5) {$S$};
\end{scope}
\draw[->, thick] (2.1,0) to[bend left, "$T$" above=1mm]
node[below=1mm]{$\mat{1 2; 2 1}$} (7-2.1,0);
\begin{scope}[xshift=7cm]
\draw[grid lines] (-1.5,-2.5) grid (2.5, 2.5);
\begin{scope}[cm={1,2,2,1,(0,0)}]
\filldraw[fill=seq-orange, fill opacity=.2, thin]
(1,0) arc[start angle=0, end angle=180, radius=1] -- cycle;
\node at (0,.5) {$T(S)$};
\end{scope}
\end{scope}
\end{tikzpicture}
</latex-code>
</p>
</statement>
<solution>
<p>
The area of the unit circle is <m>\pi</m>, so the area of <m>S</m> is <m>\pi/2</m>. The transformation <m>T</m> scales areas by a factor of <m>|\det(A)| = |1 - 4| = 3</m>, so
<me>\vol(T(S)) = 3\vol(S) = \frac{3\pi}2.</me>
</p>
</solution>
</example>
<example>
<title>Area of an ellipse</title>
<idx><h>Volume</h><h>of an ellipse</h></idx>
<idx><h>Ellipse</h><h>area of</h><see>Volume</see></idx>
<statement>
<p>
Find the area of the interior <m>E</m> of the ellipse defined by the equation
<me>\left(\frac{2x-y}{2}\right)^2 + \left(\frac{y+3x}{3}\right)^2 = 1.</me>
</p>
</statement>
<solution>
<p>
This ellipse is obtained from the unit circle <m>X^2+Y^2=1</m> by the linear change of coordinates
<me>
\begin{split}
X \amp= \frac{2x-y}2 \\
Y \amp= \frac{y+3x}3.
\end{split}
</me>
In other words, if we define a linear transformation <m>T\colon\R^2\to\R^2</m> by
<me>
T\vec{x y} = \vec{(2x-y)/2 (y+3x)/3},
</me>
then <m>T{x\choose y}</m> lies on the unit circle <m>C</m> whenever <m>x\choose y</m> lies on <m>E</m>.
<latex-code>
\begin{tikzpicture}
\begin{scope}[xshift=7cm]
\draw[grid lines] (-1.5,-1.5) grid (1.5, 1.5);
\filldraw[fill=seq-orange, fill opacity=.2, thin]
(0,0) circle[radius=1];
\node at (0,0) {$C$};
\end{scope}
\draw[->, thick] (2.1,0) to[bend left, "$T$" above=1mm]
node[below=2mm]{$\mat{1 -1/2; 1 1/3}$} (7-2.1,0);
\begin{scope}[xshift=0cm]
\draw[grid lines] (-1.5,-2.5) grid (1.5, 2.5);
\begin{scope}[cm={2/5,-6/5,3/5,6/5,(0,0)}]
\filldraw[fill=seq-orange, fill opacity=.2, thin]
(0,0) circle[radius=1];
\node at (0,0) {$E$};
\end{scope}
\end{scope}
\end{tikzpicture}
</latex-code>
We compute the standard matrix <m>A</m> for <m>T</m> by evaluating on the standard coordinate vectors:
<me>
T\vec{1 0} = \vec{1 1} \qquad T\vec{0 1} = \vec{-1/2 1/3}
\quad\implies\quad A = \mat{1 -1/2; 1 1/3}.
</me>
Therefore, <m>T</m> scales areas by a factor of <m>|\det(A)| = |\frac13+\frac12| = \frac56.</m> The area of the unit circle is <m>\pi</m>, so
<me>\pi = \vol(C) = \vol(T(E)) = |\det(A)|\cdot\vol(E) = \frac56\vol(E),</me>
and thus the area of <m>E</m> is <m>6\pi/5</m>.
</p>
</solution>
</example>
<remark>
<title>Multiplicativity of <m>|\det|\,</m></title>
<idx><h>Determinant</h><h>multiplicativity property</h><h>and volumes</h></idx>
<p>
The above <xref ref="det-vol-regions"/> also gives a geometric reason for multiplicativity of the (absolute value of the) determinant. Indeed, let <m>A</m> and <m>B</m> be <m>n\times n</m> matrices, and let <m>T,U\colon\R^n\to\R^n</m> be the corresponding matrix transformations. If <m>C</m> is the unit cube, then
<me>
\begin{split}
\vol\bigl(T\circ U(C)\bigr) = \vol\bigl(T(U(C))\bigr)
\amp= |\det(A)|\vol(U(C)) \\
\amp= |\det(A)|\cdot|\det(B)|\vol(C) \\
\amp= |\det(A)|\cdot|\det(B)|.
\end{split}
</me>
On the other hand, the matrix for the composition <m>T\circ U</m> is the product <m>AB</m>, so
<me>
\vol\bigl(T\circ U(C)\bigr) = |\det(AB)|\vol(C) = |\det(AB)|.
</me>
Thus <m>|\det(AB)| = |\det(A)|\cdot|\det(B)|</m>.
</p>
</remark>
</subsection>
</section>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/chenglibo/gt-linalg.git
git@gitee.com:chenglibo/gt-linalg.git
chenglibo
gt-linalg
gt-linalg
master

搜索帮助