(************** Content-type: application/mathematica ************** CreatedBy='Mathematica 5.1' Mathematica-Compatible Notebook This notebook can be used with any Mathematica-compatible application, such as Mathematica, MathReader or Publicon. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. *******************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 10140, 306]*) (*NotebookOutlinePosition[ 10819, 329]*) (* CellTagsIndexPosition[ 10775, 325]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell["Lange's Converse to Stern and Stolz", "Title"], Cell["\<\ Jerry Lange's improved version of Van Vleck's converse to the theorem of \ Stern and Stolz\ \>", "Subtitle"], Cell[TextData[{ "The proof of Theorem 12.3 on page 223 includes the assertion that if \ A,A',B,B' are complex numbers such that ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{"|", RowBox[{"det", "(", GridBox[{ {"A", \(A'\)}, {"B", \(B'\)} }], ")"}], "|"}], "="}], TraditionalForm]]], "1, and if ", Cell[BoxData[ \(TraditionalForm\`z\_\(\(\[LeftDoubleBracket]\)\(1\)\(\ \[RightDoubleBracket]\)\), \ z\_\(\(\[LeftDoubleBracket]\)\(2\)\(\[RightDoubleBracket]\)\), \ and\ z\_\(\(\[LeftDoubleBracket]\)\(3\)\(\[RightDoubleBracket]\)\)\)]], " are given by A/B, (A+\[ImaginaryI] A')/(B+\[ImaginaryI] B'), and (A-\ \[ImaginaryI]A')/(B-\[ImaginaryI]B') respectively, then the diameter of the \ circle through ", Cell[BoxData[ \(TraditionalForm\`z\_\(\(\[LeftDoubleBracket]\)\(1\)\(\ \[RightDoubleBracket]\)\), \ z\_\(\(\[LeftDoubleBracket]\)\(2\)\(\[RightDoubleBracket]\)\), \ and\ z\_\(\(\[LeftDoubleBracket]\)\(3\)\(\[RightDoubleBracket]\)\)\)]], " is 1/Re[B*Conjugate[B']]. Here we give the ", StyleBox["Mathematica", FontSlant->"Italic"], " code for a computer-algebra verification of the claim. " }], "Subsubtitle"], Cell[BoxData[ \(mytimes[a_, b_] := {a[\([1]\)]\ b[\([1]\)] - a[\([2]\)]\ b[\([2]\)], a[\([1]\)] b[\([2]\)] + a[\([2]\)]\ b[\([1]\)]}\)], "Input", InitializationCell->True], Cell[TextData[{ "This implements complex multiplication as an operation on pairs of real \ numbers. We have to do it this way because only thus can we get ", StyleBox["Mathematica", FontSlant->"Italic"], " to \"think about\" the real and imaginary parts of complex numbers as \ algebraic formal objects in their own right. " }], "Text"], Cell[BoxData[ \(midpt[z1_, z2_] := \((z1 + z2)\)/2\)], "Input", InitializationCell->True], Cell[BoxData[ \(iit[x_] := {\(-x[\([2]\)]\), x[\([1]\)]}\)], "Input", InitializationCell->True], Cell["\<\ This implements multiplication by i, and the next function implements the \ complex conjugate. \ \>", "Text"], Cell[BoxData[ \(myconjug[a_] := {a[\([1]\)], \(-a[\([2]\)]\)}\)], "Input", InitializationCell->True], Cell[BoxData[ \(ctral[z1_, z2_, z3_] := Module[{d1, d2, c1, c2, s, t, s1, t1, u}, \[IndentingNewLine]d1 = iit[z2 - z1]; d2 = iit[z3 - z1]; c1 = midpt[z1, z2]; \[IndentingNewLine]c2 = midpt[z1, z3]; \[IndentingNewLine]u = \(Solve[{c1 + s\ d1 \[Equal] c2 + t\ d2}, {s, t}]\)[\([1]\)]; \[IndentingNewLine]c1 + s\ d1 /. u]\)], "Input", InitializationCell->True], Cell["\<\ The function ctral finds the center of the circle through z1, z2, and z3. The \ function below, mydiv, implements complex division as an operation on pairs \ of real numbers. \ \>", "Text"], Cell[BoxData[ \(mydiv[a_, b_] := mytimes[a, myconjug[b]]/\(mytimes[b, myconjug[b]]\)[\([1]\)]\)], "Input",\ InitializationCell->True], Cell["\<\ The function radl computes the square radius of the circle through z1, z2, \ and z3. \ \>", "Text"], Cell[BoxData[ \(radl[z1_, z2_, z3_] := Module[{c}, c = ctral[z1, z2, z3]; \((z1 - c)\) . \((z1 - c)\)]\)], "Input", InitializationCell->True], Cell[CellGroupData[{ Cell[BoxData[ \(mytimes[{2, 1}, {3, 2}]\)], "Input"], Cell[BoxData[ \({4, 7}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(mydiv[{2, 1}, {3, 2}]\)], "Input"], Cell[BoxData[ \({8\/13, \(-\(1\/13\)\)}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((2 + I)\)/\((3 + 2\ I)\) \[Equal] \((8 - I)\)/13\)], "Input"], Cell[BoxData[ \(True\)], "Output"] }, Open ]], Cell["\<\ (It never hurts to check!) The function myabs, below, implements the complex \ absolute value as an operation on pairs of real numbers. Myreal and myimag \ implement the real and imaginary parts as functions on pairs of real numbers. \ \ \>", "Text"], Cell[BoxData[ \(myabs[a_] := Sqrt[\(mytimes[a, myconjug[a]]\)[\([1]\)]]\)], "Input", InitializationCell->True], Cell[CellGroupData[{ Cell[BoxData[ \(myabs[{3, 4}]\)], "Input"], Cell[BoxData[ \(5\)], "Output"] }, Open ]], Cell[BoxData[{ \(\(myreal[a_] := a[\([1]\)];\)\), "\n", \(myimag[a_] := a[\([2]\)]\)}], "Input", InitializationCell->True], Cell["\<\ We now declare A=an={an1,an2}, B={bn1,bn2}, and B'={bm1,bm2}. A' is not free, \ but is determined by the requirement on the determinant. \ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(an = {an1, an2}; bn = {bn1, bn2}; bm = {bm1, bm2}\)], "Input", InitializationCell->True], Cell[BoxData[ \({bm1, bm2}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(am = mydiv[mytimes[an, bm] + {1, 0}, bn]\)], "Input", InitializationCell->True], Cell[BoxData[ \({\(\((1 + an1\ bm1 - an2\ bm2)\)\ bn1 + \((an2\ bm1 + an1\ bm2)\)\ \ bn2\)\/\(bn1\^2 + bn2\^2\), \(\((an2\ bm1 + an1\ bm2)\)\ bn1 - \((1 + an1\ \ bm1 - an2\ bm2)\)\ bn2\)\/\(bn1\^2 + bn2\^2\)}\)], "Output"] }, Open ]], Cell["\<\ And now we compute z1, z2, and z3. It gets messy for z2 and z3 so the \ displays have been suppressed. \ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[{ \(\(z2 = mydiv[an + iit[am], bn + iit[bm]];\)\), "\[IndentingNewLine]", \(\(z3 = mydiv[an - iit[am], bn - iit[bm]];\)\), "\[IndentingNewLine]", \(z1 = mydiv[an, bn]\)}], "Input", InitializationCell->True], Cell[BoxData[ \({\(an1\ bn1 + an2\ bn2\)\/\(bn1\^2 + bn2\^2\), \(an2\ bn1 - an1\ \ bn2\)\/\(bn1\^2 + bn2\^2\)}\)], "Output"] }, Open ]], Cell["\<\ And now we compute the radius, as a formal algebraic object. It's a mess too. \ Display it at your peril. But the simplified version is exactly what it was \ claimed to be. \ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(u = radl[z1, z2, z3]; uu = Simplify[u]\)], "Input", InitializationCell->True], Cell[BoxData[ \(1\/\(4\ \((bm1\ bn1 + bm2\ bn2)\)\^2\)\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(u\)], "Input"], Cell[BoxData[ \(\((\(an2\ bn1 - an1\ bn2\)\/\(bn1\^2 + bn2\^2\) + \((\((\(-bm2\)\ bn1 + \ bn1\^2 + bm1\ bn2 + bn2\^2)\)\ \((\(-\(\(an1\ bn1 + an2\ bn2\)\/\(bn1\^2 + \ bn2\^2\)\)\) + \((\(-\((\(-bm1\) - bn2)\)\)\ \((an2 + \((\((1 + an1\ bm1 - \ an2\ bm2)\)\ bn1 + \((an2\ bm1 + an1\ bm2)\)\ bn2)\)/\((bn1\^2 + bn2\^2)\))\) \ + \((\(-bm2\) + bn1)\)\ \((an1 - \((\((an2\ bm1 + an1\ bm2)\)\ bn1 - \((1 + \ an1\ bm1 - an2\ bm2)\)\ bn2)\)/\((bn1\^2 + bn2\^2)\))\))\)/\((\((\(-bm2\) + \ bn1)\)\^2 - \((\(-bm1\) - bn2)\)\ \((bm1 + bn2)\))\))\))\)/\((2\ \((bm1\ bn1 \ + bm2\ bn2)\))\) + 1\/2\ \((\(-\(\(an2\ bn1 - an1\ bn2\)\/\(bn1\^2 + bn2\^2\)\ \)\) - \((\((\(-bm2\) + bn1)\)\ \((an2 + \(\(1\/\(bn1\^2 + bn2\^2\)\)\((\((1 \ + an1\ bm1 - an2\ bm2)\)\ bn1 + \((an2\ bm1 + an1\ bm2)\)\ bn2)\)\))\) + \ \((\(-bm1\) - bn2)\)\ \((an1 - \(\(1\/\(bn1\^2 + bn2\^2\)\)\((\((an2\ bm1 + \ an1\ bm2)\)\ bn1 - \((1 + an1\ bm1 - an2\ bm2)\)\ bn2)\)\))\))\)/\((\((\(-bm2\ \) + bn1)\)\^2 - \((\(-bm1\) - bn2)\)\ \((bm1 + bn2)\))\))\))\)\^2 + \((\(an1\ \ bn1 + an2\ bn2\)\/\(bn1\^2 + bn2\^2\) + 1\/2\ \((\(-\(\(an1\ bn1 + an2\ bn2\ \)\/\(bn1\^2 + bn2\^2\)\)\) - \((\(-\((\(-bm1\) - bn2)\)\)\ \((an2 + \ \(\(1\/\(bn1\^2 + bn2\^2\)\)\((\((1 + an1\ bm1 - an2\ bm2)\)\ bn1 + \((an2\ \ bm1 + an1\ bm2)\)\ bn2)\)\))\) + \((\(-bm2\) + bn1)\)\ \((an1 - \ \(\(1\/\(bn1\^2 + bn2\^2\)\)\((\((an2\ bm1 + an1\ bm2)\)\ bn1 - \((1 + an1\ \ bm1 - an2\ bm2)\)\ bn2)\)\))\))\)/\((\((\(-bm2\) + bn1)\)\^2 - \((\(-bm1\) - \ bn2)\)\ \((bm1 + bn2)\))\))\) + \((\((\(-bm2\)\ bn1 + bn1\^2 + bm1\ bn2 + bn2\ \^2)\)\ \((\(an2\ bn1 - an1\ bn2\)\/\(bn1\^2 + bn2\^2\) - \((\((\(-bm2\) + \ bn1)\)\ \((an2 + \((\((1 + an1\ bm1 - an2\ bm2)\)\ bn1 + \((an2\ bm1 + an1\ \ bm2)\)\ bn2)\)/\((bn1\^2 + bn2\^2)\))\) + \((\(-bm1\) - bn2)\)\ \((an1 - \ \((\((an2\ bm1 + an1\ bm2)\)\ bn1 - \((1 + an1\ bm1 - an2\ bm2)\)\ \ bn2)\)/\((bn1\^2 + bn2\^2)\))\))\)/\((\((\(-bm2\) + bn1)\)\^2 - \((\(-bm1\) - \ bn2)\)\ \((bm1 + bn2)\))\))\))\)/\((2\ \((bm1\ bn1 + bm2\ bn2)\))\))\)\^2\)], \ "Output"] }, Open ]] }, Open ]] }, FrontEndVersion->"5.1 for Microsoft Windows", ScreenRectangle->{{0, 1024}, {0, 685}}, AutoGeneratedPackage->Automatic, WindowSize->{495, 527}, WindowMargins->{{Automatic, 143}, {48, Automatic}} ] (******************************************************************* Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. *******************************************************************) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[1776, 53, 52, 0, 150, "Title"], Cell[1831, 55, 118, 3, 109, "Subtitle"], Cell[1952, 60, 1260, 29, 171, "Subsubtitle"], Cell[3215, 91, 186, 3, 70, "Input", InitializationCell->True], Cell[3404, 96, 346, 7, 90, "Text"], Cell[3753, 105, 95, 2, 30, "Input", InitializationCell->True], Cell[3851, 109, 101, 2, 30, "Input", InitializationCell->True], Cell[3955, 113, 119, 3, 52, "Text"], Cell[4077, 118, 106, 2, 30, "Input", InitializationCell->True], Cell[4186, 122, 446, 9, 130, "Input", InitializationCell->True], Cell[4635, 133, 199, 4, 71, "Text"], Cell[4837, 139, 147, 4, 50, "Input", InitializationCell->True], Cell[4987, 145, 110, 3, 52, "Text"], Cell[5100, 150, 163, 4, 50, "Input", InitializationCell->True], Cell[CellGroupData[{ Cell[5288, 158, 56, 1, 30, "Input"], Cell[5347, 161, 40, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[5424, 167, 54, 1, 30, "Input"], Cell[5481, 170, 57, 1, 42, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[5575, 176, 83, 1, 30, "Input"], Cell[5661, 179, 38, 1, 29, "Output"] }, Open ]], Cell[5714, 183, 260, 5, 71, "Text"], Cell[5977, 190, 116, 2, 30, "Input", InitializationCell->True], Cell[CellGroupData[{ Cell[6118, 196, 46, 1, 30, "Input"], Cell[6167, 199, 35, 1, 29, "Output"] }, Open ]], Cell[6217, 203, 133, 3, 50, "Input", InitializationCell->True], Cell[6353, 208, 162, 4, 71, "Text"], Cell[CellGroupData[{ Cell[6540, 216, 110, 2, 30, "Input", InitializationCell->True], Cell[6653, 220, 44, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[6734, 226, 101, 2, 30, "Input", InitializationCell->True], Cell[6838, 230, 226, 3, 76, "Output"] }, Open ]], Cell[7079, 236, 127, 3, 52, "Text"], Cell[CellGroupData[{ Cell[7231, 243, 235, 4, 70, "Input", InitializationCell->True], Cell[7469, 249, 128, 2, 42, "Output"] }, Open ]], Cell[7612, 254, 197, 4, 71, "Text"], Cell[CellGroupData[{ Cell[7834, 262, 99, 2, 30, "Input", InitializationCell->True], Cell[7936, 266, 72, 1, 44, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[8045, 272, 34, 1, 30, "Input"], Cell[8082, 275, 2030, 27, 882, "Output"] }, Open ]] }, Open ]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)