<?xml version="1.0"?>
<!DOCTYPE html    PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
           "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="GENERATOR" content="TtM 3.72" />
 <style type="text/css">
 div.p { margin-top: 7pt; }
 span.roman {font-family: serif; font-style: normal; font-weight: normal;} 
</style>

  
<title> The Geometry of the Dot and Cross Products </title>
</head>
<body>
 
<h1 align="center">The Geometry of the Dot and Cross Products </h1>

<div class="p"><!----></div>

<h3 align="center">Tevian Dray<br />
Department of Mathematics<br />
Oregon State University<br />
Corvallis, OR  97331<br />
<tt>tevian@math.oregonstate.edu</tt><br />
Corinne A. Manogue<br />
Department of Physics<br />
Oregon State University<br />
Corvallis, OR  97331<br />
<tt>corinne@physics.oregonstate.edu</tt><br />
 </h3>

<div class="p"><!----></div>

<h3 align="center">May 23, 2006
</h3>

<div class="p"><!----></div>

<h2> Abstract</h2>
We argue for pedagogical reasons that the dot and cross products should be
defined by their geometric properties, from which algebraic representations
can be derived, rather than the other way around.

<div class="p"><!----></div>
 <h2><a name="tth_sEc1">
1</a>&nbsp;&nbsp;Introduction</h2>

<div class="p"><!----></div>
Most students first learn the algebraic formula for the dot and cross products
in rectangular coordinates, and only then are shown their geometric
interpretations.  We believe this should be done in the other order.  Students
tend to remember best the first definition they use; this should not be an
algebraic formula devoid of context.  The geometric definition is coordinate
independent, and therefore conveys invariant properties of these products, not
just a formula for calculating them.  Furthermore, it is easier to derive the
algebraic formula from the geometric one than the other way around, as we
demonstrate below.

<div class="p"><!----></div>
 <h2><a name="tth_sEc2">
2</a>&nbsp;&nbsp;Dot Product</h2>
<a name="dot">
</a>

<div class="p"><!----></div>

<div class="p"><!----></div>
<a name="tth_fIg1">
</a> 
<table align="center" border="0"><tr><td>
<img src="dot.gif" alt="dot.gif" /></td></tr></table><!--hboxt-->

<center>Figure 1: The dot product is fundamentally a projection.</center>
<a name="Dot">
</a>

<div class="p"><!----></div>
The dot product is fundamentally a projection.  As shown in Figure&nbsp;<a href="#Dot">1</a>,
the dot product of a vector with a unit vector is the projection of that vector
in the direction given by the unit vector.  This leads to the geometric
formula
<a name="dotgeom">
</a><br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo><mo stretchy="false">&verbar;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo stretchy="false">&verbar;</mo><mo stretchy="false">&verbar;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo stretchy="false">&verbar;</mo><mi>cos</mi><mi>&theta;</mi></mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>1</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>


for the dot product of any two vectors 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math> and 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math>.

<div class="p"><!----></div>
An immediate consequence of&nbsp;(<a href="#dotgeom">1</a>) is that the dot product of a
vector with itself gives the square of the length, that is
<br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo><mo stretchy="false">&verbar;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>

<msup><mrow><mo stretchy="false">&verbar;</mo></mrow><mrow><mn>2</mn></mrow>
</msup>
</mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>2</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>


In particular, taking the "square" of any unit vector yields 1, for example
<a name="unit">
</a><br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>=</mo><mn>1</mn></mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>3</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>


where 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math> as usual denotes the unit vector in the 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow><mi>x</mi></mrow></math> direction.
<a href="#tthFtNtAAB" name="tthFrefAAB">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<msup><mrow></mrow><mrow><mn>1</mn></mrow>
</msup>
</mrow></math></a>
Furthermore, it follows immediately from the geometric definition that two
vectors are orthogonal if and only if their dot product vanishes, that is
<br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&bottom;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&Leftrightarrow;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo><mn>0</mn></mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>4</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>



<div class="p"><!----></div>
For instance, if 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math> denotes the unit vector in the 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow><mi>y</mi></mrow></math> direction, then
<a name="ortho">
</a><br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>=</mo><mn>0</mn></mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>5</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>


The geometry of an orthonormal basis is fully captured by these properties;
each basis vector is normalized, which is&nbsp;(<a href="#unit">3</a>), and each pair of
vectors is orthogonal, which is&nbsp;(<a href="#ortho">5</a>).  

<div class="p"><!----></div>
The components of a vector 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math> in an orthonormal basis are just the dot
products of 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math> with each basis vector.  For instance, in two dimensions,
setting
<br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mtable align="right" width="80%">
<mtr><mtd columnalign="right" columnspan="1"><mrow>
<msub><mrow><mi>v</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
</mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow>
</mtd></mtr>
<mtr><mtd columnalign="right" columnspan="1"><mrow>
<msub><mrow><mi>v</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
</mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>

</mrow>
</mtd><mtd columnalign="right">&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;<mo stretchy="false">(</mo><mn>6</mn><mo stretchy="false">)</mo></mtd></mtr>
</mtable>
</mrow>
    </mstyle></math>
</td></tr></table>
<br />

implies 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>.  The component form of the dot product now
follows from its properties given above.  For example, if

<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo>
<msub><mrow><mi>w</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>w</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>, then
<a name="algebraic">
</a><br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mtable align="right" width="80%">
<mtr><mtd columnalign="right" columnspan="1"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>

</mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow><mo stretchy="false">(</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo stretchy="false">)</mo><mo>&middot;</mo><mo stretchy="false">(</mo>
<msub><mrow><mi>w</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>w</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo stretchy="false">)</mo></mrow>
</mtd></mtr>
<mtr><mtd columnalign="right" columnspan="1"><mrow></mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow>
<msub><mrow><mi>v</mi></mrow><mrow><mi>x</mi></mrow>
</msub>

<msub><mrow><mi>w</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>y</mi></mrow>
</msub>

<msub><mrow><mi>w</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>

<mo>+</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>x</mi></mrow>
</msub>

<msub><mrow><mi>w</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>y</mi></mrow>
</msub>

<msub><mrow><mi>w</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow>
</mtd><mtd columnalign="right">&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;<mo stretchy="false">(</mo><mn>7</mn><mo stretchy="false">)</mo></mtd></mtr>
<mtr><mtd columnalign="right" columnspan="1"><mrow></mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow>
<msub><mrow><mi>v</mi></mrow><mrow><mi>x</mi></mrow>
</msub>

<msub><mrow><mi>w</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
<mo>+</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>y</mi></mrow>
</msub>

<msub><mrow><mi>w</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
</mrow>
</mtd></mtr>
</mtable>
</mrow>
    </mstyle></math>
</td></tr></table>
<br />

This computation clearly works for any orthonormal basis.  A special case is
the dot product of a vector with itself, which reduces to the Pythagorean
theorem, for example
<br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo><mo stretchy="false">&verbar;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>

<msup><mrow><mo stretchy="false">&verbar;</mo></mrow><mrow><mn>2</mn></mrow>
</msup>
<mo>=</mo>
<msubsup><mrow><mi>v</mi></mrow><mrow><mi>x</mi> </mrow>
<mrow><mn>2</mn></mrow></msubsup>
<mo>+</mo>
<msubsup><mrow><mi>v</mi></mrow><mrow><mi>y</mi> </mrow>
<mrow><mn>2</mn></mrow></msubsup>
</mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>8</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>

<div class="p"><!----></div>

<div class="p"><!----></div>
<a name="tth_fIg2">
</a> 
<table align="center" border="0"><tr><td>
<img src="law.gif" alt="law.gif" /></td></tr></table><!--hboxt-->

<center>Figure 2: The Law of Cosines is just the definition of the dot product!</center>
<a name="Law">
</a>

<div class="p"><!----></div>
What happens if you don't use an orthonormal basis?  Consider Figure&nbsp;<a href="#Law">2</a>,
in which 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">A</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>+</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">C</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">B</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math>, or equivalently 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">C</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">B</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>-</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">A</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math>.  Then
<br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mtable align="right" width="80%">
<mtr><mtd columnalign="right" columnspan="1"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">C</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">C</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>

</mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow><mo stretchy="false">(</mo><mo>-</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">A</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>+</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">B</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo stretchy="false">)</mo><mo>&middot;</mo><mo stretchy="false">(</mo><mo>-</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">A</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>+</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">B</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo stretchy="false">)</mo></mrow>
</mtd></mtr>
<mtr><mtd columnalign="right" columnspan="1"><mrow></mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">A</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">A</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>+</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">B</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">B</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>-</mo><mn>2</mn><mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">A</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">B</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>

</mrow>
</mtd><mtd columnalign="right">&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;<mo stretchy="false">(</mo><mn>9</mn><mo stretchy="false">)</mo></mtd></mtr>
</mtable>
</mrow>
    </mstyle></math>
</td></tr></table>
<br />

or equivalently
<br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">&verbar;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">C</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>

<msup><mrow><mo stretchy="false">&verbar;</mo></mrow><mrow><mn>2</mn></mrow>
</msup>
<mo>=</mo><mo stretchy="false">&verbar;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">A</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>

<msup><mrow><mo stretchy="false">&verbar;</mo></mrow><mrow><mn>2</mn></mrow>
</msup>
<mo>+</mo><mo stretchy="false">&verbar;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">B</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>

<msup><mrow><mo stretchy="false">&verbar;</mo></mrow><mrow><mn>2</mn></mrow>
</msup>
<mo>-</mo><mn>2</mn><mo stretchy="false">&verbar;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">A</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo stretchy="false">&verbar;</mo><mo stretchy="false">&verbar;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">B</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo stretchy="false">&verbar;</mo><mi>cos</mi><mi>&theta;</mi></mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>10</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>


which is just the Law of Cosines!  The Law of Cosines is usually used to
derive the geometric form of the dot product&nbsp;(<a href="#dotgeom">1</a>) from the
algebraic form&nbsp;(<a href="#algebraic">7</a>), which is taken as the definition.  Instead,
by starting with geometry, the Law of Cosines follows immediately.

<div class="p"><!----></div>

<div class="p"><!----></div>
<a name="tth_fIg3">
</a> 
<table align="center"><tr><td>
<table align="center" border="0"><tr><td>
<applet code="jvLite.class" archive='java/jvLite.jar' codebase='..' width='400' height='400'>
 <param name='DepthCue' value='hide' />
 <param name='Background' value='255 255 255' />
 <param name='Border' value='hide' />
 <param name='viewDir' value='-0.95705 0.15082 -0.24758' />
 <param name='roll' value='7.1681' />
 <param name='perspective' value='0.0' />
 <param name='Maple' value='PLOT3D(POLYGONS([[.8000000000e-1, .9400000000, 2.], [-.8000000000e-1, 1.060000000, 2.], [1.990000000, 3.820000000, 2.], [2.150000000, 3.700000000, 2.]],[[1.830000000, 3.940000000, 2.], [2.250000000, 4.000000000, 2.], [2.310000000, 3.580000000, 2.]],STYLE(PATCHNOGRID),COLOUR(RGB,0,0,0),THICKNESS(3)),POLYGONS([[0., -.8944271908e-1, .4472135954e-1], [0., .8944271908e-1, -.4472135954e-1], [0., .9552786405, 1.686950483], [0., .7763932023, 1.776393203]],[[0., 1.134164079, 1.597507764], [0., 1.000000000, 2.000000000], [0., .5975077642, 1.865835922]],STYLE(PATCHNOGRID),COLOUR(RGB,0.,0.,1.00000000),THICKNESS(5)),CURVES([[0., 1., 2.], [.4800000000, .6400000000, 0.]],THICKNESS(3),COLOUR(RGB,0.,0.,1.00000000)),CURVES([[0., 3., 2.800000000], [.9600000000, 2.280000000, 2.]],THICKNESS(3),COLOUR(RGB,1.00000000,0.,0.)),CURVES([[.9600000000, 2.280000000, 2.], [1.440000000, 1.920000000, 0.]],THICKNESS(3),COLOUR(RGB,1.00000000,0.,0.)),CURVES([[0., 3., 2.800000000], [1.440000000, 1.920000000, 0.]],THICKNESS(3),COLOUR(RGB,0.,1.00000000,0.)),POLYGONS([[0., -.6823182503e-1, .7310552682e-1], [0., .6823182503e-1, -.7310552682e-1], [0., 2.848915245, 2.522198998], [0., 2.712451595, 2.668410052]],[[0., 2.985378895, 2.375987944], [0., 3.000000000, 2.800000000], [0., 2.575987945, 2.814621106]],STYLE(PATCHNOGRID),COLOUR(RGB,0.,1.00000000,0.),THICKNESS(5)),CURVES([[.4800000000, .6400000000, -.4e-1], [1.440000000, 1.920000000, -.4e-1]],THICKNESS(5),COLOUR(RGB,1.00000000,0.,0.)),CURVES([[0., 0., -.4e-1], [.4800000000, .6400000000, -.4e-1]],THICKNESS(5),COLOUR(RGB,0.,0.,1.00000000)),CURVES([[0., 0., .4e-1], [1.440000000, 1.920000000, .4e-1]],THICKNESS(5),COLOUR(RGB,0.,1.00000000,0.)),POLYGONS([[0., .9628609324, 2.092847669], [0., 1.037139068, 1.907152331], [0., 2.758596061, 2.595735128], [0., 2.684317925, 2.781430466]],[[0., 2.832874196, 2.410039790], [0., 3.000000000, 2.800000000], [0., 2.610039790, 2.967125804]],STYLE(PATCHNOGRID),COLOUR(RGB,1.00000000,0.,0.),THICKNESS(5)),POLYGONS([[.8000000000e-1, -.6000000000e-1, 0.], [-.8000000000e-1, .6000000000e-1, 0.], [1.990000000, 2.820000000, 0.], [2.150000000, 2.700000000, 0.]],[[1.830000000, 2.940000000, 0.], [2.250000000, 3.000000000, 0.], [2.310000000, 2.580000000, 0.]],STYLE(PATCHNOGRID),COLOUR(RGB,0,0,0),THICKNESS(3)),ORIENTATION(25.,65.),SCALING(CONSTRAINED),AXESSTYLE(NONE),THICKNESS(5),VIEW(0. .. 3.,0. .. 4.,-.1 .. 3.))' />
</applet>
</td></tr></table><!--hboxt-->
</td>
<td width="10%"></td>
<td align="right">
<table bgcolor="antiquewhite" border="1" frame="box" rules="none">
<tr>
<td align="center" colspan="3" height="5">
<font size="2">Commands&nbsp;&nbsp;</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Mouse</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Drag to rotate</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Hold s</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Drag to scale</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Hold t</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Drag to translate</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Press r</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Reset</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top">
<font size="1">More</font></td>
<td width="5" valign="top"></td>
<td width="65%" valign="top"><a href="jars/help.html">
<font size="1">JavaView Help</font></a></td>
</tr>
<tr>
<td colspan="3" height="5"></td>
</tr>
</table>
</td></tr>
</table>

<center>Figure 3: A geometric proof of the linearity of the dot product.</center>
<a name="DotGeom">
</a>

<div class="p"><!----></div>
Not so fast!  Did you spot the flaw in the above argument?  In the
computation&nbsp;(<a href="#algebraic">7</a>) of the algebraic formula for the dot product in
terms of components, it was assumed without comment that the dot product
distributes over addition, or in other words that the dot product is linear.
If one starts with the geometric definition&nbsp;(<a href="#dotgeom">1</a>), this must be
proved.

<div class="p"><!----></div>
However, the proof is straightforward, as shown in Figure&nbsp;<a href="#DotGeom">3</a>.
<a href="#tthFtNtAAC" name="tthFrefAAC">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<msup><mrow></mrow><mrow><mn>2</mn></mrow>
</msup>
</mrow></math></a><a name="activefigs">
</a>
We must show that
<br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>+</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">u</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo stretchy="false">)</mo><mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>+</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">u</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>

</mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>11</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>


But this is equivalent to showing that the projection of 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>+</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">u</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math> (green) along 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math> (black) is the sum of the projections of 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math> (blue) and 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">u</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math> (red), which is immediately obvious
from Figure&nbsp;<a href="#DotGeom">3</a>.

<div class="p"><!----></div>
 <h2><a name="tth_sEc3">
3</a>&nbsp;&nbsp;Examples</h2>
<a name="Examples">
</a>

<div class="p"><!----></div>
What is the bonding angle of carbon tetrachloride?  Take a tetrahedron, and
connect each vertex (a chlorine atom) to the center (a carbon atom).  What is
the angle between the lines that meet at the center?

<div class="p"><!----></div>

<div class="p"><!----></div>
<a name="tth_fIg4">
</a> 
<table align="center"><tr><td>
<table align="center" border="0"><tr><td>
<applet code="jvLite.class" archive='java/jvLite.jar' codebase='..' width='400' height='400'>
 <param name='DepthCue' value='hide' />
 <param name='Background' value='255 255 255' />
 <param name='Border' value='hide' />
 <param name='viewDir' value='-.26200 -.71985 -.64279' />
 <param name='perspective' value='0.0' />
 <param name='Maple' value='PLOT3D(POLYGONS([[.5176776695, .5000000000, .4823223305], [.4823223305, .5000000000, .5176776695], [.8091172498, .1732050807, .8444725888], [.8444725888, .1732050807, .8091172498]],[[.7737619107, .1732050807, .8798279279], [1.000000000, 0., 1.000000000], [.8798279279, .1732050807, .7737619107]],STYLE(PATCHNOGRID),COLOUR(RGB,1.00000000,0.,0.),THICKNESS(5)),CURVES([[0., 0., 0.], [0., 0., 1.], [0., 1., 1.], [0., 1., 0.], [0., 0., 0.]],COLOUR(RGB,0,0,0),THICKNESS(3)),CURVES([[1., 1., 1.], [1., 1., 0.], [1., 0., 0.], [1., 0., 1.], [1., 1., 1.]],COLOUR(RGB,0,0,0),THICKNESS(3)),CURVES([[1., 0., 0.], [0., 0., 0.]],THICKNESS(3),COLOUR(RGB,0,0,0)),CURVES([[1., 0., 1.], [0., 0., 1.]],THICKNESS(3),COLOUR(RGB,0,0,0)),CURVES([[1., 1., 1.], [0., 1., 1.]],THICKNESS(3),COLOUR(RGB,0,0,0)),CURVES([[1., 1., 0.], [0., 1., 0.]],THICKNESS(3),COLOUR(RGB,0,0,0)),CURVES([[0., 0., 0.], [0., 1., 1.], [1., 1., 0.], [1., 0., 1.], [0., 0., 0.]],COLOUR(RGB,0.,0.,1.00000000),THICKNESS(5)),CURVES([[0., 0., 0.], [1., 1., 0.]],THICKNESS(5),COLOUR(RGB,0.,0.,1.00000000)),CURVES([[0., 1., 1.], [1., 0., 1.]],THICKNESS(5),COLOUR(RGB,0.,0.,1.00000000)),POLYGONS([[.5000000000, .4823223305, .5176776695], [.5000000000, .5176776695, .4823223305], [.1732050807, .8444725888, .8091172498], [.1732050807, .8091172498, .8444725888]],[[.1732050807, .8798279279, .7737619107], [0., 1.000000000, 1.000000000], [.1732050807, .7737619107, .8798279279]],STYLE(PATCHNOGRID),COLOUR(RGB,1.00000000,0.,0.),THICKNESS(5)),CURVES([[.5000000000, .5000000000, .5000000000], [0., 0., 0.]],THICKNESS(3),COLOUR(RGB,0.,1.00000000,0.)),CURVES([[.5000000000, .5000000000, .5000000000], [1., 1., 0.]],THICKNESS(3),COLOUR(RGB,0.,1.00000000,0.)),ORIENTATION(60.,55.),AXESTICKS(0,0,0),SCALING(CONSTRAINED),AXESSTYLE(NONE),THICKNESS(5))' />
</applet>
</td></tr></table><!--hboxt-->
</td>
<td width="10%"></td>
<td align="right">
<table bgcolor="antiquewhite" border="1" frame="box" rules="none">
<tr>
<td align="center" colspan="3" height="5">
<font size="2">Commands&nbsp;&nbsp;</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Mouse</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Drag to rotate</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Hold s</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Drag to scale</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Hold t</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Drag to translate</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Press r</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Reset</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top">
<font size="1">More</font></td>
<td width="5" valign="top"></td>
<td width="65%" valign="top"><a href="jars/help.html">
<font size="1">JavaView Help</font></a></td>
</tr>
<tr>
<td colspan="3" height="5"></td>
</tr>
</table>
</td></tr>
</table>

<center>Figure 4: The geometry of the bonding angle of carbon tetrachloride.</center>
<a name="Tetra">
</a>

<div class="p"><!----></div>
This problem can be done by brute force using high school geometry - try it.
A simpler approach is to represent the tetrahedron using vectors.  It helps to
realize that a tetrahedron is formed by connecting alternating vertices of a
cube, as shown in Figure&nbsp;<a href="#Tetra">4</a>, and that the center of the tetrahedron
is at the center of the cube.  It is now straightforward to write down the
coordinates of the vertices, thus obtaining the components of the vectors from
the center (shown in red in the figure).  Compute the dot product
(algebraically), divide by the magnitudes, and use the geometric expression
for the dot product to read off the cosine of the angle.  The answer?  A bit
more than 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<msup><mrow><mn>109</mn></mrow><mrow><mo>&SmallCircle;</mo></mrow>
</msup>
</mrow></math>.

<div class="p"><!----></div>
A simpler version of this problem would be to determine the angle between the
diagonal of a cube and one of its edges, that is, between the green (or red)
lines and the adjacent black lines in Figure&nbsp;<a href="#Tetra">4</a>.  Or between the
diagonals of adjacent faces - the blue lines in the figure.  Again, both the
geometric and algebraic expressions for the dot product are involved in the
solution.

<div class="p"><!----></div>
 <h2><a name="tth_sEc4">
4</a>&nbsp;&nbsp;Gram-Schmidt Orthogonalization</h2>
<a name="Gram">
</a>

<div class="p"><!----></div>
The most common use of the dot product in applications in physics and
engineering is to decompose vectors into their components parallel and
perpendicular to a given vector, for which an understanding of the geometric
definition&nbsp;(<a href="#dotgeom">1</a>) is essential.

<div class="p"><!----></div>

<div class="p"><!----></div>
<a name="tth_fIg5">
</a> 
<table align="center" border="0"><tr><td>
<table align="center" border="0"><tr><td>
<applet code="jvLite.class" archive='java/jvLite.jar' codebase='..' width='400' height='400'>
 <param name='DepthCue' value='hide' />
 <param name='Background' value='255 255 255' />
 <param name='Border' value='hide' />
 <param name='viewDir' value='-.61237 -.35355 -.70711' />
 <param name='perspective' value='0.0' />
 <param name='Maple' value='PLOT3D(POLYGONS([[0., -.5366563145e-1, .2683281573e-1], [0., .5366563145e-1, -.2683281573e-1], [0., .5861682194, 1.038172360], [0., .4788369566, 1.091837992]],[[0., .6934994823, .9845067288], [0., .6666666667, 1.333333333], [0., .3715056937, 1.145503623]],STYLE(PATCHNOGRID),COLOUR(RGB,0.,0.,1.00000000),THICKNESS(5)),POLYGONS([[-.4800000000e-1, .3600000000e-1, 0.], [.4800000000e-1, -.3600000000e-1, 0.], [1.368000000, 1.724000000, 0.], [1.272000000, 1.796000000, 0.]],[[1.464000000, 1.652000000, 0.], [1.500000000, 2.000000000, 0.], [1.176000000, 1.868000000, 0.]],STYLE(PATCHNOGRID),COLOUR(RGB,0,0,0),THICKNESS(5)),CURVES([[.3200000000, .4266666667, 0.], [0., .6666666667, 1.333333333]],THICKNESS(3),COLOUR(RGB,0.,0.,1.00000000)),CURVES([[-.3200000000, .2400000000, 1.333333333], [0., .6666666667, 1.333333333]],THICKNESS(3),COLOUR(RGB,0.,0.,1.00000000)),POLYGONS([[-0., -.2952549972e-1, .5314589950e-2], [0., .2952549972e-1, -.5314589950e-2], [-.2510365074, .2178028803, 1.040670858], [-.2510365074, .1587518809, 1.051300038]],[[-.2510365074, .2768538798, 1.030041678], [-.3200000000, .2400000000, 1.333333333], [-.2510365074, .9970088144e-1, 1.061929218]],STYLE(PATCHNOGRID),COLOUR(RGB,0.,0.,1.00000000),THICKNESS(3)),POLYGONS([[0., -.2228344058e-1, .5570860145e-1], [0., .2228344058e-1, -.5570860145e-1], [0., 1.743740434, .6328741956], [0., 1.699173552, .7442913984]],[[0., 1.788307315, .5214569927], [0., 2.000000000, .7999999999], [0., 1.654606671, .8557086013]],STYLE(PATCHNOGRID),COLOUR(RGB,1.00000000,0.,0.),THICKNESS(5)),CURVES([[.9600000000, 1.280000000, 0.], [0., 2., .8000000000]],THICKNESS(3),COLOUR(RGB,1.00000000,0.,0.)),CURVES([[-.9600000000, .7200000000, .8000000000], [0., 2., .8000000000]],THICKNESS(3),COLOUR(RGB,1.00000000,0.,0.)),POLYGONS([[-0., -.2229882439e-1, .2006894195e-1], [0., .2229882439e-1, -.2006894195e-1], [-.7603079294, .5925297714, .6135209992], [-.7603079294, .5479321226, .6536588830]],[[-.7603079294, .6371274201, .5733831153], [-.9600000001, .7200000000, .8000000000], [-.7603079294, .5033344739, .6937967669]],STYLE(PATCHNOGRID),COLOUR(RGB,1.00000000,0.,0.),THICKNESS(3)),CURVES([[.3938461538, -.2953846154, .7384615385], [-.3200000000, .2400000000, 1.333333333]],THICKNESS(1),COLOUR(RGB,0.,0.,1.00000000)),POLYGONS([[.1323529412e-1, -0., -.7058823527e-2], [-.1323529412e-1, 0., .7058823527e-2], [.2474828126, -.1955385801, .4959052737], [.2739534008, -.1955385801, .4817876267]],[[.2210122244, -.1955385801, .5100229208], [.3938461538, -.2953846154, .7384615385], [.3004239890, -.1955385801, .4676699796]],STYLE(PATCHNOGRID),COLOUR(RGB,0.,0.,1.00000000),THICKNESS(1)),CURVES([[-.7138461538, .5353846154, .5948717949], [-.3200000000, .2400000000, 1.333333333]],THICKNESS(1),COLOUR(RGB,0.,0.,1.00000000)),ORIENTATION(30.,45.),AXESTICKS(0,0,0),SCALING(CONSTRAINED),AXESSTYLE(NONE),THICKNESS(5))' />
</applet>
</td></tr></table><!--hboxt-->
</td>
<td width="10%"></td>
<td align="right">
<table bgcolor="antiquewhite" border="1" frame="box" rules="none">
<tr>
<td align="center" colspan="3" height="5">
<font size="2">Commands&nbsp;&nbsp;</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Mouse</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Drag to rotate</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Hold s</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Drag to scale</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Hold t</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Drag to translate</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Press r</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Reset</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top">
<font size="1">More</font></td>
<td width="5" valign="top"></td>
<td width="65%" valign="top"><a href="jars/help.html">
<font size="1">JavaView Help</font></a></td>
</tr>
<tr>
<td colspan="3" height="5"></td>
</tr>
</table>
</td></tr>
</table>

<center>Figure 5: The geometry of the Gram-Schmidt orthogonalization process.</center> 
<a name="GS">
</a>

<div class="p"><!----></div>
The Gram-Schmidt orthogonalization process uses this idea to construct an
orthonormal basis from a given set of (linearly independent) vectors.  This
can be beautifully illustrated in three dimensions, as shown in
Figure&nbsp;<a href="#GS">5</a> and described below.  Stick out three fingers of one hand in
arbitrary directions.  Pick one of these vectors (black) as the first of the
new orthogonal basis vectors.  Then pick a second (thick red), and subtract
from this vector its projection parallel to the first, resulting in a vector
perpendicular to the first (thin red).  Now subtract from the remaining vector
(thick blue) its projections parallel to both the first and second vectors,
resulting in a vector perpendicular to both (thinnest blue).  If your fingers
are limber enough, you have an orthogonal basis.  These three vectors (black,
thin red, thinnest blue) can be normalized if desired, yielding an orthonormal
basis.  Students who see this geometric idea behind the Gram-Schmidt process
have a much easier time sorting their way through the morass of formulas in
textbooks.

<div class="p"><!----></div>
In advanced courses, the fact that two vectors are perpendicular if their dot
product is zero may be used in more abstract settings, such as Fourier
analysis.  A problem which asks students to find the vector perpendicular to a
given vector, first in two and then in three dimensions, provides an excellent
introduction to this idea.

<div class="p"><!----></div>
 <h2><a name="tth_sEc5">
5</a>&nbsp;&nbsp;Cross Product</h2>
<a name="cross">
</a>

<div class="p"><!----></div>

<div class="p"><!----></div>
<a name="tth_fIg6">
</a> 
<table align="center" border="0"><tr><td>
<img src="cross.gif" alt="cross.gif" /></td></tr></table><!--hboxt-->

<center>Figure 6: The geometric definition of the cross product, whose magnitude is
defined to be the area of the parallelogram.</center>
<a name="Cross">
</a>

<div class="p"><!----></div>
The cross product is fundamentally a directed area.  The magnitude of the
cross product is defined to be the area of the parallelogram shown in
Figure&nbsp;<a href="#Cross">6</a>.  This leads to the formula
<a name="crossgeom">
</a><br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">&verbar;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo stretchy="false">&verbar;</mo><mo>=</mo><mo stretchy="false">&verbar;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo stretchy="false">&verbar;</mo><mo stretchy="false">&verbar;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo stretchy="false">&verbar;</mo><mi>sin</mi><mi>&theta;</mi></mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>12</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>


an immediate consequence of which is that
<a name="Cross1">
</a><br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&parallel;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&Leftrightarrow;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo>
<mover><mrow><mn>0</mn></mrow>
<mo>&rarr;</mo></mover>

</mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>13</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>


The direction of the cross product is given by the right-hand rule, so that
in the example shown 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math> points into the page.  This implies that
<a name="Cross2">
</a><br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo><mo>-</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>

</mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>14</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>


so that the cross product is not commutative.
<a href="#tthFtNtAAD" name="tthFrefAAD">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<msup><mrow></mrow><mrow><mn>3</mn></mrow>
</msup>
</mrow></math></a>
Another important property of the cross product is that
<a name="Cross3">
</a><br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo>
<mover><mrow><mn>0</mn></mrow>
<mo>&rarr;</mo></mover>

</mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>15</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>


which also follows immediately from&nbsp;(<a href="#crossgeom">12</a>).

<div class="p"><!----></div>
In terms of the standard orthonormal basis, the geometric formula quickly
yields
<br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mtable align="right" width="80%">
<mtr><mtd columnalign="right" columnspan="1"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">k</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow>
</mtd></mtr>
<mtr><mtd columnalign="right" columnspan="1"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">k</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow>
</mtd><mtd columnalign="right">&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;<mo stretchy="false">(</mo><mn>16</mn><mo stretchy="false">)</mo></mtd></mtr>
<mtr><mtd columnalign="right" columnspan="1"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">k</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow>
</mtd></mtr>
</mtable>
</mrow>
    </mstyle></math>
</td></tr></table>
<br />

with the remaining products being determined by&nbsp;(<a href="#Cross2">14</a>)
and&nbsp;(<a href="#Cross3">15</a>).  This cyclic nature of the cross product can be emphasized
by diagramming the multiplication table as shown in Figure&nbsp;<a href="#qmult">7</a>.
<a href="#tthFtNtAAE" name="tthFrefAAE">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<msup><mrow></mrow><mrow><mn>4</mn></mrow>
</msup>
</mrow></math></a>
Products in the direction of the arrow get a plus sign (e.g.&nbsp;
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">k</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>=</mo><mo>+</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>), while products against the arrow get a minus sign (e.g.&nbsp;
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">k</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>=</mo><mo>-</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>).

<div class="p"><!----></div>

<div class="p"><!----></div>
<a name="tth_fIg7">
</a> 
<table align="center" border="0"><tr><td>
<img src="qmult.png" alt="qmult.png" /></td></tr></table><!--hboxt-->

<center>Figure 7: The cross product multiplication table.</center>
<a name="qmult">
</a>

<div class="p"><!----></div>
Using an orthonormal basis such as 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow><mo stretchy="false">{</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>,</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>,</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">k</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo stretchy="false">}</mo></mrow></math>, the geometric formula
reduces to the standard component form of the cross product.  If

<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>z</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">k</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math> and and 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo>
<msub><mrow><mi>w</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>w</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>w</mi></mrow><mrow><mi>z</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">k</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>,
then
<a name="CrossAlg">
</a><br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mtable align="right" width="80%">
<mtr><mtd columnalign="right" columnspan="1"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>

</mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow><mo stretchy="false">(</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>z</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">k</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo stretchy="false">)</mo><mo>&times;</mo><mo stretchy="false">(</mo>
<msub><mrow><mi>w</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>w</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>w</mi></mrow><mrow><mi>z</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">k</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo stretchy="false">)</mo><mo>	</mo></mrow>
</mtd></mtr>
<mtr><mtd columnalign="right" columnspan="1"><mrow></mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow>
<msub><mrow><mi>v</mi></mrow><mrow><mi>x</mi></mrow>
</msub>

<msub><mrow><mi>w</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>x</mi></mrow>
</msub>

<msub><mrow><mi>w</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
<mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo></mrow>
</mtd><mtd columnalign="right">&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;<mo stretchy="false">(</mo><mn>17</mn><mo stretchy="false">)</mo></mtd></mtr>
<mtr><mtd columnalign="right" columnspan="1"><mrow></mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow><mo stretchy="false">(</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>y</mi></mrow>
</msub>

<msub><mrow><mi>w</mi></mrow><mrow><mi>z</mi></mrow>
</msub>
<mo>-</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>z</mi></mrow>
</msub>

<msub><mrow><mi>w</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
<mo stretchy="false">)</mo><mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo><mo stretchy="false">(</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>z</mi></mrow>
</msub>

<msub><mrow><mi>w</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
<mo>-</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>x</mi></mrow>
</msub>

<msub><mrow><mi>w</mi></mrow><mrow><mi>z</mi></mrow>
</msub>
<mo stretchy="false">)</mo><mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>	</mo><mo>+</mo><mo stretchy="false">(</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>x</mi></mrow>
</msub>

<msub><mrow><mi>w</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
<mo>-</mo>
<msub><mrow><mi>v</mi></mrow><mrow><mi>y</mi></mrow>
</msub>

<msub><mrow><mi>w</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
<mo stretchy="false">)</mo><mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">k</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>

</mrow>
</mtd></mtr>
</mtable>
</mrow>
    </mstyle></math>
</td></tr></table>
<br />

which is often written as the symbolic determinant
			<a name="CrossDet">
</a><br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>=</mo><mrow><mo>|</mo>
<mtable align="left"><mtr><mtd columnalign="center">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow>
</mtd><mtd columnalign="center">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow>
</mtd><mtd columnalign="center">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">k</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow>
</mtd></mtr>
<mtr><mtd columnalign="center" columnspan="1"><mrow>
<msub><mrow><mi>v</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
</mrow>
</mtd><mtd columnalign="center">
<mrow>
<msub><mrow><mi>v</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
</mrow>
</mtd><mtd columnalign="center">
<mrow>
<msub><mrow><mi>v</mi></mrow><mrow><mi>z</mi></mrow>
</msub>
</mrow>
</mtd></mtr>
<mtr><mtd columnalign="center" columnspan="1"><mrow>
<msub><mrow><mi>w</mi></mrow><mrow><mi>x</mi></mrow>
</msub>
</mrow>
</mtd><mtd columnalign="center">
<mrow>
<msub><mrow><mi>w</mi></mrow><mrow><mi>y</mi></mrow>
</msub>
</mrow>
</mtd><mtd columnalign="center">
<mrow>
<msub><mrow><mi>w</mi></mrow><mrow><mi>z</mi></mrow>
</msub>
</mrow>
</mtd></mtr>
</mtable>
<mo>|</mo></mrow></mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>18</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>


As with the dot product, this derivation works in <i>any</i> (right-handed)
orthonormal basis.

<div class="p"><!----></div>

<div class="p"><!----></div>
<a name="tth_fIg8">
</a> 
<table align="center" border="0"><tr><td>
<table align="center" border="0"><tr><td>
<applet code="jvLite.class" archive='java/jvLite.jar' codebase='..' width='400' height='400'>
 <param name='DepthCue' value='hide' />
 <param name='Background' value='255 255 255' />
 <param name='Border' value='hide' />
 <param name='viewDir' value='-0.74051 0.19206 -0.64400' />
 <param name='roll' value='5.25601' />
 <param name='perspective' value='0.0' />
 <param name='Maple' value='PLOT3D(POLYGONS([[0., -.8944271908e-1, .4472135954e-1], [0., .8944271908e-1, -.4472135954e-1], [0., .9552786405, 1.686950483], [0., .7763932023, 1.776393203]],[[0., 1.134164079, 1.597507764], [0., 1.000000000, 2.000000000], [0., .5975077642, 1.865835922]],STYLE(PATCHNOGRID),COLOUR(RGB,0.,0.,1.00000000),THICKNESS(5)),POLYGONS([[.6000000000e-1, -.8000000000e-1, 0.], [-.6000000000e-1, .8000000000e-1, 0.], [7.700000000, 5.900000000, 0.], [7.820000000, 5.740000000, 0.]],[[7.580000000, 6.060000000, 0.], [8.000000000, 6.000000000, 0.], [7.940000000, 5.580000000, 0.]],STYLE(PATCHNOGRID),COLOUR(RGB,0,0,0),THICKNESS(3)),CURVES([[0., 1., 2.], [8., 7., 2.]],THICKNESS(3),COLOUR(RGB,0,0,0)),CURVES([[0., 1., 2.], [.4800000000, .3600000000, 0.]],THICKNESS(3),COLOUR(RGB,0.,0.,1.00000000)),CURVES([[0., 3., 2.800000000], [.9600000000, 1.720000000, 2.]],THICKNESS(3),COLOUR(RGB,1.00000000,0.,0.)),POLYGONS([[4.555616774, 3.870288746, .9071523308], [4.511049892, 3.929711254, 1.092847669], [5.143924088, 3.085878993, 1.514763800], [5.188490969, 3.026456485, 1.329068461]],[[5.099357207, 3.145301501, 1.700459138], [5.333333333, 2.833333333, 1.533333333], [5.233057850, 2.967033977, 1.143373123]],STYLE(PATCHNOGRID),COLOUR(RGB,0.,0.,1.00000000),THICKNESS(5)),POLYGONS([[0., -.6823182503e-1, .7310552682e-1], [0., .6823182503e-1, -.7310552682e-1], [0., 2.848915245, 2.522198998], [0., 2.712451595, 2.668410052]],[[0., 2.985378895, 2.375987944], [0., 3.000000000, 2.800000000], [0., 2.575987945, 2.814621106]],STYLE(PATCHNOGRID),COLOUR(RGB,0.,1.00000000,0.),THICKNESS(5)),POLYGONS([[0., .9628609324, 2.092847669], [0., 1.037139068, 1.907152331], [0., 2.758596061, 2.595735128], [0., 2.684317925, 2.781430466]],[[0., 2.832874196, 2.410039790], [0., 3.000000000, 2.800000000], [0., 2.610039790, 2.967125804]],STYLE(PATCHNOGRID),COLOUR(RGB,1.00000000,0.,0.),THICKNESS(5)),CURVES([[8., 6., 0.], [8., 7., 2.]],THICKNESS(5),COLOUR(RGB,0.,0.,1.00000000)),CURVES([[8., 7., 2.], [8., 9., 2.800000000]],THICKNESS(5),COLOUR(RGB,1.00000000,0.,0.)),CURVES([[8., 6., 0.], [8., 9., 2.800000000]],THICKNESS(5),COLOUR(RGB,0.,1.00000000,0.)),POLYGONS([[3.866998964, 4.788445825, 2.355278640], [3.759667702, 4.931554175, 2.444721360], [3.999169254, 4.612218772, 3.243059869], [4.106500517, 4.469110421, 3.153617150]],[[3.891837991, 4.755327122, 3.332502588], [4.133333333, 4.433333333, 3.466666667], [4.213831780, 4.326002070, 3.064174431]],STYLE(PATCHNOGRID),COLOUR(RGB,1.00000000,0.,0.),THICKNESS(5)),POLYGONS([[4.092380815, 4.487936690, 1.324074340], [4.014285851, 4.592063310, 1.475925660], [4.997619662, 3.280951562, 2.880688248], [5.075714627, 3.176824942, 2.728836928]],[[4.919524697, 3.385078182, 3.032539569], [5.173333333, 3.046666667, 3.000000000], [5.153809592, 3.072698322, 2.576985607]],STYLE(PATCHNOGRID),COLOUR(RGB,0.,1.00000000,0.),THICKNESS(5)),CURVES([[4.293333333, 4.220000000, 2.], [4.773333333, 3.580000000, 0.]],THICKNESS(3),COLOUR(RGB,0.,0.,1.00000000)),CURVES([[3.333333333, 5.500000000, 2.800000000], [4.293333333, 4.220000000, 2.]],THICKNESS(3),COLOUR(RGB,1.00000000,0.,0.)),CURVES([[3.333333333, 5.500000000, 2.800000000], [4.773333333, 3.580000000, 0.]],THICKNESS(3),COLOUR(RGB,0.,1.00000000,0.)),CURVES([[0., 3., 2.800000000], [8., 9., 2.800000000]],THICKNESS(3),COLOUR(RGB,0,0,0)),CURVES([[0., 3., 2.800000000], [1.440000000, 1.080000000, 0.]],THICKNESS(3),COLOUR(RGB,0.,1.00000000,0.)),POLYGONS([[6.822283441, 2.970288746, -.2928476692], [6.777716559, 3.029711254, -.1071523308], [7.410590755, 2.185878993, .3147637996], [7.455157636, 2.126456485, .1290684612]],[[7.366023874, 2.245301501, .5004591378], [7.600000000, 1.933333333, .3333333333], [7.499724517, 2.067033977, -.566268770e-1]],STYLE(PATCHNOGRID),COLOUR(RGB,0.,0.,1.00000000),THICKNESS(3)),POLYGONS([[6.839047482, 2.947936690, -.2759256602], [6.760952518, 3.052063310, -.1240743398], [7.744286329, 1.740951562, 1.280688248], [7.822381294, 1.636824942, 1.128836928]],[[7.666191364, 1.845078182, 1.432539569], [7.920000000, 1.506666667, 1.400000000], [7.900476259, 1.532698322, .9769856070]],STYLE(PATCHNOGRID),COLOUR(RGB,0.,1.00000000,0.),THICKNESS(3)),POLYGONS([[7.603665631, 1.928445825, .2552786404], [7.496334369, 2.071554175, .3447213596], [7.735835921, 1.752218772, 1.143059869], [7.843167184, 1.609110421, 1.053617150]],[[7.628504658, 1.895327122, 1.232502588], [7.870000000, 1.573333333, 1.366666667], [7.950498447, 1.466002070, .9641744310]],STYLE(PATCHNOGRID),COLOUR(RGB,1.00000000,0.,0.),THICKNESS(3)),ORIENTATION(-5.,56.),SCALING(CONSTRAINED),AXESSTYLE(NONE),THICKNESS(5),VIEW(-.5 .. 8.,-.5 .. 9.,-.5 .. 3.5))' />
</applet>
</td></tr></table><!--hboxt-->
</td>
<td width="10%"></td>
<td align="right">
<table bgcolor="antiquewhite" border="1" frame="box" rules="none">
<tr>
<td align="center" colspan="3" height="5">
<font size="2">Commands&nbsp;&nbsp;</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Mouse</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Drag to rotate</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Hold s</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Drag to scale</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Hold t</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Drag to translate</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top"><em>
<font size="1">Press r</font></em></td>
<td width="5"></td>
<td width="65%"><font size="1">Reset</font></td>
</tr>
<tr>
<td align="center" width="30%" valign="top">
<font size="1">More</font></td>
<td width="5" valign="top"></td>
<td width="65%" valign="top"><a href="jars/help.html">
<font size="1">JavaView Help</font></a></td>
</tr>
<tr>
<td colspan="3" height="5"></td>
</tr>
</table>
</td></tr>
</table>

<center>Figure 8: A geometric proof of the linearity of the cross product.</center>
<a name="CrossGeom">
</a>

<div class="p"><!----></div>
OK, this time you surely noticed; we must again check linearity, that is,
whether the cross product distributes over addition, or in other words whether
<a name="CrossLin">
</a><br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&times;</mo><mo stretchy="false">(</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>+</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">u</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo stretchy="false">)</mo><mo>=</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>+</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">u</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>

</mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>19</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>


As we now show, this follows with a little thought from
Figure&nbsp;<a href="#CrossGeom">8</a>.
<a href="#tthFtNtAAC" name="tthFrefAAC">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<msup><mrow></mrow><mrow><mn>2</mn></mrow>
</msup>
</mrow></math></a>

Consider in turn the vectors 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math> (blue), 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">u</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math> (red), and 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>+</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">u</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math> (green) at the ends of the prism.  The cross product
of each of these vectors with 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math> (black) is proportional to its projection
perpendicular to&nbsp;
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math>.  These projections are shown as thin solid lines in the
figure.  Since the projections lie in the plane perpendicular to 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math>, they
can be combined into the triangle shown in the middle of the figure.  Two of
the vectors making up the sides of a triangle add up to the third; in this
case, the sides are the projections of 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math>, 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">u</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math>, and 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>+</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">u</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math>, and the
latter is clearly the sum of the first two.  But each cross product is now
just a rotation of one of the sides of this triangle, rescaled by the length
of 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">w</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
</mrow></math>; these are the arrows perpendicular to the faces of the prism.  Two
of these vectors therefore still add to the third, as indicated by the vector
triangle in front of the prism.  This establishes&nbsp;(<a href="#CrossLin">19</a>).

<div class="p"><!----></div>
 <h2><a name="tth_sEc6">
6</a>&nbsp;&nbsp;Cross Product Pedagogy</h2>

<div class="p"><!----></div>
We digress briefly to mention some pedagogical issues which arise when
teaching students about the cross product.

<div class="p"><!----></div>
First of all, we strongly discourage teaching, or even reviewing, the dot and
cross products at the same time - students tend to get them mixed up!

<div class="p"><!----></div>
As for the calculation of the cross product, we encourage students to compute
the determinant&nbsp;(<a href="#CrossDet">18</a>), rather than memorizing&nbsp;(<a href="#CrossAlg">17</a>). But
we also encourage students to use the multiplication table directly for simple
cross products, such as 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow><mo stretchy="false">(</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo><mn>3</mn><mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo stretchy="false">)</mo><mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">k</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>, rather than using
determinants at all.

<div class="p"><!----></div>
However, we <i>discourage</i> students from working out the determinant
using minors, which would result in the final expression in&nbsp;(<a href="#CrossAlg">17</a>)
but with two sign changes in the term involving 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>.  Instead, we encourage
students to take 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow><mn>3</mn><mo>&times;</mo><mn>3</mn></mrow></math> determinants in the form
<table width="100%" align="center" border="0">
<tr>
<td>&nbsp;</td>
<td align="center"><img src="determinant.gif" alt="determinant.gif"/></td>
<td align="right">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mtext>
<div class="p"><!----></div>
</mtext>
</mrow>
    </mstyle></math></td><td width="1">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow><mo stretchy="false">(</mo><mn>20</mn><mo stretchy="false">)</mo></mrow>
    </mstyle></math>
</td></tr></table>

where one multiplies the terms along each diagonal line, subtracting the
products obtained along lines going down to the left from those along lines
going down to the right.  While this method works only for (
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow><mn>2</mn><mo>&times;</mo><mn>2</mn></mrow></math> and)

<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow><mn>3</mn><mo>&times;</mo><mn>3</mn></mrow></math> determinants, and is therefore usually omitted from a linear
algebra course, it has the definite advantage of emphasizing the cyclic nature
of the cross product - whereas students who use minors often make sign
errors.

<div class="p"><!----></div>
 <h2><a name="tth_sEc7">
7</a>&nbsp;&nbsp;Divergence and Curl</h2>

<div class="p"><!----></div>
The geometric approach extends naturally to the divergence and curl of a
vector field.

<div class="p"><!----></div>
It is straightforward to define divergence as flux per unit volume.  This
amounts to taking an infinitesimal version of the Divergence Theorem as the
<i>definition</i> of divergence; the computation traditionally done to prove
the theorem become instead the derivation of the component representation of
the divergence, expressed in rectangular coordinates.

<div class="p"><!----></div>
This approach is beautifully summarized in&nbsp;[<a href="#Schey" name="CITESchey">2</a>], and is included in
some physics textbooks, such as&nbsp;[<a href="#Griffiths" name="CITEGriffiths">3</a>,<a href="#Lorrain" name="CITELorrain">4</a>,<a href="#Reitz" name="CITEReitz">5</a>], but has not
been adopted in many mathematics textbooks (a notable exception
being&nbsp;[<a href="#Harvard" name="CITEHarvard">6</a>]).  It not only emphasizes the geometric relationship
between divergence and flux, but makes clear how to derive the component
representation in other coordinate systems.

<div class="p"><!----></div>
It then seems natural to define curl as (oriented) circulation per unit area,
turning an infinitesimal version of Stokes' Theorem into a definition, which
is then used to derive the component representation of curl in rectangular
coordinates.  This is indeed the approach taken in&nbsp;[<a href="#Schey" name="CITESchey">2</a>]
(and&nbsp;[<a href="#Harvard" name="CITEHarvard">6</a>]).

<div class="p"><!----></div>

<div class="p"><!----></div>
<a name="tth_fIg9">
</a> 
<table align="center" border="0"><tr><td>
<img src="tetra.gif" alt="tetra.gif" /></td></tr></table><!--hboxt-->

<center>Figure 9: The decomposition of a triangle into "component" triangles in the
coordinate planes.</center>
<a name="tetra">
</a>

<div class="p"><!----></div>
However, there is an issue of principle which we have not seen addressed in
textbooks: One must argue that this procedure defines a vector field!  It is
not enough to derive the separate formulas for the circulation per unit area
in each (rectangular) coordinate plane, one must also show that the
circulation in <i>any</i> plane is equal to an appropriate sum of these
circulations.  But this follows immediately from the diagram in
Figure&nbsp;<a href="#tetra">9</a>, which decomposes an arbitrary triangle into three
triangles in the coordinate planes; it is straightforward to check that the
circulation around the original triangle is equal to the sum of the
(appropriately oriented!)&nbsp;circulations around the "component" triangles.
The contributions of the circulations along all the "extra" sides cancel
pairwise.

<div class="p"><!----></div>
 <h2><a name="tth_sEc8">
8</a>&nbsp;&nbsp;Discussion</h2>

<div class="p"><!----></div>
We have shown how to prove geometrically that the dot and cross products are
linear (i.e.&nbsp;that they distribute over addition), using Figures&nbsp;<a href="#DotGeom">3</a>
and&nbsp;<a href="#CrossGeom">8</a>, respectively.  These proofs are important for faculty
wishing to emphasize the geometric definitions in their classroom.  However,
it is not at all clear that these proofs are relevant for students, especially
in introductory courses.  Most students will accept, say, the argument
presented in&nbsp;(<a href="#algebraic">7</a>) without question, failing to notice that
linearity is an issue.  While faculty should of course be prepared to justify
this if asked, we see nothing wrong with not raising the issue of linearity
otherwise.  Similarly, the proof that the curl is a vector field can be
omitted.

<div class="p"><!----></div>
As shown above, the Law of Cosines follows immediately from the geometric
definition of the dot product, in direct contrast to the traditional
treatment, in which the order is reversed.  Indeed, many students who have
memorized the Law of Cosines are delighted with this derivation.  This
suggests to us that it might be beneficial to include the dot product in
trigonometry courses, even in high school, rather than saving it for later.  A
strong argument in favor of such an approach is the ease with which the
addition formulas could then be derived: From the unit circle definition of
the trig functions, any vector on the unit circle can be written in the form

<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow><mi>cos</mi><mi>&theta;</mi><mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo><mi>sin</mi><mi>&theta;</mi><mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>, where 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow><mi>&theta;</mi></mrow></math> is the angle to the positive

<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow><mi>x</mi></mrow></math>-axis.  But the cosine of the angle between any two such vectors is just
their dot product, since both are unit vectors, so that

<div class="p"><!----></div>
<br />
<table width="100%"><tr><td align="center">
    <math xmlns="http://www.w3.org/1998/Math/MathML">
    <mstyle displaystyle="true"><mrow>
<mtable align="right" width="80%">
<mtr><mtd columnalign="right" columnspan="1"><mrow><mi>cos</mi><mo stretchy="false">(</mo><mi>&beta;</mi><mo>-</mo><mi>&alpha;</mi><mo stretchy="false">)</mo></mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">u</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>
<mo>&middot;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">v</mi>
<mtext></mtext>
</mrow>
<mo>&rarr;</mo></mover>

<mo>=</mo><mo stretchy="false">(</mo><mi>cos</mi><mi>&alpha;</mi><mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo><mi>sin</mi><mi>&alpha;</mi><mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo stretchy="false">)</mo><mo>&middot;</mo><mo stretchy="false">(</mo><mi>cos</mi><mi>&beta;</mi><mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>+</mo><mi>sin</mi><mi>&beta;</mi><mi>&ensp;</mi>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo stretchy="false">)</mo></mrow>
</mtd></mtr>
<mtr><mtd columnalign="right" columnspan="1"><mrow></mrow>
</mtd><mtd columnalign="left">
<mrow><mo>=</mo></mrow>
</mtd><mtd columnalign="left">
<mrow><mi>cos</mi><mi>&alpha;</mi><mi>cos</mi><mi>&beta;</mi><mo>+</mo><mi>sin</mi><mi>&alpha;</mi><mi>sin</mi><mi>&beta;</mi></mrow>
</mtd><mtd columnalign="right">&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;<mo stretchy="false">(</mo><mn>21</mn><mo stretchy="false">)</mo></mtd></mtr>
</mtable>
</mrow>
    </mstyle></math>
</td></tr></table>
<br />

as illustrated in Figure&nbsp;<a href="#addition">10</a>.

<div class="p"><!----></div>

<div class="p"><!----></div>
<a name="tth_fIg10">
</a> 
<table align="center" border="0"><tr><td>
<img src="trigadd.gif" alt="trigadd.gif" /></td></tr></table><!--hboxt-->

<center>Figure 10: Deriving the addition formula for cosine using the dot product.</center>
<a name="addition">
</a>

<div class="p"><!----></div>
Why aren't geometric proofs such as those presented here more common?  We
believe this lies in part with the difficulty in translating them into words
on the printed page.  Consider for example the Gram-Schmidt orthogonalization
process.  As discussed in Section&nbsp;<a href="#Gram">4</a>, the geometry of this
construction can be beautifully illustrated by (literally) waving one's hands.
It is easy to write down the formulas after seeing this demonstration, but the
formulas by themselves are much less enlightening.  You may have had some
trouble sorting through the arguments in this paper, but try them in the
classroom, where you can point at the pictures.  They work like a charm.

<div class="p"><!----></div>

<div class="p"><!----></div>

<h2>Acknowledgments</h2>

<div class="p"><!----></div>
This work was partially supported by NSF grants DUE-0088901 and DUE-0231032.
Early versions of the figures used to prove linearity were constructed while
we were Noyce Visiting Professors at Grinnell College, an opportunity for
which we are grateful.  The print version of this manuscript was prepared
using L<font size="-1">A</font>T<sub>E</sub>X, then converted to MathML using
T<sub><font size="-1">T</font></sub>M&nbsp;[<a href="#TtM" name="CITETtM">7</a>]
for online use; 
the color figures were originally drawn using Maple, then converted to Java
applets using JavaView&nbsp;[<a href="#JV" name="CITEJV">8</a>].

<div class="p"><!----></div>

<h2>References</h2>

<dl compact="compact">
 <dt><a href="#CITECrossFig" name="CrossFig">[1]</a></dt><dd>
Tevian Dray and Corinne A. Manogue,
Dot and Cross Products webpage.
Retrieved June 20, 2005 from
<a href="http://www.math.oregonstate.edu/bridge/ideas/dotcross"><tt>http://www.math.oregonstate.edu/bridge/ideas/dotcross</tt></a>.

<div class="p"><!----></div>
</dd>
 <dt><a href="#CITESchey" name="Schey">[2]</a></dt><dd>
H. M. Schey,
<b>Div, Grad, Curl and all that</b>, 4th edition
Norton, New York, 2005.

<div class="p"><!----></div>
</dd>
 <dt><a href="#CITEGriffiths" name="Griffiths">[3]</a></dt><dd>
David J. Griffiths,
<b>Introduction to Electrodynamics</b>, 3rd edition,
Prentice-Hall, New York, 1999.

<div class="p"><!----></div>
</dd>
 <dt><a href="#CITELorrain" name="Lorrain">[4]</a></dt><dd>
Paul Lorrain, Dale P. Corson, and Fran&#231;ois Lorrain,
<b>Electromagnetic Fields and Waves</b>, 3rd edition,
Addison-Wesley, New York, 1988.

<div class="p"><!----></div>
</dd>
 <dt><a href="#CITEReitz" name="Reitz">[5]</a></dt><dd>
John R. Reitz, Frederick J. Milford, Robert W. Christy,
<b>Foundations of Electromagnetic Theory</b>, 4th edition,
W. H. Freeman, New York, 1993.

<div class="p"><!----></div>
</dd>
 <dt><a href="#CITEHarvard" name="Harvard">[6]</a></dt><dd>
William McCallum, Deborah Hughes-Hallett, Andrew Gleason, et al.,
<b>Multivariable Calculus</b>, 3rd edition
Wiley, New York, 2001.

<div class="p"><!----></div>
</dd>
 <dt><a href="#CITETtM" name="TtM">[7]</a></dt><dd>
Ian Hutchinson,
T<sub><font size="-1">T</font></sub>M&nbsp;website.
Retrieved January 28, 2006 from
<a href="http://hutchinson.belmont.ma.us/ttm"><tt>http://hutchinson.belmont.ma.us/ttm</tt></a>.

<div class="p"><!----></div>
</dd>
 <dt><a href="#CITEJV" name="JV">[8]</a></dt><dd>
Konrad Polthier,
JavaView website.
Retrieved June 19, 2005 from
<a href="http://www.javaview.de"><tt>http://www.javaview.de</tt></a>.
</dd>
</dl>

<div class="p"><!----></div>
<hr /><h3>Footnotes:</h3>

<div class="p"><!----></div>
<a name="tthFtNtAAB"></a><a href="#tthFrefAAB">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<msup><mrow></mrow><mrow><mn>1</mn></mrow>
</msup>
</mrow></math></a>We follow standard usage among scientists and engineers by putting
hats on unit vectors.
<div class="p"><!----></div>
<a name="tthFtNtAAC"></a><a href="#tthFrefAAC">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<msup><mrow></mrow><mrow><mn>2</mn></mrow>
</msup>
</mrow></math></a>Active versions of this figure are available online
at&nbsp;[<a href="#CrossFig" name="CITECrossFig">1</a>] in both Java and Maple formats.
<div class="p"><!----></div>
<a name="tthFtNtAAD"></a><a href="#tthFrefAAD">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<msup><mrow></mrow><mrow><mn>3</mn></mrow>
</msup>
</mrow></math></a>This may be the first example some students have seen of a product
which is not commutative.  It is worth pointing out that the cross product
also fails to be associative, since for example 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&times;</mo><mo stretchy="false">(</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo stretchy="false">)</mo><mo>=</mo><mo>-</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>
but 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow><mo stretchy="false">(</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo stretchy="false">)</mo><mo>&times;</mo>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
<mo>=</mo>
<mover><mrow><mn>0</mn></mrow>
<mo>&rarr;</mo></mover>
</mrow></math>.
<div class="p"><!----></div>
<a name="tthFtNtAAE"></a><a href="#tthFrefAAE">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<msup><mrow></mrow><mrow><mn>4</mn></mrow>
</msup>
</mrow></math></a>This is really the multiplication table for the unit imaginary
quaternions, a number system which generalizes the familiar complex numbers.
Quaternions predate vector analysis, which borrowed the quaternionic units

<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow><mi>i</mi></mrow></math>, 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow><mi>j</mi></mrow></math>, 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow><mi>k</mi></mrow></math> as labels for the rectangular basis vectors 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&imath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>, 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">&jmath;</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>, 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">k</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>.
A more logical name for the rectangular basis vectors would be 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">x</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>,

<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">y</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>, 
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mover><mrow>
<mtext></mtext>
<mi fontstyle="normal" fontweight="bold">z</mi>
<mtext></mtext>
</mrow>
<mo>&Hat;</mo></mover>
</mrow></math>, which is used by many physicists.
<br /><br /><hr /><small>File translated from
T<sub><font size="-1">E</font></sub>X
by <a href="http://hutchinson.belmont.ma.us/tth/">
T<sub><font size="-1">T</font></sub>M</a>,
version 3.72.<br />On 23 May 2006, 15:32.</small>
</body></html>

