{VERSION 4 0 "APPLE_PPC_MAC" "4.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 1" -1 3 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 2" -1 4 1 {CSTYLE "" -1 -1 "Times " 1 14 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 2 1 0 1 0 2 2 0 1 } {PSTYLE "Heading 3" -1 5 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 1 1 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Warning" -1 7 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 2 2 2 2 2 1 1 1 3 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 12 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple P lot" -1 13 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "List Item" -1 14 1 {CSTYLE " " -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 3 3 1 0 1 0 2 2 14 5 }{PSTYLE "Bullet Item" -1 15 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 3 3 1 0 1 0 2 2 15 2 }{PSTYLE "Ti tle" -1 18 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 1 2 2 2 1 1 1 1 }3 1 0 0 12 12 1 0 1 0 2 2 19 1 }{PSTYLE "Author" -1 19 1 {CSTYLE " " -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 8 8 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 4" -1 20 1 {CSTYLE "" -1 -1 "Times" 1 10 0 0 0 1 1 1 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Norma l" -1 256 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {PARA 18 "" 0 "" {TEXT -1 69 "The Geometry of LDA and PCA Clas sifiers Illustrated with 3D Examples." }}{PARA 19 "" 0 "" {TEXT -1 17 "J. Ross Beveridge" }}{PARA 256 "" 0 "" {TEXT -1 23 "Technical Report \+ 01-101" }}{PARA 256 "" 0 "" {TEXT -1 27 "Computer Science Department" }}{PARA 256 "" 0 "" {TEXT -1 25 "Colorado State University" }}{PARA 256 "" 0 "" {TEXT -1 21 "ross@cs.colostate.edu" }}{PARA 256 "" 0 "" {TEXT -1 26 "Last Update, May 30, 2001" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 8 "Overview" }}{PARA 0 "" 0 "" {TEXT -1 376 "This report will help in developing a geometric interpre tation of Fisher Linear Discrimants. The report builds upon an underst anding of the connection between Principal Component Analysis and Gaus sian Distributions. It contains a running example showing how Fisher D iscriminants are computed and what they look like for an illustrative \+ 3 class problem in 3 dimensional space. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 126 "Maple 6.0 was used to write this \+ report, and consequently it is both a document and a program. It is av ailable in three forms:" }}{PARA 15 "" 0 "" {TEXT -1 197 "Maple 6.0 Wo rksheet: This is the best format, since the reader may interact with t he 3D plots. It is also simple to construct alternative examples by ma king minor modifications to the Maple source." }}{PARA 15 "" 0 "" {TEXT -1 321 "HTML: This is the way most people will view the document . The 3D plots are animated so perceived 3D structure is evident. Howe ver, the user cannot alter the view or explore the data as is possible in Maple directly. The link to this version is: http://www.cs.colosta te.edu/evalfacerec/papers/csuldareport/report01101.html" }}{PARA 15 " " 0 "" {TEXT -1 138 "PDF (from LaTeX): This is a more standard version with only text, math and static figures. It is best if one wishes to \+ print the document." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 542 "When viewing the Maple or HTML versions, the first \"S ection\" is not intended to read. It is, instead, a collection of help er routines written to service the remainder of the document. The rea der will also note that mathematics appears in three forms. In line ma th, input expressions, and the results of evaluating these expression. In line math appears is what one normally expects for type set mathem atics. Inputs to expressions are set aside in blocks and are shown in \+ red. Results of these expression appear below the expression in blue. \+ " }}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 17 "Helper Maple Code" }}{PARA 0 "" 0 "" {TEXT -1 197 "Here are the various procedures that simplify \+ the development of the examples below. This section is NOT intended to read unless one has an intimate interest in how the examples are buil t in Maple." }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 35 "Library Calls and \+ Global Parameters" }}{PARA 0 "" 0 "" {TEXT -1 78 "This worksheet uses \+ statistics, 3D plotting and the new Linear Algebra package" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "restart():\nDigits := 32:\nwith(Lin earAlgebra):\nwith(stats):\nwith(plots):" }}{PARA 7 "" 1 "" {TEXT -1 116 "Warning, these names have been redefined: anova, describe, fit, i mportdata, random, statevalf, statplots, transform\n" }}}{PARA 0 "" 0 "" {TEXT -1 105 "Here are some global parameters used to determine suc h things as the number of points to sample per class" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "pointsPerClass := 100:\nanimationSample s := 60:" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 22 "Set Random Number Se ed" }}{PARA 0 "" 0 "" {TEXT -1 69 "It is handy to have the same point \+ samples each time this file is run" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "randomize(1111356902):" }}}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 33 "General Purpose Helper Procedures" }}{PARA 0 "" 0 "" {TEXT -1 107 "Here are some procedures that are not directly related t o Gaussian Random Variables, but which are helpful." }}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 48 "Reduce the precision of a Matrix to Aid Printin g" }}{PARA 0 "" 0 "" {TEXT -1 163 "This procedure simply rounds floati ng point numbers in Matrices to k digits so Maple pretty print looks b etter. This should not be necessary, but it appears to be." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 366 "sigDigits := proc(f,k)\n local s, fn, tempDigits;\n if (abs(f) < 10**(-k)) then\n fn := 0.0;\n els e\n s := ilog10(abs(f)) + 1;\n # print(\"s is equal to \", s);\n tempDigits := Digits;\n Digits := max(s + k + 1,1);\n # prin t(\"Setting Digits to \", Digits);\n fn := (round (f*10**k))/(10.0* *k);\n Digits := tempDigits;\n end if;\n return fn;\nend proc:\n \+ " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "roundMatrix := proc(M, k)\n map(proc(x) sigDigits(x,k) end proc,M);\nend proc:" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 38 "Generate and Manipulate a Data Matrix " }}{PARA 0 "" 0 "" {TEXT -1 67 "This se ction includes procedures to generate sample data matrices. " }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 49 "A Data Matrix of Gaussian Random Variab le Samples" }}{PARA 0 "" 0 "" {TEXT -1 1245 "The following set of proc edures provide a general way of rotation, scaling and translating the \+ points represented as columns in a homogeneous coordinates data matrix . Thus, the matrix is of size 1..4 by 1..pointsPerClass. The affine \+ transformation construction procedures are general purpose. The suppor t the final procedure, genGaussData, that takes 9 arguments. This proc edure can construct point samples for any 3D Gaussian Random Variable \+ by starting with samples from one with mean zero and standard deviatio n one. The 9 arguments specify the transformation from the zero-one r eference frame to the final reference frame. They also relate directly to the paramters of the Gaussian pdf in the final reference frame. Th e first three are the standard deviation of a general form 3D Gaussian Random Variable when viewed in its principal coordinate representatio n. This is another way of saying these are the x, y and z standard dev iation before it is rotated to a new orientation. The next three argum ents are the translation away from the origin. These are just the x, y and z mean values for the pdf. The last three values specify the rot ation of the distribution in Euler angles. In other words, rotation ab out the x, y and then z axis. " }}{SECT 0 {PARA 5 "" 0 "" {TEXT -1 31 "Generate a 4x4 Rotation Matrix " }}{PARA 0 "" 0 "" {TEXT -1 68 "Given three Euler Angles, return a 4x4 homogenious rotation Matrix. " }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 466 "homRotation := proc(theta,p hi,xi)\n local Data, ROTx, ROTy, ROTz, R33, R44, i, j;\n ROTx := M atrix([[1,0,0],[0,cos(theta),-sin(theta)],[0,sin(theta),cos(theta)]]): \n ROTy := Matrix([[cos(phi),0,-sin(phi)],[0,1,0],[sin(phi),0,cos(ph i)]]):\n ROTz := Matrix([[cos(xi),-sin(xi),0],[sin(xi),cos(xi),0],[0 ,0,1]]):\n R33 := map(eval,Multiply(Multiply(ROTz,ROTy),ROTx)):\n \+ R44 := Matrix(4,4,0.0): R44[4,4] := 1.0:\n R44[1..3,1..3] := R33: \n return R44:\nend proc:\n" }}}}{SECT 1 {PARA 5 "" 0 "" {TEXT -1 27 "Generate a 4x4 Scale Matrix" }}{PARA 0 "" 0 "" {TEXT -1 76 "Given \+ an x, y and z axis scale factor, return a 4x4 homogenious scale Matrix " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 145 "homScale := proc(sx, sy , sz)\n local S:\n S := Matrix(4,4,0.0):\n S[1,1] := sx: S[2,2] := sy: S[3,3] := sz: S[4,4] := 1.0:\n return S:\nend proc:" }}}}{SECT 1 {PARA 5 "" 0 "" {TEXT -1 33 "Generate a 4x4 Translation Matrix" }} {PARA 0 "" 0 "" {TEXT -1 88 "Given translations along the x, y an z ax is, return a 4x4 homogenious translation Matrix" }}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 206 "homTranslation := proc(tx, ty, tz)\n local T :\n T := Matrix(4,4):\n T[1..4,1..4] := IdentityMatrix(4, 4):\n T[1,4] := tx: \n T[2,4] := ty: \n T[3,4] := tz: \n return T:\nend proc:" }}}}{SECT 1 {PARA 5 "" 0 "" {TEXT -1 50 "Generate a 4x4 Scale, Rotation, Translation Matrix" }}{PARA 0 "" 0 "" {TEXT -1 173 "Given scale parameters, rotation parameters, and tr anslation parameters, create a single 4x4 matrix that executes the sca ling, followed by rotation, followed by translation." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 204 "homSRT := proc(sx,sy,sz,tx,ty,tz,theta,p hi,xi)\n local S, R, T:\n S := homScale(sx,sy,sz):\n R := homRotati on(theta,phi,xi):\n T := homTranslation(tx,ty,tz):\n return Multiply (T,Multiply(R,S)):\nend proc:\n" }}}}{SECT 1 {PARA 5 "" 0 "" {TEXT -1 63 "Generate a 4x4 homogenous Matrix from 3x3 specifying upper left" } }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 124 "homPad := proc(M33)\n loc al M44;\n M44 := Matrix(4,4, IdentityMatrix(4,4));\n M44[1..3,1..3] \+ := M33;\n return M44;\nend proc:" }}}}{SECT 1 {PARA 5 "" 0 "" {TEXT -1 83 "Generate a Gaussiant Distributed data matrix with mean zero, st andard deviation one" }}{PARA 0 "" 0 "" {TEXT -1 189 "Using the global variable samplesPerClass, generate that many 3D points which are samp led from a simple 3D Gaussian where the mean is zero and standard devi ation is one along each dimension" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 315 "homGaussZeroOne := proc()\n local n, D3, D4: \n n := pointsPerClass:\n D3 := Matrix(3,n, [[stats[random,normald[0.0,1. 0]](n)],\n [stats[random,normald[0.0,1.0]](n)],\n \+ [stats[random,normald[0.0,1.0]](n)]]);\n D4 := Ma trix(4,n,1):\n D4[1..3,1..n] := D3:\n return D4;\nend proc:\n" }}}} {SECT 1 {PARA 5 "" 0 "" {TEXT -1 67 "Generate a scaled, rotated and th en translated Gaussian data matrix" }}{PARA 0 "" 0 "" {TEXT -1 282 "St arting with a data matrix of 3D Gaussian Random Variable sample with m ean zero and standard deviation one for all three axes, scale the samp les along each axis by sx, sy, sz, then rotate the samples by Euler an gles theta, phi, xi, and finally translate the samples by tx, ty, tz. \+ " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 224 "genGaussData := proc(sx ,sy,sz,tx,ty,tz,theta,phi,xi)\n local D3, D4:\n D4 := Multiply(homSR T(sx,sy,sz,tx,ty,tz,theta,phi,xi),homGaussZeroOne());\n # D3 := SubMa trix(D4,[1..3],[1..ColumnDimension(D4)]);\n return D4;\nend proc:" }} }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 57 "Three classes from means, stan dard deviations and angles." }}{PARA 0 "" 0 "" {TEXT -1 304 "This proc edure returns a three element list, where each element is the data mat rix for a different class. The parameters for the class are specified \+ in three matrices, MU, SD, and EA. These contain in each successive co lumn, the means, standard deviations, and Euler angles for each for th e three classes" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 302 "listClas ses := proc(MU, SD, EA)\n local n, i, L:\n n := ColumnDimension(MU); \n L := []:\n for i from 1 to n do\n L := [op(L),genGaussData(SD[ 1,i],SD[2,i],SD[3,i],\n MU[1,i],MU[2,i],MU [3,i],\n EA[1,i],EA[2,i],EA[3,i])]:\n od: \n return L:\nend proc:" }}}{SECT 1 {PARA 20 "" 0 "" {TEXT -1 57 "App end Class Data Matrices to form one Common Data Matrix" }}{PARA 0 "" 0 "" {TEXT -1 80 "This procedure will create a single common data matr ix out of k distinct classes" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 263 "columnAppendDataMatrices := proc(C)\n local A, i, k, r, c, n:\n \+ k := nops(C);\n n := ColumnDimension(C[1]):\n r := RowDimension(C[1 ]):\n A := Matrix(r,k*n,1.0):\n for i from 1 to k do\n c := (i-1) *n + 1;\n A[1..r,c..c+n-1] := C[i]:\n od:\n return A:\nend proc: " }}}}}{SECT 1 {PARA 5 "" 0 "" {TEXT -1 35 "Sample Mean and Covariance Matrices" }}{PARA 0 "" 0 "" {TEXT -1 154 "This section has two proced ures, one to estimate the mean from a data matrix. The other to estima te the covariance matrix by computing the scatter matrix." }}{SECT 1 {PARA 20 "" 0 "" {TEXT -1 42 "Compute the Mean Vector from a Data Matr ix" }}{PARA 0 "" 0 "" {TEXT -1 109 "This procedure sums the elements i n the x, y and z dimensions of the data matrix and divides the totals \+ by n." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 107 "dataMatrixMean := \+ proc(A)\n Vector(3,[seq(stats[describe,mean](convert(A,listlist)[i]), i=1..3)]);\nend proc:" }}}}{SECT 1 {PARA 20 "" 0 "" {TEXT -1 47 "Compu te the x, y and z ranges for a Data Matrix" }}{PARA 0 "" 0 "" {TEXT -1 238 "Use the statistics package range facility to get the range of \+ values along each axis. Return as a sequence of three range speciffica tions. Thus, calling order would list three range variables on the le ft side of the assignment statement." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 105 "dataMatrixRange := proc(A,dims)\n seq(stats[describ e,range](convert(A,listlist)[i]),i=1..dims);\nend proc:" }}}}{SECT 1 {PARA 20 "" 0 "" {TEXT -1 36 "Sample Covariance from a Data Matrix" }} {PARA 0 "" 0 "" {TEXT -1 65 "This procedure returns the 3x3 scatter ma trix from a data matrix." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 263 "scatterMatrix := proc(A)\n local n, MU, NT, M, CV, D3:\n n := Colu mnDimension(A):\n MU := dataMatrixMean(A):\n NT := homTranslation(-M U[1],-MU[2],-MU[3]):\n D3 := SubMatrix(Multiply(NT,A),[1..3],[1..n]): \n CV := Multiply(D3,Transpose(D3));\n return CV;\nend proc:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 97 "sampleCovariance := proc(A) \n return scatterMatrix(A) . (1/(ColumnDimension(A) -1));\nend proc: \n " }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 {PARA 20 "" 0 "" {TEXT -1 41 "Scatter Matrix within and Between Classes" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 388 "scatterWBClass := proc(P)\n local SW, SB, mu, mus, n;\n SW := scatterMatrix(P[1]) + scatterMatrix(P[2 ]) + scatterMatrix(P[3]):\n mus := [seq(dataMatrixMean(P[i]),i=1..3)] :\n n := [seq(ColumnDimension(P[i]),i=1..3)];\n mu := (1/eval(add (n[i],i=1..3))) . eval(add(n[i].mus[i],i=1..3)):\n SB := eval(add(n[ i].OuterProductMatrix(mus[i]-mu,mus[i]-mu),i=1..3)): \n return SW, SB ;\nend proc:" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}}}{SECT 1 {PARA 4 " " 0 "" {TEXT -1 31 "Diagonilize a Covariance Matrix" }}{PARA 0 "" 0 " " {TEXT -1 188 "This is a simple routine that conforms that yields a r otation and scale such that it represents the change in coordinates ba ck to the PCA space for a given covariance (or scattter) matrix." }} {SECT 1 {PARA 4 "" 0 "" {TEXT -1 55 "Return R and S Matrices given Sam ple Covariance/Scatter" }}{PARA 0 "" 0 "" {TEXT -1 89 "Given the sampl e covariance or scatter matrix, give the diagonal decomposition such t hat " }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "Omega = R*S*S*R^t;" "6#/%&Omega G**%\"RG\"\"\"%\"SGF'F(F')F&%\"tGF'" }{TEXT -1 204 " This routine wil l use Singular Value Decomposition and returns an expression sequence, thus two variables appear on the left hand side of the equals, one to hold the R matrix and the other the S matrix." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 297 "Diagonalize RS := proc(omega)\n local i, SV, RM, SM;\n RM, SV := SingularValues( omega,output=['U','S'],outputoptions['U']=[datatype=float]):\n SM := \+ Matrix(RowDimension(omega),ColumnDimension(omega),0);\n for i from 1 \+ to RowDimension(omega) do SM[i,i] := sqrt(SV[i]); od;\n return(RM,SM) :\nend proc:" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 47 "Routines for Plotting Classes and Discriminants" }} {PARA 0 "" 0 "" {TEXT -1 500 "Here are routines that will plot three d ata matrices of points along with 2 basis vectors. There are two routi nes, one that plots only the points and the other that plots the point s and the discriminants. In both cases, the points are color coded by \+ class and shown in a scatter plot. When shown, the discriminants are a re drawn as line segments. The length of the basis vectors will be plu s and minus one standard deviation. They are drawn with their origin a t the centroid of the joint data matrix." }}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 19 "View Specification " }}{PARA 0 "" 0 "" {TEXT -1 193 "Retu rn a sequence of three ranges suitable for use as the view argument to the plotting routine such that x, y and z are centered on the mean wi th range sufficient to express largest variation." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 326 "jointDataView := proc(CC,dims)\n local m, \+ r, i, width, middle;\n r := [dataMatrixRange(CC,dims)];\n m := map (proc(x) op(2,x) - op(1,x) end proc,r);\n width := max(seq(m[i],i=1 ..dims));\n middle := map(proc(x) (op(1,x) + op(2,x))/2.0 end proc,r );\n seq((middle[i]-(width/2))..(middle[i]+(width/2)),i=1..dims);\ne nd proc:\n" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 22 "Basis vector endp oints" }}{PARA 0 "" 0 "" {TEXT -1 597 "Return two endpoints for each o f the two Fisher Basis Vectors. As arguments, take in the rotation mat rix, the scale matrix, and the joint data matrix. The joint data matri x is used to determine the joint mean. The resulting endpoints are enc ode in a 4x4 matrix, with the first two columns representing the start and end point of the first discriminant, the third and fourth the sec ond. There are four rows because the endpoints are expressed in homoge nious coordinates. This is in anticipation of our later desire to affi ne transform the space in which both discriminants and points are expr essed." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 564 "basisVectorEndPoi nts := proc(R,S,P)\n local delta1, delta2, mu, r33, result;\n result := Matrix(4,4,1);\n mu := dataMatrixMean(columnAppendDataMatrice s(P));\n # delta1 := Transpose(ScalarMultiply(R[1,1..3],S[1,1]));\n \+ # Changed scale to that of first vector for better viewing.\n # delta 2 := Transpose(ScalarMultiply(R[2,1..3],S[1,1]));\n delta1 := ScalarM ultiply(R[1..3,1],S[1,1]);\n delta2 := ScalarMultiply(R[1..3,2],S[1,1 ]);\n r33 := Matrix([(mu - delta1, mu + delta1, mu - delta2, mu + \+ delta2)]);\n result[1..3,1..4] := r33;\n return result;\nend proc:\n " }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 33 "Plot the points and basis v ectors" }}{PARA 0 "" 0 "" {TEXT -1 118 "Generate a scatter plot of the different classes expressed by the points in the data matrices contai ned in the list P." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 169 "point sToSeq := proc(P,row)\n local i, c, s;\n c := ColumnDimension(P);\n \+ s := NULL;\n for i from 1 to c do\n s := s,[seq(P[j,i],j=1..row)] ;\n od:\n return s;\nend proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 536 "pointPlotSpec := proc(P,row)\n local i, lst,col,col ors, cn;\n colors := matrix(3,3,0.0);\n colors[1,1] := 1.0; colors[2 ,2] := 1.0; colors[3,3] := 1.0;\n lst := [];\n for i from 1 to nops( P) do\n col := COLOR(RGB,colors[1,i],colors[2,i],colors[3,i]);\n \+ cn := ColumnDimension(P[i]);\n if (row = 2) then\n lst := [ op(lst),PLOT(POINTS(pointsToSeq(P[i],row)),SYMBOL(CIRCLE,10),col)];\n \+ else\n lst := [op(lst),PLOT3D(POINTS(pointsToSeq(P[i],row)),S YMBOL(CIRCLE,10),col)];\n fi;\n od;\n seq(lst[i],i=1..nops(P));\n end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 405 "basisPlotSpec := proc(BV)\n local i, j, pts, lst, col, colors;\n lst := [];\n co lors := matrix(3,2,1.0);\n colors[1,1] := 0.0; colors[2,2] := 0.0;\n \+ j := 1;\n for i from 1 to 3 by 2 do\n pts := convert(Transpose(BV [1..3,i..(i+1)]),listlist);\n col := COLOR(RGB,colors[1,j],colors[2 ,j],colors[3,j]);\n j := j + 1;\n lst := [op(lst),PLOT3D(CURVE S(pts),col)];\n od;\n seq(lst[i],i=1..2);\nend proc:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 343 "plotPoints := proc(P,theta,phi,axe sType)\n local PP, v;\n PP := columnAppendDataMatrices(P);\n v := \+ [jointDataView(PP,3)];\n display(\{pointPlotSpec(P,3)\},insequence=fa lse,axes=axesType,labels=[X,Y,Z],\n axesfont=[TIMES,ROMAN,14 ],labelfont=[TIMES,ROMAN,16], \n orientation=[theta,phi],sc aling=CONSTRAINED,view=v);\nend proc:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 297 "plotPoints2D := proc(P)\n local PP, v;\n PP := col umnAppendDataMatrices(P);\n v := [jointDataView(PP,2)];\n display( \{pointPlotSpec(P,2)\},insequence=false,axes=FRAMED,labels=[X,Y],\n \+ axesfont=[TIMES,ROMAN,14],labelfont=[TIMES,ROMAN,16], \n \+ scaling=CONSTRAINED,view=v);\nend proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 169 "pointsToSeq := proc(P,row)\n local i, c, s;\n \+ c := ColumnDimension(P);\n s := NULL;\n for i from 1 to c do\n s := s,[seq(P[j,i],j=1..row)];\n od:\n return s;\nend proc:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 433 "plotPointsBasis := proc(P,B V,theta,phi,axesType)\n local PP, v, C1, C2, C3, B1, B2;\n PP := col umnAppendDataMatrices(P);\n v := [jointDataView(PP,3)];\n C1,C2,C3 \+ := pointPlotSpec(P,3);\n B1,B2 := basisPlotSpec(BV);\n display(\{ C1,C2,C3,B1,B2\},insequence=false,axes=axesType,labels=[X,Y,Z],\n \+ axesfont=[TIMES,ROMAN,14],labelfont=[TIMES,ROMAN,16], \n \+ orientation=[phi,theta],scaling=CONSTRAINED,view=v);\nend proc:" } }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 56 "Compute R and S using the Generalized Eigenvector Method" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 412 "generalizedEigenvectorsRS : = proc(SB,SW)\n local i, R, S, result:\n result := Eigenvectors(SB,S W,output=list);\n result := sort(result,proc(x,y) if (Re(x[1]) > Re(y [1])) then true else false fi end proc);\n R := Matrix(3,3, 0.0) ;\n S := Matrix(3,3, 0.0);\n for i from 1 to 3 do\n R[1..3, i] := result[i,3];\n S[i,i] := sqrt(result[i,1]);\n od;\n ret urn(map(Re,R),map(Re,S));\nend proc:\n \n" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 37 "Compute The Fisher Criterion Function" }}{PARA 0 "" 0 "" {TEXT -1 253 "The criterion for the Fisher Basis Vectors maxim izes a ration of two determinants. Here the arguement FB is a 3 row by 2 column matrix with one Fisher Basis Vector per column. SW is the w ithin scatter matrix, and SB is the between class scatter matrix." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 235 "fischerCriterion := proc(FB,SW,SB)\n local num, den, ret;\n num := Multiply(Transpose(FB),Multiply(SB,FB));\n den := Multiply(Transp ose(FB),Multiply(SW,FB));\n ret := Determinant(num) / Determinant(den );\n convert(ret,float);\nend proc:" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 36 "Project onto 2D Fisher Basis Vectors" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 130 "projectLD := proc(P,LD)\n local Pp, LDP, PP ;\n LDP := homPad(LD)[1..4,1..2];\n PP := [seq(Transpose(LDP).P[i], i=1..3)];\nend proc:" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 12 "Introduction" }}{PARA 0 "" 0 "" {TEXT -1 2775 "Principal Component Analysis (PCA) and Linear Discriminant Analy sis (LDA) play a critical role in many pattern classification tasks. I t is helpful to develop a geometric intuition for how each transforms \+ the coordinate reference frame in which data is classified. There are \+ limits to how far this can go, since these techniques are typically ap plied to problems in higher dimensional spaces. However, conceding thi s weakness, with some small effort many people can usefully extend a n atural 3D intuition to higher dimensions. \n\nThere are several motiva tions for this paper, but one in particular concerns whether LDA basis vectors are orthogonal. It has been reported in the literature that t he LDA basis vectors are orthogonal: unfortunately this is false. It i s easy show that LDA basis vectors are not orthogonal. As this paper w ill show, one may conceive of an intermediate space in which LDA basis vectors are indeed orthogonal. Moreover, understanding how this inter mediate space is subsequently transformed provides insight into how LD A vectors are configured. The general mathematics of these transformat ions are reviewed here and each step is illustrated with a 3D running \+ example. \n\nWe will start with some very basic properties of Gaussian point clouds in 3D and draw heavily upon the connection between these point clouds and PCA. For our purposes, a Gaussian point cloud is for med by sampling a finite number of observations from a multivariate Ga ussian random variable in 3D. Our choice of a Gaussian point cloud est ablishes a well known and tight connection between PCA and Gaussian di stributions. However, PCA classifiers are often successfully applied t o non-Gaussian data: the choice should not be seen as limiting. The ad vantage of fixing our attention on Gaussian points clouds is that it a llows us to develop an intuition for the geometry underlying both PCA \+ and LDA spaces. \n\nIn particular, there is a tight coupling between s catter matrices and covariance matrices. In moving from PCA to LDA, em phasis shifts from the properties of a single scatter matrix to the pr operties of two related scatter matrices: the between class and within class scatter matrices. Understanding in geometric terms what is happ ening when one solves for the linear discriminants becomes more diffic ult. It is well know that the problem of finding the linear discrimina nts is equivalent to solving a generalized Eigenproblem. However, quo ting [Strang], ''Geometrically, this has a meaning which we do not und erstand very well.'' In this statement, Strang is addressing all gene ralized Eigenproblems. Fortunately, both PCA and LDA induce positive d efinite and symmetric scatter matrices. These restrictions in turn len d themselves to a much clearer geometric interpretation. " }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 50 "Gaussian Random Variables and Principal C omponents" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 22 "Axis Aligned Gaussia ns" }}{PARA 0 "" 0 "" {TEXT -1 105 "Consider the equation that defines the probability density function for a Gaussian random variable in 3D ." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "p( x);" "6#-%\"pG6#%\"xG" }{TEXT -1 6 " = " }{XPPEDIT 18 0 "1/((2*Pi)^ (3/2)*Omega^(1/2));" "6#*&\"\"\"F$*&)*&\"\"#F$%#PiGF$*&\"\"$F$F(!\"\"F $)%&OmegaG*&F$F$F(F,F$F," }{TEXT -1 1 " " }{XPPEDIT 18 0 "exp;" "6#%$e xpG" }{TEXT -1 1 " " }{XPPEDIT 18 0 "(-1/2)*(x-mu)^t*Omega^(-1)*(x-mu) ;" "6#**,$*&\"\"\"F&\"\"#!\"\"F(F&),&%\"xGF&%#muGF(%\"tGF&)%&OmegaG,$F &F(F&,&F+F&F,F(F&" }{TEXT -1 2 " " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 5 "where" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 200 "eq1 := x = :\neq2 := mu = :\neq3 := Omega = Matrix(3,3, [[sigma[xx], sigma[xy], sigma[xz]],[sigm a[yx], sigma[yy], sigma[yz]],[sigma[zx], sigma[zy], sigma[zz]]]):\neq1 , eq2, eq3;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%/%\"xG-%'RTABLEG6$\"*C$ f/l-%'MATRIXG6#7%7#F$7#%\"yG7#%\"zG/%#muG-F&6$\"*WxW]'-F*6#7%7#&F36#F$ 7#&F36#F/7#&F36#F1/%&OmegaG-F&6$\"*?gV_'-F*6#7%7%&%&sigmaG6#%#xxG&FM6# %#xyG&FM6#%#xzG7%&FM6#%#yxG&FM6#%#yyG&FM6#%#yzG7%&FM6#%#zxG&FM6#%#zyG& FM6#%#zzG" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 100 "In the special case that the cross terms in the covariance mat rix are zero, then the pdf reduces to:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 195 "Vx := :\nMs := Matrix(3,3, [[sigma[xx], 0, 0] ,[0, sigma[yy], 0],[0, 0, sigma[zz]]]):\np(x) = (1/((2*Pi)^(3/2) * Det erminant(Ms)^(1/2))) * e^((-1/2)*(Transpose(Vx) . MatrixInverse(Ms) . \+ Vx));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/-%\"pG6#%\"xG,$*&*&-%%sqrtG6 #\"\"#\"\"\")%\"eG,(*&*$)F'F.F/F/&%&sigmaG6#%#xxG!\"\"#F:F.*&#F/F.F/*& *$)%\"yGF.F/F/&F76#%#yyGF:F/F:*&#F/F.F/*&*$)%\"zGF.F/F/&F76#%#zzGF:F/F :F/F/*&)%#PiG#\"\"$F.F/-F,6#*(F6F/FBF/FKF/F/F:#F/\"\"%" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 17 "Collecting terms:" }}{PARA 256 "" 0 "" {XPPEDIT 18 0 "p(x );" "6#-%\"pG6#%\"xG" }{TEXT -1 4 " = " }{XPPEDIT 18 0 "1/((2*Pi)^(1/ 2)*sqrt(sigma[xx]));" "6#*&\"\"\"F$*&)*&\"\"#F$%#PiGF$*&F$F$F(!\"\"F$- %%sqrtG6#&%&sigmaG6#%#xxGF$F+" }{TEXT -1 1 " " }{XPPEDIT 18 0 "e^(-1*x ^2/(2*sigma[xx]));" "6#)%\"eG,$*(\"\"\"F'*$%\"xG\"\"#F'*&F*F'&%&sigmaG 6#%#xxGF'!\"\"F0" }{TEXT -1 5 " " }{XPPEDIT 18 0 "1/((2*Pi)^(1/2)* sqrt(sigma[yy]));" "6#*&\"\"\"F$*&)*&\"\"#F$%#PiGF$*&F$F$F(!\"\"F$-%%s qrtG6#&%&sigmaG6#%#yyGF$F+" }{TEXT -1 1 " " }{XPPEDIT 18 0 "e^(-1*y^2/ (2*sigma[yy]));" "6#)%\"eG,$*(\"\"\"F'*$%\"yG\"\"#F'*&F*F'&%&sigmaG6#% #yyGF'!\"\"F0" }{TEXT -1 2 " " }{XPPEDIT 18 0 "1/((2*Pi)^(1/2)*sqrt(s igma[zz]));" "6#*&\"\"\"F$*&)*&\"\"#F$%#PiGF$*&F$F$F(!\"\"F$-%%sqrtG6# &%&sigmaG6#%#zzGF$F+" }{TEXT -1 1 " " }{XPPEDIT 18 0 "e^(-1*z^2/(2*sig ma[zz]));" "6#)%\"eG,$*(\"\"\"F'*$%\"zG\"\"#F'*&F*F'&%&sigmaG6#%#zzGF' !\"\"F0" }{TEXT -1 2 " " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 406 "When the cross terms in the covariance matrix are zero, then the pdf is simply the product of the independent probabili ties along each of the three axes. This also means, from a practical \+ standpoint, that samples from an axis-aligned 3D Gaussian random varia ble may be generated by independently calling a 1D Gaussian random num ber generator three times, once for each of the three independent comp onents." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 35 "Example of an Axis Aligned Gaussian" }}{PARA 0 "" 0 "" {TEXT -1 91 "Consider the Gaussian random variable defined by the foll owing mean and standard deviation:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 125 "MU := Matrix(3,1, [[5],[25],[50]]):\nSD := Matrix(3, 1, [[1],[3],[10]]):\nEA := Matrix(3,1, [[0],[0],[0]]):\nmu = MU, sigma = SD;" }{TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$/%#muG-%'RTAB LEG6$\"*[*RCl-%'MATRIXG6#7%7#\"\"&7#\"#D7#\"#]/%&sigmaG-F&6$\"*/yV_'-F *6#7%7#\"\"\"7#\"\"$7#\"#5" }}}{PARA 0 "" 0 "" {TEXT -1 97 "Note the s igmas along the diagonal of the covariance matrix have been placed in \+ a column vector. " }}{PARA 0 "" 0 "" {TEXT -1 60 "Here is a plot of 10 0 points sampled from this distribution:" }}{SECT 0 {PARA 5 "" 0 "" {TEXT -1 17 "3D Plot of Points" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 86 "P := listClasses(MU,SD,EA):\ntheta := -45: phi := 45:\nplotPoint s(P,theta,phi,FRAMED);\n\n" }}{PARA 13 "" 1 "" {GLPLOT3D 400 300 300 {PLOTDATA 3 "6)-%'POINTSG6bq7%$\"3Z4PC\"H+bb'!#<$\"39yH*Hi:!QG!#;$\"3/ *oO=-6L$RF,7%$\"3%Hzuqvp\"[ZF)$\"3Nm+!zwm!4AF,$\"3W$\\EmLB\\u%F,7%$\"3 3aGYTU%f#HF,$\"3!yEjnu#*pG$F,7%$\"3?&eB+HW6F$F)$\"3m[ %p@V+SG#F,$\"38>wX,i^3fF,7%$\"3i.ZBe,A[WF)$\"3n41A8.WvBF,$\"3GCm8T<=-` F,7%$\"39;a2(yIxq%F)$\"31C\\zE\\%pk#F,$\"3j#Qp*Gt1(y'F,7%$\"3kR@S$[.[i &F)$\"3))3L+1p7KAF,$\"3GO(=>!e$)*G&F,7%$\"3\"4;F#3pm*=&F)$\"300m_\"3*o DEF,$\"38wp(f/D[5%F,7%$\"3XEPj%za,'[F)$\"3X+m,_TKYEF,$\"37Y-Q$R`+2'F,7 %$\"3k!))\\pUhRt%F)$\"3&ys)fPmt*o\"F,$\"3TN9@C]@2cF,7%$\"3?0G5UD;%Q%F) $\"3MVZFH?NLFF,$\"3Z\"y66yMVF'F,7%$\"3]zj1G+w9_F)$\"3)f'>D=:#=*>F,$\"3 '*>%G!eGbdOF,7%$\"38`@$z>7]]%F)$\"3ew['pFP^g$F,7%$\"3 I*4o(y68G_F)$\"3=a#F,$\"3nbl+%R 6H&eF,7%$\"3i@y2m3^\"H%F)$\"3SlivJ[qGBF,$\"3_v*=%*[=f5'F,7%$\"3:e$o;-t W[&F)$\"3wCD%*3I[ot7$F,$\"3Hr]pyDG0cF,7%$\"3!Q]wTk#R'o%F)$\"35PC+PiK>EF,$\"3aQnI$ QjZp'F,7%$\"3)e\\S[gW#oXF)$\"3(f748f^5W#F,$\"3!>u#3%>;QL%F,7%$\"33U%3! )zz\"*z'F)$\"3I-/4!*>+N@F,$\"32\\)GDazVo$F,7%$\"3s=MCZ%4Ch%F)$\"37AcT& =DnA#F,$\"3'yd\\r?%HWKF,7%$\"3]wtB5H$>'eF)$\"38`\"*Qfmi=EF,$\"3TM$*QR,2%F)$\"3m'zEJ\"4=&y#F,$\"3] :KdhG,4]F,7%$\"3O!QOW%=i)\\&F)$\"3gA6/(\\M!QEF,$\"3x5h.I&R)zRF,7%$\"3q (fp(>f!Qc&F)$\"3bA@/n\"yUY#F,$\"34CTg#*>[paF,7%$\"31iUU3dHSKF)$\"3+AmW i5(4)>F,$\"35/kZ`N&zN&F,7%$\"3dXF,$\"3r\"HkjgPY&GF,7%$\"3w]i9UO *49&F)$\"3rgi[p#*G>CF,$\"3NyY*pPY6j&F,7%$\"3&RF)$\"3]Q^!*R55\"H#F,$\"3T<\\&)e+!*f`F,7%$\"3C$>e(eruCaF)$ \"3UV!4qhjZ2$F,$\"3&HT?fS^\\m$F,7%$\"3pa\"=l88)HtF)$\"3!QL.BH[gL#F,$\" 3.3&HAfr(4kF,7%$\"3tKWKGI()f^F)$\"3*oO)eAU#*yGF,$\"3-%f_MNoe!\\F,7%$\" 3/bTYR)*4,bF)$\"3.;#HJ(*zo[#F,$\"3,vcciM&*\\`F,7%$\"3!e@i0_&y6cF)$\"3B P])eU/a)HF,$\"3\\YwzSf6:^F,7%$\"3\"Hy$41D\"\\D&F)$\"3#4y6PD%H:GF,$\"3B Ne\\mLlw[F,7%$\"3qKW,k:?vWF)$\"3k.pQ#e:6e#F,$\"3MhDF,YS;eF,7%$\"3SDj*y ,\"REQF)$\"3?(QFti))*GFF,$\"3OhT'Gb[([XF,7%$\"31oDkmwHW]F)$\"3q$faeW1v >#F,$\"3')f'QB>qT\"HF,7%$\"3QAJI%\\&*\\O%F)$\"3:d!*)p]@Hd#F,$\"3Gy)3'f gG8_F,7%$\"3US()RFv4)>'F)$\"3L8a#e*zQnGF,$\"3cECX3ub-jF,7%$\"3>!=&\\a3 yusF)$\"3,4%QMpjs=#F,$\"3m6d\"GG9.:%F,7%$\"3>CETyBN'o'F)$\"3MISN)))ed* =F,$\"3*)QG(4Pt5)GF,7%$\"3#G:U1/vX$eF)$\"3_a>W9y6()>F,$\"3@[F3ja>wXF,7 %$\"3nh0KK:!RQ'F)$\"39\"\\U\"*yV,^#F,$\"3FeKaD&38G%F,7%$\"33qO*3s0KN%F )$\"3W,P_Y6tNCF,$\"3]**\\OamL/ZF,7%$\"3MK0i()o!Rr%F)$\"3[WX.<\"[b]#F,$ \"3=+F`*yKS\\%F,7%$\"3)\\X/^CT)QaF)$\"3w8OyoZ@*>$F,$\"3)pITb7[M?%F,7%$ \"3oj\"z'eW\"31&F)$\"3]:VH5,T\\@F,$\"39Absy&y,f$F,7%$\"3Nmq$\\jgNg&F)$ \"3!*yEBwgcnCF,$\"3:&****p$o9fJF,7%$\"3+I'eX8jyz$F)$\"3WEDEq9k2DF,$\"3 !==R)RwO2\\F,7%$\"3/=8bYskDeF)$\"3ZSxI`&o\"eFF,$\"3[^))eQc$fO%F,7%$\"3 \"yo%4G5A3OF)$\"3Ip'oB\"zU=FF,$\"3km6C9d=*3&F,7%$\"3a\"y:h0gD#QF)$\"3@ dDTXh@\\EF,$\"3r?V'pP36D&F,7%$\"3Iv9^_uticF)$\"3`*[VCP*=uEF,$\"3+#[Z7F \"*)))eF,7%$\"3qTZY(*eswRF)$\"3#\\'frR\"zpY#F,$\"3_7)*o_!=Nm$F,7%$\"39 L2*\\!eASqF)$\"3yYc*z]W,_#F,$\"3.oittX&z6&F,7%$\"3%yFH3sBZB'F)$\"3I%) \\/\"HN;]#F,$\"3C4L!G$eYiYF,7%$\"3D;yNVW/8ZF)$\"3^(fUIUaS<#F,$\"3%Q.&> .6DbdF,7%$\"3A81x$44x)\\F)$\"3(4GoFZ%\\NAF,$\"3\"H0?N5*HsdF,7%$\"3p[=t S7eMeF)$\"3()p#*)[zls6#F,$\"3T_H!=UR]v'F,7%$\"3'=OBA$)Qk!pF)$\"3aCq*)[ %>br\"F,$\"3_4x&3WXa@&F,7%$\"3=$3::1TNT&F)$\"3%H7rUI?AX#F,$\"3QgL?%)=e leF,7%$\"3b3qVa=0/[F)$\"3O;#Q=*QYtDF,$\"3W#3ex`C&)f&F,7%$\"36P+A#[fnT& F)$\"3^Vl2r'zaT#F,$\"3o/`MjPT!>&F,7%$\"3G$[aH)H\\hjF)$\"3'>$*f3+3,P#F, $\"3;k)*ofV?BUF,7%$\"314+\"3s;*zdF)$\"3))3*3Px'zF@F,$\"3.X'3R)R*eE&F,7 %$\"3wgAH%3u(y\\F)$\"3Ac#Rcg)o8EF,$\"3a([*[0.qUTF,7%$\"31SDuO(ov?%F)$ \"3k;#=qSnrG#F,$\"3qO^8'fcLA&F,7%$\"3tMOp!3$>&e$F)$\"3\\O[J*e-'oDF,$\" 3kq*z&eN%*HYF,7%$\"3&HH#G$y^4]&F)$\"3qz/ga>idCF,$\"3yTTH#H([&G&F,7%$\" 3]X&*pt)y&G\\F)$\"3Qe#ep%*e-Yaw.[F,7%$\"3+#o]*=:Su^F)$\"3]$z+,)zxmAF,$\"3U[R2 HQ/q]F,7%$\"3$piUtc&e>mF)$\"3lm)R')e;cv#F,$\"3_-.1GcoY`F,7%$\"3,MV9HW) )obF)$\"3%*=J;Z1%zY#F,$\"3SwS7$4$G$y&F,7%$\"3Ssm*)z\\Zf\\F)$\"3t;'4Y\\ C " 0 "" {MPLTEXT 1 0 139 "samples :=animationSamples:\ndisplay3d(seq(plotPoint s(P,theta+i*(360/samples),phi+i*(720/samples),BOXED),i=0..(samples-1)) ,insequence=true);" }}{PARA 13 "" 1 "" {GLPLOT3D 400 300 300 {PLOTDATA 3 "6#-%(ANIMATEG6hn7)-%'POINTSG6bq7%$\"3Z4PC\"H+bb'!#<$\"39y H*Hi:!QG!#;$\"3/*oO=-6L$RF07%$\"3%Hzuqvp\"[ZF-$\"3Nm+!zwm!4AF0$\"3W$\\ EmLB\\u%F07%$\"33aGYTU%f#HF0$\"3!yEjnu#*pG$F07%$\"3?& eB+HW6F$F-$\"3m[%p@V+SG#F0$\"38>wX,i^3fF07%$\"3i.ZBe,A[WF-$\"3n41A8.Wv BF0$\"3GCm8T<=-`F07%$\"39;a2(yIxq%F-$\"31C\\zE\\%pk#F0$\"3j#Qp*Gt1(y'F 07%$\"3kR@S$[.[i&F-$\"3))3L+1p7KAF0$\"3GO(=>!e$)*G&F07%$\"3\"4;F#3pm*= &F-$\"300m_\"3*oDEF0$\"38wp(f/D[5%F07%$\"3XEPj%za,'[F-$\"3X+m,_TKYEF0$ \"37Y-Q$R`+2'F07%$\"3k!))\\pUhRt%F-$\"3&ys)fPmt*o\"F0$\"3TN9@C]@2cF07% $\"3?0G5UD;%Q%F-$\"3MVZFH?NLFF0$\"3Z\"y66yMVF'F07%$\"3]zj1G+w9_F-$\"3) f'>D=:#=*>F0$\"3'*>%G!eGbdOF07%$\"38`@$z>7]]%F-$\"3ew['pFP^g$F07%$\"3I*4o(y68G_F-$\"3=a#F0$\"3nbl+%R6H&eF07%$\"3i@y2m3^\"H%F-$\"3SlivJ[qGBF0$\"3_v*=%*[=f5 'F07%$\"3:e$o;-tW[&F-$\"3wCD%*3I[ot7$F0$\"3Hr]pyDG0cF07%$\"3!Q]wTk#R'o%F-$\"35PC+ PiK>EF0$\"3aQnI$QjZp'F07%$\"3)e\\S[gW#oXF-$\"3(f748f^5W#F0$\"3!>u#3%>; QL%F07%$\"33U%3!)zz\"*z'F-$\"3I-/4!*>+N@F0$\"32\\)GDazVo$F07%$\"3s=MCZ %4Ch%F-$\"37AcT&=DnA#F0$\"3'yd\\r?%HWKF07%$\"3]wtB5H$>'eF-$\"38`\"*Qfm i=EF0$\"3TM$*QR,2%F-$\"3m' zEJ\"4=&y#F0$\"3]:KdhG,4]F07%$\"3O!QOW%=i)\\&F-$\"3gA6/(\\M!QEF0$\"3x5 h.I&R)zRF07%$\"3q(fp(>f!Qc&F-$\"3bA@/n\"yUY#F0$\"34CTg#*>[paF07%$\"31i UU3dHSKF-$\"3+AmWi5(4)>F0$\"35/kZ`N&zN&F07%$\"3dXF0$\"3r\"HkjgP Y&GF07%$\"3w]i9UO*49&F-$\"3rgi[p#*G>CF0$\"3NyY*pPY6j&F07%$\"3&RF-$\"3]Q^!*R55\"H#F0$\"3T<\\&)e+!*f`F07%$ \"3C$>e(eruCaF-$\"3UV!4qhjZ2$F0$\"3&HT?fS^\\m$F07%$\"3pa\"=l88)HtF-$\" 3!QL.BH[gL#F0$\"3.3&HAfr(4kF07%$\"3tKWKGI()f^F-$\"3*oO)eAU#*yGF0$\"3-% f_MNoe!\\F07%$\"3/bTYR)*4,bF-$\"3.;#HJ(*zo[#F0$\"3,vcciM&*\\`F07%$\"3! e@i0_&y6cF-$\"3BP])eU/a)HF0$\"3\\YwzSf6:^F07%$\"3\"Hy$41D\"\\D&F-$\"3# 4y6PD%H:GF0$\"3BNe\\mLlw[F07%$\"3qKW,k:?vWF-$\"3k.pQ#e:6e#F0$\"3MhDF,Y S;eF07%$\"3SDj*y,\"REQF-$\"3?(QFti))*GFF0$\"3OhT'Gb[([XF07%$\"31oDkmwH W]F-$\"3q$faeW1v>#F0$\"3')f'QB>qT\"HF07%$\"3QAJI%\\&*\\O%F-$\"3:d!*)p] @Hd#F0$\"3Gy)3'fgG8_F07%$\"3US()RFv4)>'F-$\"3L8a#e*zQnGF0$\"3cECX3ub-j F07%$\"3>!=&\\a3yusF-$\"3,4%QMpjs=#F0$\"3m6d\"GG9.:%F07%$\"3>CETyBN'o' F-$\"3MISN)))ed*=F0$\"3*)QG(4Pt5)GF07%$\"3#G:U1/vX$eF-$\"3_a>W9y6()>F0 $\"3@[F3ja>wXF07%$\"3nh0KK:!RQ'F-$\"39\"\\U\"*yV,^#F0$\"3FeKaD&38G%F07 %$\"33qO*3s0KN%F-$\"3W,P_Y6tNCF0$\"3]**\\OamL/ZF07%$\"3MK0i()o!Rr%F-$ \"3[WX.<\"[b]#F0$\"3=+F`*yKS\\%F07%$\"3)\\X/^CT)QaF-$\"3w8OyoZ@*>$F0$ \"3)pITb7[M?%F07%$\"3oj\"z'eW\"31&F-$\"3]:VH5,T\\@F0$\"39Absy&y,f$F07% $\"3Nmq$\\jgNg&F-$\"3!*yEBwgcnCF0$\"3:&****p$o9fJF07%$\"3+I'eX8jyz$F-$ \"3WEDEq9k2DF0$\"3!==R)RwO2\\F07%$\"3/=8bYskDeF-$\"3ZSxI`&o\"eFF0$\"3[ ^))eQc$fO%F07%$\"3\"yo%4G5A3OF-$\"3Ip'oB\"zU=FF0$\"3km6C9d=*3&F07%$\"3 a\"y:h0gD#QF-$\"3@dDTXh@\\EF0$\"3r?V'pP36D&F07%$\"3Iv9^_uticF-$\"3`*[V CP*=uEF0$\"3+#[Z7F\"*)))eF07%$\"3qTZY(*eswRF-$\"3#\\'frR\"zpY#F0$\"3_7 )*o_!=Nm$F07%$\"39L2*\\!eASqF-$\"3yYc*z]W,_#F0$\"3.oittX&z6&F07%$\"3%y FH3sBZB'F-$\"3I%)\\/\"HN;]#F0$\"3C4L!G$eYiYF07%$\"3D;yNVW/8ZF-$\"3^(fU IUaS<#F0$\"3%Q.&>.6DbdF07%$\"3A81x$44x)\\F-$\"3(4GoFZ%\\NAF0$\"3\"H0?N 5*HsdF07%$\"3p[=tS7eMeF-$\"3()p#*)[zls6#F0$\"3T_H!=UR]v'F07%$\"3'=OBA$ )Qk!pF-$\"3aCq*)[%>br\"F0$\"3_4x&3WXa@&F07%$\"3=$3::1TNT&F-$\"3%H7rUI? AX#F0$\"3QgL?%)=eleF07%$\"3b3qVa=0/[F-$\"3O;#Q=*QYtDF0$\"3W#3ex`C&)f&F 07%$\"36P+A#[fnT&F-$\"3^Vl2r'zaT#F0$\"3o/`MjPT!>&F07%$\"3G$[aH)H\\hjF- $\"3'>$*f3+3,P#F0$\"3;k)*ofV?BUF07%$\"314+\"3s;*zdF-$\"3))3*3Px'zF@F0$ \"3.X'3R)R*eE&F07%$\"3wgAH%3u(y\\F-$\"3Ac#Rcg)o8EF0$\"3a([*[0.qUTF07%$ \"31SDuO(ov?%F-$\"3k;#=qSnrG#F0$\"3qO^8'fcLA&F07%$\"3tMOp!3$>&e$F-$\"3 \\O[J*e-'oDF0$\"3kq*z&eN%*HYF07%$\"3&HH#G$y^4]&F-$\"3qz/ga>idCF0$\"3yT TH#H([&G&F07%$\"3]X&*pt)y&G\\F-$\"3Qe#ep%*e-Yaw.[F07%$\"3+#o]*=:Su^F-$\"3]$z+ ,)zxmAF0$\"3U[R2HQ/q]F07%$\"3$piUtc&e>mF-$\"3lm)R')e;cv#F0$\"3_-.1GcoY `F07%$\"3,MV9HW))obF-$\"3%*=J;Z1%zY#F0$\"3SwS7$4$G$y&F07%$\"3Ssm*)z\\Z f\\F-$\"3t;'4Y\\CFjgm$\"$D&FjgmFe[n7)F'F_hmFchmF_imFfimFj im-F_[n6%F_an$\"$P&FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"$2#Fjgm$ \"$\\&FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%Ffan$\"$h&FjgmFe[n7)F'F_h mFchmF_imFfimFjim-F_[n6%$\"$>#Fjgm$\"$t&FjgmFe[n7)F'F_hmFchmF_imFfimFj im-F_[n6%F[bn$\"$&eFjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"$J#Fjgm$ \"$(fFjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%Fbbn$\"$4'FjgmFe[n7)F'F_hm FchmF_imFfimFjim-F_[n6%$\"$V#Fjgm$\"$@'FjgmFe[n7)F'F_hmFchmF_imFfimFji m-F_[n6%Fgbn$\"$L'FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"$b#Fjgm$\" $X'FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%F^cn$\"$d'FjgmFe[n7)F'F_hmFc hmF_imFfimFjim-F_[n6%$\"$n#Fjgm$\"$p'FjgmFe[n7)F'F_hmFchmF_imFfimFjim- F_[n6%Fccn$\"$\"oFjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"$z#Fjgm$\"$ $pFjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%Fjcn$\"$0(FjgmFe[n7)F'F_hmFch mF_imFfimFjim-F_[n6%$\"$\"HFjgm$\"$<(FjgmFe[n7)F'F_hmFchmF_imFfimFjim- F_[n6%F_dn$\"$H(FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"$.$Fjgm$\"$T (FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%Ffdn$\"$`(FjgmFe[n" 1 2 0 1 10 0 2 1 1 1 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}}{PARA 0 "" 0 "" {TEXT -1 161 "One sees from these plots that the distributio n shown has minimal variation along the x dimension, modest variation \+ along y, and the greatest variation along z. " }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 55 "The Scattter Matrix, Sample Mean and Sample Covarian ce " }}{PARA 0 "" 0 "" {TEXT -1 192 "To begin to draw the connection b etween our sampling from a Gaussian random variable and classification using PCA and LDA, let us begin by defining a data matrix A as the co llection of points." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 178 "eq5 \+ := A = Matrix(1,4, [p[1], p[2], `...` , p[n]]):\neq6 := A = Transpose( Matrix(4,3, [[x[1], y[1], z[1]],[x[2], y[2], z[2]],[`...`, `...`, `... `],[x[n], y[n], z[n]]])):\neq5; eq6;" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#/%\"AG-%'RTABLEG6$\"*cn\\_'-%'MATRIXG6#7#7&&%\"pG6#\"\"\"&F/6#\"\"#% $...G&F/6#%\"nG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/%\"AG-%'RTABLEG6$ \"*[&)[_'-%'MATRIXG6#7%7&&%\"xG6#\"\"\"&F/6#\"\"#%$...G&F/6#%\"nG7&&% \"yGF0&F;F3F5&F;F77&&%\"zGF0&F@F3F5&F@F7" }}}{PARA 0 "" 0 "" {TEXT -1 65 "The sample mean and sample covariance for this set of points are: " }}{PARA 256 "" 0 "" {TEXT -1 1 "\n" }{XPPEDIT 18 0 "mu[s];" "6#&%#mu G6#%\"sG" }{TEXT -1 3 " = " }{XPPEDIT 18 0 "1/n;" "6#*&\"\"\"F$%\"nG! \"\"" }{XPPEDIT 18 0 "sum(p[i],i = 1 .. n);" "6#-%$sumG6$&%\"pG6#%\"iG /F);\"\"\"%\"nG" }{TEXT -1 5 " " }{XPPEDIT 18 0 "Sigma[s];" "6#&%& SigmaG6#%\"sG" }{TEXT -1 3 " = " }{XPPEDIT 18 0 "1/(n-1);" "6#*&\"\"\" F$,&%\"nGF$F$!\"\"F'" }{TEXT -1 1 " " }{XPPEDIT 18 0 "S;" "6#%\"SG" } {TEXT -1 7 " " }{XPPEDIT 18 0 "S;" "6#%\"SG" }{TEXT -1 4 " = " }{XPPEDIT 18 0 "sum((p[i]-mu[s])*(p[i]-mu[s])^t,i = 1 .. n);" "6#-%$su mG6$*&,&&%\"pG6#%\"iG\"\"\"&%#muG6#%\"sG!\"\"F,),&&F)6#F+F,&F.6#F0F1% \"tGF,/F+;F,%\"nG" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 196 "The matrix S is commonly called the scat ter matrix or moment matrix for the set of points. For the specific p oints in the example above, the sample mean, scatter matrix and covari ance matrix are:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 172 "MUs := \+ dataMatrixMean(P[1]): Ss := scatterMatrix(P[1]): OMEGA := sampleCovari ance(P[1]):\nmu[s] = roundMatrix(MUs,1), S = roundMatrix(Ss,1), Omega[ s] = roundMatrix(OMEGA,1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%/&%#muG6 #%\"sG-%'RTABLEG6$\"*K*G2l-%'MATRIXG6#7%7#$\"$5&!\"#7#$\"%5DF37#$\"%S \\F3/%\"SG-F)6$\"*g'pCl-F-6#7%7%$\"%](*F3$!%]8F3$!%I'*F37%FE$\"&]t*F3$ \"&!3NF37%FGFL$\"'qW$*F3/&%&OmegaGF&-F)6$\"*K(pCl-F-6#7%7%$\"#5!\"\"$! #5F3$FinFgn7%Fhn$\"$!)*F3$\"$]$F37%FjnF^o$\"%S%*F3" }}}{PARA 0 "" 0 " " {TEXT -1 127 "The standard deviation along the x, y and z axis are t he square roots of the diagonal elements of the sample covariance matr ix:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 128 "sigma[xx] = sigDigit s(sqrt(OMEGA[1,1]),1), sigma[yy] = sigDigits(sqrt(OMEGA[2,2]),1), sigm a[zz] = sigDigits(sqrt(OMEGA[3,3]),1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%/&%&sigmaG6#%#xxG$\"#5!\"\"/&F%6#%#yyG$\"$5$!\"#/&F%6#%#zzG$\"$q *F1" }}}{PARA 0 "" 0 "" {TEXT -1 98 "These values are close to the ori ginal. How close depends in part on how many points are sampled. " }}} {SECT 0 {PARA 4 "" 0 "" {TEXT -1 60 "Example of a Gaussian Rotated wit h respect to Principal Axes" }}{PARA 0 "" 0 "" {TEXT -1 112 "Now let u s consider rotating the distribution about the x axis by 45 degrees an d about the z axis by 45 degrees." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 148 "MU := Matrix(3,1, [[5],[25],[50]]):\nSD := Matrix(3, 1, [[1],[3],[10]]):\nEA := Matrix(3,1, [[0.7854],[0],[0.7854]]):\nmu = MU, sigma = SD, angles = EA;" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%/%#muG-%'RTABLEG6$\"*C@Z_'-% 'MATRIXG6#7%7#\"\"&7#\"#D7#\"#]/%&sigmaG-F&6$\"*[SZ_'-F*6#7%7#\"\"\"7# \"\"$7#\"#5/%'anglesG-F&6$\"*'z^Cl-F*6#7%7#$\"%ay!\"%7#\"\"!FI" }}} {PARA 0 "" 0 "" {TEXT -1 100 "Again, the sigmas along the diagonal of \+ the covariance matrix have been placed in a column vector. " }}{PARA 0 "" 0 "" {TEXT -1 60 "Here is a plot of 100 points sampled from this \+ distribution:" }}{SECT 0 {PARA 5 "" 0 "" {TEXT -1 18 "3D plot of point s." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 86 "P := listClasses(MU,SD ,EA):\ntheta := -45: phi := 45:\nplotPoints(P,theta,phi,FRAMED);\n\n" }}{PARA 13 "" 1 "" {GLPLOT3D 400 300 300 {PLOTDATA 3 "6)-%'POINTSG6bq7 %$\"3!*GM!fF)7%$!3t3$[%)zZ1+\"F )$\"3?`k1>g8ISF)$\"3'p=!#<$\"3n\\I'\\B=C&HF)$\"3b1P2Zhg6[F)7% $!31p['\\M&>cxF8$\"3ywN))=+;5KF)$\"3GTaGDP([[%F)7%$\"3Dt@OP'*en7F)$\"3 Mw*3[\"[(**o\"F)$\"3D9u2t'z*GaF)7%$\"3'4+h.='=a7F)$\"3Ln5Dq;?2;F)$\"3y 'H#ou'=.4'F)7%$!35VGsF)$\"3Cz%3^q_JH&F)7%$\"3'pC#G'>07W \"F@$\"3#QG8$e!H%HGF)$\"3'R4%>x')z()QF)7%$\"3Ci)*3P!pSL%F@$\"3#)R-E]H \"*=EF)$\"3,(*oK4%RO#\\F)7%$\"3w`Rl<#)*fU\"F)$\"3))*Q)f\\%e/g\"F)$\"3H \\.bwgd!G'F)7%$\"3jlt(y#*R)))>F@$\"3;\\pR,TJ\\)f$ekBZ#F@$\"3/P#4D6Zw*HF)$\"3=>A\">#4;7VF)7%$\"3.l!Gp4CGY(F@$ \"3M$*=RzD&HT#F)$\"36^AzNSFZ]F)7%$!3T*3FxZn#[**F@$\"3YVc\\Q%*yWQF)$\"3 kZMJyJ%=M#F)7%$\"3b\\X&=tX*[fF@$\"30&owN)[2pBF)$\"3oi-`!=rdn%F)7%$\"3a PLl#))GjR)F@$\"3RX9HrZpY?F)$\"3Kzq$y2r&QlF)7%$\"3$Q[8<*Ho.5F)$\"3!o0M- J;y0#F)$\"3L'pEXyi'ycF)7%$\"37R!)om,c#4%F@$\"3f>v))*RE+h#F)$\"3#zHIqJE kv%F)7%$\"3)oN.-Zs.,\"F)$\"3-o1eV3-f>F)$\"3)zy3nQ-%HcF)7%$\"3*o(G8C16: &)F@$\"3D$*=w+Gqy@F)$\"3P_p\\F:gx`F)7%$\"35Q.eL99jHF@$\"3&3%\\$e2\\\"f HF)$\"3#G*\\s!36ti%F)7%$\"3UUq>9Wg\"4\"F)$\"3]9Ee+M'=w\"F)$\"39kYpVp3P eF)7%$!3peF#>iW8\"QF8$\"31RBMP9x9LF)$\"3)f.ei]n'4UF)7%$\"3APomz!4\\H&F @$\"3(*3c*>'3ZABF)$\"3%)3RO#[kqs%F)7%$\"3?6kV[uS)H\"F@$\"3s'f_Zxn7t#F) $\"3+&>T$fa/w[F)7%$\"3SY\"4')47pY%F@$\"3m[S%[:<[t#F)$\"3S^iv`$e*GWF)7% $\"3`'*eR.jP*3\"F)$\"3E;%y``nrj\"F)$\"3'>pP(f]a!f&F)7%$!3cPgsA0!46%F8$ \"39o1gVw%z4$F)$\"3uxwPmaLUYF)7%$\"3U+@(=q(\\oQ>^5F)$\"3'*p0)z3a$e=F)$\"3CHny*olo0'F)7%$\"3Gi>o$yF#e`F@$\" 3]Y0!o#)o^^#F)$\"39%*zT=#3z7%F)7%$\"3g-zzC0n$3&F@$\"35\\FpWU!3[#F)$\"3 K,goRUI?_F)7%$\"3!*3i&)4JT%Q\"F@$\"3sQBFwq`xDF)$\"3PZ@,(=u^/&F)7%$\"3o 1k$f,+D')*F@$\"3DZ(ySXO\"\\=F)$\"38T(pJPjU8'F)7%$\"3D=X')fi%*eZF@$\"3k 0'yf^zF)$\"3m'z%QmENQ^F)7%$\"3KkM>Z -e=HF@$\"3k4SOX46ZFF)$\"3U,oqsA5JXF)7%$!3nJQ6K6ZBlF@$\"3H'z*Gemndt#*F@$\"327@@n&e%*)>F)$\"3y%4I 6LHcS'F)7%$\"3r-\"4vV2\"pZF@$\"3#>j%3X,U(H#F)$\"35b=qC(zMu%F)7%$\"3Ac9 OAEZH:F)$\"3`/9ZTCYy5F)$\"3bc.=e$4W!fF)7%$\"3`@M4]5JQ7F)$\"3zyM6#=\\Ne \"F)$\"3JC2?I7DFlF)7%$\"3]4GZg8@S>F@$\"3w6?UK!H$[HF)$\"3S38(HW\"=^]F)7 %$\"3(*o1ue>(oc#F@$\"3(H*eydc,cFF)$\"3;v*H,.5y-&F)7%$\"3UnrK4$p9+\"F)$ \"3>p0DPJ\\!3#F)$\"3V%3=I)QiFfF)7%$!3V#RMK9pM\"\\F8$\"3ye_jQ3+yFF)$\"3 M?u,z522XF)7%$!3$*G>Ot\"y2X\"F@$\"3Y$)Q-5jM\"Q$F)$\"3%H&z'[9d&)R%F)7%$ \"3Lk%4a(*R[t(F@$\"3UrVcF)7%$\"32xm&)Hl\\$o\" F@$\"3A&QCdVMN\"GF)$\"35%3;F@$\"3)H')e8HfVB$F) $\"3lkQ2hRS1OF)7%$\"3nH_qbV%3-\"F)$\"3s;nA(f'\\J@F)$\"3uL&>(\\aNA_F)7% $!3Lt6HAynqhF@$\"39#o-zW)QSNF)$\"3e%))f5N[j-%F)7%$\"3=e?in^@BdF@$\"3J$ zB2/&)oc#F)$\"3A0e#=hq$RgF)7%$\"3%p_/%y]G.^F@$\"3U7XV)G,Wp#F)$\"3G*QG \"4%*oFXF)7%$\"3(y%>e.9&*[5F)$\"3i:cwF*37$>F)$\"3mS)oDUWt@&F)7%$\"3j0& eUJg5I\"F)$\"3<^*zc/^^x\"F)$\"3auCOYszafF)7%$\"39Y.)3\"y!e0#F@$\"3Q]6U .K#4]#F)$\"3q3)pGVed2%F)7%$\"3;,ID\\41G@F@$\"3!)GW?47y#*GF)$\"34K4^`51 t^F)7%$\"3%)>9cL#35?$F@$\"3L$ywZX*[2FF)$\"3\"*4g%GuJqu%F)7%$!3$eC$3qVC mLF@$\"3M&o(*RH)=%4$F)$\"3a%)))4UA_#\\%F)7%$\"3&fyH/@=(ewF@$\"3lP\"\\k $\\?'Q#F)$\"3`d8&3bE-6&F)7%$!3&f;1>Z%*y@\"F@$\"3j<#GI9!QaJF)$\"3lW5/eE 08PF)7%$\"3?Mu`B]x*R&F@$\"3$eu3y:'y`BF)$\"3TT93U%zq/&F)7%$\"3W=io)p:%> [F@$\"33%=([F\"F)$\"3MH\"o7Y.!>\\IF)$\"35u!R)*ps[q%F)7%$\"3g(=U_vj>u$F@$\"3cBi(GD-'eFF)$\"3Z\\ Fj_tsoYF)7%$\"3-,;E5!*p!R)F@$\"3$4)fq`+-wBF)$\"3y\">2$))=k*=`gAZ^F)7%$\"3%z%eH)3Cz#HF8$\"3vf0@7 \\YmEF)$\"3N/^h#)*H2P%F)7%$\"30fR&Rm)3]&)F@$\"3.\\&Q%zQdBBF)$\"3p^G\"[ TqWX&F)7%$!3?CQz3U#*e5F@$\"3<')*pFtLy%GF)$\"3;$zKWk&pL[F)7%$\"38^3(f= \"H&[\"F)$\"3_+>Z'ym`\\\"F)$\"3_-&))*))pM+iF)7%$\"3QNr<)[h`,\"F)$\"31p s-vdH$)>F)$\"3X![eZ@e2W&F)7%$\"3W%Rzkng\"H;F@$\"3EJw;cg2BFF)$\"3r#f+%4 ae`XF)7%$\"3NTI9%pRiZ(F@$\"3]o#*zD5V$4#F)$\"3)pn*Q#p#y%\\&F)7%$\"3'4pb 2+(pDGF@$\"3o%*y'3-M;#GF)$\"3oN+nXNEF\\F)7%$\"3\\,$oL#>\"\\E&F@$\"3XL$ *H_^N0CF)$\"3z4Y!>pe*p\\F)7%$\"3+sQjF\\`#y'F8$\"3\"4h\"R]*3\"fGF)$\"3f PF0G'pRZ%F)7%$\"3@Ft))G&HR()*F@$\"3G%3psfvX\"=F)$\"3+ke#fP()R&fF)7%$\" 3Q.ZcGi+(=(F@$\"3[F*RAaKKX#F)$\"3%[DEp7t5>&F)7%$\"3.(HIr\"G@x!)F@$\"37 r+Jja5fAF)$\"3OC7yzOoj^F)7%$!3:Vs(f^VFd\"F@$\"3(R?]K#HSELF)$\"3G,#f'H) *4B[F)7%$\"3^V$)z,vP05F)$\"3m;^F$*fi->F)$\"3cQcF\"*HP5_F)-%&COLORG6&%$ RGBG$\"#5!\"\"$\"\"!FggmFfgm-%'SYMBOLG6$%'CIRCLEGFdgm-%*AXESSTYLEG6#%& FRAMEG-%+AXESLABELSG6&%\"XG%\"YG%\"ZG-%%FONTG6%%&TIMESG%&ROMANG\"#;-%* AXESTICKSG6&%(DEFAULTGF_imF_im-Fghm6%FihmFjhm\"#9-%(SCALINGG6#%,CONSTR AINEDG-%%VIEWG6%;$!0%z,>!oYu\"!#8$\"04T8#G6PDF]jm;$\"0=%*35)3MT!#9$\"0 W[/l*=&p%F]jm;$\"0X8$yJ%=M#F]jm$\"0Zs'=SiBmF]jm-%+PROJECTIONG6%$!#XFgg m$\"#XFggm\"\"\"" 1 2 0 1 10 0 2 1 1 3 1 1.000000 45.000000 -45.000000 1 0 "Curve 1" }}}}}{PARA 0 "" 0 "" {TEXT -1 47 "Here is an \+ animation of the same set of points." }}{SECT 1 {PARA 5 "" 0 "" {TEXT -1 28 "3D annimated plot of points." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 139 "samples :=animationSamples:\ndisplay3d(seq(plotPoint s(P,theta+i*(360/samples),phi+i*(720/samples),BOXED),i=0..(samples-1)) ,insequence=true);" }}{PARA 13 "" 1 "" {GLPLOT3D 400 300 300 {PLOTDATA 3 "6#-%(ANIMATEG6hn7)-%'POINTSG6bq7%$\"3!*GM!fF-7%$!3t3$[%)zZ1+\"F-$\"3?`k1>g8ISF-$\"3'p=!#<$\"3n\\I'\\B=C&HF-$\"3b1P2Zhg6[F-7%$!31p['\\M&>cxF<$\"3ywN)) =+;5KF-$\"3GTaGDP([[%F-7%$\"3Dt@OP'*en7F-$\"3Mw*3[\"[(**o\"F-$\"3D9u2t 'z*GaF-7%$\"3'4+h.='=a7F-$\"3Ln5Dq;?2;F-$\"3y'H#ou'=.4'F-7%$!35VGsF-$\"3Cz%3^q_JH&F-7%$\"3'pC#G'>07W\"FD$\"3#QG8$e!H%HGF-$\" 3'R4%>x')z()QF-7%$\"3Ci)*3P!pSL%FD$\"3#)R-E]H\"*=EF-$\"3,(*oK4%RO#\\F- 7%$\"3w`Rl<#)*fU\"F-$\"3))*Q)f\\%e/g\"F-$\"3H\\.bwgd!G'F-7%$\"3jlt(y#* R)))>FD$\"3;\\pR,TJ\\)f$ekBZ#FD$\"3/P#4D 6Zw*HF-$\"3=>A\">#4;7VF-7%$\"3.l!Gp4CGY(FD$\"3M$*=RzD&HT#F-$\"36^AzNSF Z]F-7%$!3T*3FxZn#[**FD$\"3YVc\\Q%*yWQF-$\"3kZMJyJ%=M#F-7%$\"3b\\X&=tX* [fFD$\"30&owN)[2pBF-$\"3oi-`!=rdn%F-7%$\"3aPLl#))GjR)FD$\"3RX9HrZpY?F- $\"3Kzq$y2r&QlF-7%$\"3$Q[8<*Ho.5F-$\"3!o0M-J;y0#F-$\"3L'pEXyi'ycF-7%$ \"37R!)om,c#4%FD$\"3f>v))*RE+h#F-$\"3#zHIqJEkv%F-7%$\"3)oN.-Zs.,\"F-$ \"3-o1eV3-f>F-$\"3)zy3nQ-%HcF-7%$\"3*o(G8C16:&)FD$\"3D$*=w+Gqy@F-$\"3P _p\\F:gx`F-7%$\"35Q.eL99jHFD$\"3&3%\\$e2\\\"fHF-$\"3#G*\\s!36ti%F-7%$ \"3UUq>9Wg\"4\"F-$\"3]9Ee+M'=w\"F-$\"39kYpVp3PeF-7%$!3peF#>iW8\"QF<$\" 31RBMP9x9LF-$\"3)f.ei]n'4UF-7%$\"3APomz!4\\H&FD$\"3(*3c*>'3ZABF-$\"3%) 3RO#[kqs%F-7%$\"3?6kV[uS)H\"FD$\"3s'f_Zxn7t#F-$\"3+&>T$fa/w[F-7%$\"3SY \"4')47pY%FD$\"3m[S%[:<[t#F-$\"3S^iv`$e*GWF-7%$\"3`'*eR.jP*3\"F-$\"3E; %y``nrj\"F-$\"3'>pP(f]a!f&F-7%$!3cPgsA0!46%F<$\"39o1gVw%z4$F-$\"3uxwPm aLUYF-7%$\"3U+@(=q(\\oQ>^5F-$\"3'*p0)z 3a$e=F-$\"3CHny*olo0'F-7%$\"3Gi>o$yF#e`FD$\"3]Y0!o#)o^^#F-$\"39%*zT=#3 z7%F-7%$\"3g-zzC0n$3&FD$\"35\\FpWU!3[#F-$\"3K,goRUI?_F-7%$\"3!*3i&)4JT %Q\"FD$\"3sQBFwq`xDF-$\"3PZ@,(=u^/&F-7%$\"3o1k$f,+D')*FD$\"3DZ(ySXO\" \\=F-$\"38T(pJPjU8'F-7%$\"3D=X')fi%*eZFD$\"3k0'yf^zF-$\"3m'z%QmENQ^F-7%$\"3KkM>Z-e=HFD$\"3k4SOX46ZFF-$\"3 U,oqsA5JXF-7%$!3nJQ6K6ZBlFD$\"3H'z*Gemndt#*FD$\"327@@n&e%*)>F-$\"3y%4I6LHcS'F-7%$\"3r-\"4vV2\"p ZFD$\"3#>j%3X,U(H#F-$\"35b=qC(zMu%F-7%$\"3Ac9OAEZH:F-$\"3`/9ZTCYy5F-$ \"3bc.=e$4W!fF-7%$\"3`@M4]5JQ7F-$\"3zyM6#=\\Ne\"F-$\"3JC2?I7DFlF-7%$\" 3]4GZg8@S>FD$\"3w6?UK!H$[HF-$\"3S38(HW\"=^]F-7%$\"3(*o1ue>(oc#FD$\"3(H *eydc,cFF-$\"3;v*H,.5y-&F-7%$\"3UnrK4$p9+\"F-$\"3>p0DPJ\\!3#F-$\"3V%3= I)QiFfF-7%$!3V#RMK9pM\"\\F<$\"3ye_jQ3+yFF-$\"3M?u,z522XF-7%$!3$*G>Ot\" y2X\"FD$\"3Y$)Q-5jM\"Q$F-$\"3%H&z'[9d&)R%F-7%$\"3Lk%4a(*R[t(FD$\"3UrV< ?*)yJBF-$\"3s$[*)\\:\\'>cF-7%$\"32xm&)Hl\\$o\"FD$\"3A&QCdVMN\"GF-$\"35 %3;FD$\"3)H')e8HfVB$F-$\"3lkQ2hRS1OF-7%$\"3nH_ qbV%3-\"F-$\"3s;nA(f'\\J@F-$\"3uL&>(\\aNA_F-7%$!3Lt6HAynqhFD$\"39#o-zW )QSNF-$\"3e%))f5N[j-%F-7%$\"3=e?in^@BdFD$\"3J$zB2/&)oc#F-$\"3A0e#=hq$R gF-7%$\"3%p_/%y]G.^FD$\"3U7XV)G,Wp#F-$\"3G*QG\"4%*oFXF-7%$\"3(y%>e.9&* [5F-$\"3i:cwF*37$>F-$\"3mS)oDUWt@&F-7%$\"3j0&eUJg5I\"F-$\"3<^*zc/^^x\" F-$\"3auCOYszafF-7%$\"39Y.)3\"y!e0#FD$\"3Q]6U.K#4]#F-$\"3q3)pGVed2%F-7 %$\"3;,ID\\41G@FD$\"3!)GW?47y#*GF-$\"34K4^`51t^F-7%$\"3%)>9cL#35?$FD$ \"3L$ywZX*[2FF-$\"3\"*4g%GuJqu%F-7%$!3$eC$3qVCmLFD$\"3M&o(*RH)=%4$F-$ \"3a%)))4UA_#\\%F-7%$\"3&fyH/@=(ewFD$\"3lP\"\\k$\\?'Q#F-$\"3`d8&3bE-6& F-7%$!3&f;1>Z%*y@\"FD$\"3j<#GI9!QaJF-$\"3lW5/eE08PF-7%$\"3?Mu`B]x*R&FD $\"3$eu3y:'y`BF-$\"3TT93U%zq/&F-7%$\"3W=io)p:%>[FD$\"33%=([F\"F-$\"3MH\"o7Y.!>\\IF-$\"35u!R)*p s[q%F-7%$\"3g(=U_vj>u$FD$\"3cBi(GD-'eFF-$\"3Z\\Fj_tsoYF-7%$\"3-,;E5!*p !R)FD$\"3$4)fq`+-wBF-$\"3y\">2$))=k*=`gAZ^F-7%$\"3%z%eH)3Cz#HF<$\"3vf0@7\\YmEF-$\"3N/^h#)*H2P%F -7%$\"30fR&Rm)3]&)FD$\"3.\\&Q%zQdBBF-$\"3p^G\"[TqWX&F-7%$!3?CQz3U#*e5F D$\"3<')*pFtLy%GF-$\"3;$zKWk&pL[F-7%$\"38^3(f=\"H&[\"F-$\"3_+>Z'ym`\\ \"F-$\"3_-&))*))pM+iF-7%$\"3QNr<)[h`,\"F-$\"31ps-vdH$)>F-$\"3X![eZ@e2W &F-7%$\"3W%Rzkng\"H;FD$\"3EJw;cg2BFF-$\"3r#f+%4ae`XF-7%$\"3NTI9%pRiZ(F D$\"3]o#*zD5V$4#F-$\"3)pn*Q#p#y%\\&F-7%$\"3'4pb2+(pDGFD$\"3o%*y'3-M;#G F-$\"3oN+nXNEF\\F-7%$\"3\\,$oL#>\"\\E&FD$\"3XL$*H_^N0CF-$\"3z4Y!>pe*p \\F-7%$\"3+sQjF\\`#y'F<$\"3\"4h\"R]*3\"fGF-$\"3fPF0G'pRZ%F-7%$\"3@Ft)) G&HR()*FD$\"3G%3psfvX\"=F-$\"3+ke#fP()R&fF-7%$\"3Q.ZcGi+(=(FD$\"3[F*RA aKKX#F-$\"3%[DEp7t5>&F-7%$\"3.(HIr\"G@x!)FD$\"37r+Jja5fAF-$\"3OC7yzOoj ^F-7%$!3:Vs(f^VFd\"FD$\"3(R?]K#HSELF-$\"3G,#f'H)*4B[F-7%$\"3^V$)z,vP05 F-$\"3m;^F$*fi->F-$\"3cQcF\"*HP5_F--%&COLORG6&%$RGBG$\"#5!\"\"$\"\"!F[ hmFjgm-%'SYMBOLG6$%'CIRCLEGFhgm-%*AXESSTYLEG6#%$BOXG-%+AXESLABELSG6&% \"XG%\"YG%\"ZG-%%FONTG6%%&TIMESG%&ROMANG\"#;-%*AXESTICKSG6&%(DEFAULTGF cimFcim-F[im6%F]imF^im\"#9-%(SCALINGG6#%,CONSTRAINEDG-%%VIEWG6%;$!0%z, >!oYu\"!#8$\"04T8#G6PDFajm;$\"0=%*35)3MT!#9$\"0W[/l*=&p%Fajm;$\"0X8$yJ %=M#Fajm$\"0Zs'=SiBmFajm-%+PROJECTIONG6%$!#XF[hm$\"#XF[hm\"\"\"7)F'F`h mFdhmF`imFgimF[jm-F`[n6%$!#RF[hm$\"#dF[hmFf[n7)F'F`hmFdhmF`imFgimF[jm- F`[n6%$!#LF[hm$\"#pF[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$!#FF[hm$\"# \")F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$!#@F[hm$\"#$*F[hmFf[n7)F'F` hmFdhmF`imFgimF[jm-F`[n6%$!#:F[hm$\"$0\"F[hmFf[n7)F'F`hmFdhmF`imFgimF[ jm-F`[n6%$!\"*F[hm$\"$<\"F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$!\"$F [hm$\"$H\"F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"\"$F[hm$\"$T\"F[hm Ff[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"\"*F[hm$\"$`\"F[hmFf[n7)F'F`hmFd hmF`imFgimF[jm-F`[n6%$\"#:F[hm$\"$l\"F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm- F`[n6%$\"#@F[hm$\"$x\"F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"#FF[hm $\"$*=F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"#LF[hm$\"$,#F[hmFf[n7) F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"#RF[hm$\"$8#F[hmFf[n7)F'F`hmFdhmF`imFg imF[jm-F`[n6%Fd[n$\"$D#F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"#^F[h m$\"$P#F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%F\\\\n$\"$\\#F[hmFf[n7)F 'F`hmFdhmF`imFgimF[jm-F`[n6%$\"#jF[hm$\"$h#F[hmFf[n7)F'F`hmFdhmF`imFgi mF[jm-F`[n6%Fc\\n$\"$t#F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"#vF[h m$\"$&GF[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%Fj\\n$\"$(HF[hmFf[n7)F'F `hmFdhmF`imFgimF[jm-F`[n6%$\"#()F[hm$\"$4$F[hmFf[n7)F'F`hmFdhmF`imFgim F[jm-F`[n6%Fa]n$\"$@$F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"#**F[hm $\"$L$F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%Fh]n$\"$X$F[hmFf[n7)F'F`h mFdhmF`imFgimF[jm-F`[n6%$\"$6\"F[hm$\"$d$F[hmFf[n7)F'F`hmFdhmF`imFgimF [jm-F`[n6%F_^n$\"$p$F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"$B\"F[hm $\"$\"QF[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%Ff^n$\"$$RF[hmFf[n7)F'F` hmFdhmF`imFgimF[jm-F`[n6%$\"$N\"F[hm$\"$0%F[hmFf[n7)F'F`hmFdhmF`imFgim F[jm-F`[n6%F]_n$\"$<%F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"$Z\"F[h m$\"$H%F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%Fd_n$\"$T%F[hmFf[n7)F'F` hmFdhmF`imFgimF[jm-F`[n6%$\"$f\"F[hm$\"$`%F[hmFf[n7)F'F`hmFdhmF`imFgim F[jm-F`[n6%F[`n$\"$l%F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"$r\"F[h m$\"$x%F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%Fb`n$\"$*[F[hmFf[n7)F'F` hmFdhmF`imFgimF[jm-F`[n6%$\"$$=F[hm$\"$,&F[hmFf[n7)F'F`hmFdhmF`imFgimF [jm-F`[n6%Fi`n$\"$8&F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"$&>F[hm$ \"$D&F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%F`an$\"$P&F[hmFf[n7)F'F`hm FdhmF`imFgimF[jm-F`[n6%$\"$2#F[hm$\"$\\&F[hmFf[n7)F'F`hmFdhmF`imFgimF[ jm-F`[n6%Fgan$\"$h&F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"$>#F[hm$ \"$t&F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%F\\bn$\"$&eF[hmFf[n7)F'F`h mFdhmF`imFgimF[jm-F`[n6%$\"$J#F[hm$\"$(fF[hmFf[n7)F'F`hmFdhmF`imFgimF[ jm-F`[n6%Fcbn$\"$4'F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"$V#F[hm$ \"$@'F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%Fhbn$\"$L'F[hmFf[n7)F'F`hm FdhmF`imFgimF[jm-F`[n6%$\"$b#F[hm$\"$X'F[hmFf[n7)F'F`hmFdhmF`imFgimF[j m-F`[n6%F_cn$\"$d'F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"$n#F[hm$\" $p'F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%Fdcn$\"$\"oF[hmFf[n7)F'F`hmF dhmF`imFgimF[jm-F`[n6%$\"$z#F[hm$\"$$pF[hmFf[n7)F'F`hmFdhmF`imFgimF[jm -F`[n6%F[dn$\"$0(F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%$\"$\"HF[hm$\" $<(F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm-F`[n6%F`dn$\"$H(F[hmFf[n7)F'F`hmFd hmF`imFgimF[jm-F`[n6%$\"$.$F[hm$\"$T(F[hmFf[n7)F'F`hmFdhmF`imFgimF[jm- F`[n6%Fgdn$\"$`(F[hmFf[n" 1 2 0 1 10 0 2 1 1 1 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}}{PARA 0 "" 0 "" {TEXT -1 249 "Now we see \+ the point cloud is moving up in a diagonal direction relative to the x , y and z coordinates. As we will see in the next section, we can anal yze the data matrix of this new set of points to recover the principal axes of this distribution. " }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 56 " Scatter and Covariance Matrices for Rotated Distribution" }}{PARA 0 " " 0 "" {TEXT -1 133 "In the same fashion as above, we can compute the \+ sample mean vector, the scatter matrix, and the associated sample cova riance matrix." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 172 "MUs := da taMatrixMean(P[1]): Ss := scatterMatrix(P[1]): OMEGA := sampleCovarian ce(P[1]):\nmu[s] = roundMatrix(MUs,1), S = roundMatrix(Ss,1), Omega[s] = roundMatrix(OMEGA,1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%/&%#muG6#% \"sG-%'RTABLEG6$\"*?'y2l-%'MATRIXG6#7%7#$\"$+&!\"#7#$\"%!\\#F37#$\"%+] F3/%\"SG-F)6$\"*k\\]_'-F-6#7%7%$\"'!)oGF3$!'!\\!HF3$\"'5ELF37%FE$\"'5a JF3$!'!HZ$F37%FGFL$\"'S-bF3/&%&OmegaGF&-F)6$\"*sZ4c'-F-6#7%7%$\"%+HF3$ !%IHF3$\"%gLF37%Fgn$\"%!>$F3$!%5NF37%FinF^o$\"%gbF3" }}}{PARA 0 "" 0 " " {TEXT -1 213 "While the sample mean has not been changed, the scatte r matrix is very different; the off diagonal elements now have signifi cant value indicating the variance along one axis is correlated with t hat along another. " }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 51 "Recoverin g the Rotation and Original Principal Axes" }}{PARA 0 "" 0 "" {TEXT -1 143 "By construction, the covariance and scatter matrices are symme tric positive definite. Thus, they may be diagonalized in the follow ing manner:" }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "Omega[s];" "6#&%&OmegaG6 #%\"sG" }{TEXT -1 3 " = " }{XPPEDIT 18 0 "R*Delta*R^t;" "6#*(%\"RG\"\" \"%&DeltaGF%)F$%\"tGF%" }}{PARA 0 "" 0 "" {TEXT -1 250 "Here, R is an \+ orthogonal matrix consisting of unit length row (and column) vectors. \+ Thus, it is essentially a rotation matrix. The only reason we need qua lify our statement is that it may include reflection about axes as wel l as rotation. The matrix " }{XPPEDIT 18 0 "Delta;" "6#%&DeltaG" } {TEXT -1 21 " is a digonal matrix:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 94 "eq10 := Delta = Matrix([[sigma[xx]^2, 0, 0], [0, sigm a[yy]^2, 0], [0, 0, sigma[zz]^2]]): eq10;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/%&DeltaG-%'RTABLEG6$\"*'z)4c'-%'MATRIXG6#7%7%*$)&%&sig maG6#%#xxG\"\"#\"\"\"\"\"!F67%F6*$)&F16#%#yyGF4F5F67%F6F6*$)&F16#%#zzG F4F5" }}}{PARA 0 "" 0 "" {TEXT -1 60 "For reasons that will become app arent shortly, let us write " }{XPPEDIT 18 0 "Delta;" "6#%&DeltaG" } {TEXT -1 3 " as" }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "Delta;" "6#%&DeltaG " }{TEXT -1 3 " = " }{XPPEDIT 18 0 "S*S;" "6#*&%\"SG\"\"\"F$F%" } {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 44 "So now our diagonalizatio n may be written as" }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "Omega[s];" "6#&% &OmegaG6#%\"sG" }{TEXT -1 3 " = " }{XPPEDIT 18 0 "R*S*S*R^t;" "6#**%\" RG\"\"\"%\"SGF%F&F%)F$%\"tGF%" }}{PARA 0 "" 0 "" {TEXT -1 65 "The actu al R and S matrices for our sample covariance matrix are:" }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 92 "ROMEG A,SOMEGA := DiagonalizeRS(OMEGA):\nR = roundMatrix(ROMEGA,2), S = roun dMatrix(SOMEGA,2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$/%\"RG-%'RTABLEG 6$\"*W]5c'-%'MATRIXG6#7%7%$!$+&!\"$$\"$q%F0$!$I(F07%$\"$?&F0$!$5&F0$!$ !oF07%$!$!pF0$!$?(F0$\"\"!FB/%\"SG-F&6$\"*Od5c'-F*6#7%7%$\"&5.\"F0FAFA 7%FA$\"%5IF0FA7%FAFA$\"%?5F0" }}}{PARA 0 "" 0 "" {TEXT -1 135 "The dia gonal terms of the S matrix are in fact the sample standard deviations for the set of points after they have been rotated by R. " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 113 "sigma[xx] = sigDigits(SOMEGA[1,1], 1), sigma[yy] = sigDigits(SOMEGA[2,2],1), sigma[zz] = sigDigits(SOMEGA [3,3],1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%/&%&sigmaG6#%#xxG$\"%I5! \"#/&F%6#%#yyG$\"$+$F*/&F%6#%#zzG$\"$+\"F*" }}}{PARA 0 "" 0 "" {TEXT -1 95 "We can see this visually if we actually rotate and plot the poi nts in the new coordinate system" }}{SECT 0 {PARA 5 "" 0 "" {TEXT -1 56 "3D Plot of Points after Rotation to Principal Components" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 86 "Q := homPad(ROMEGA) . P[1]: \ntheta := -45: phi := 45:\nplotPoints([Q],theta,phi,FRAMED);" }} {PARA 13 "" 1 "" {GLPLOT3D 400 300 300 {PLOTDATA 3 "6)-%'POINTSG6bq7%$ !3(oi))fI-*yT!#;$!3_W#R,A7[?%F)$!3uN'G(47v\"3#F)7%$!3'H\\v!=]tT:!#<$!3 #3.3`biN&\\F)$!3:o*z4(*zR=#F)7%$!32$yTXwM*>=F)$!3%opzC!Hg\"o%F)$!3'y]w U:%zk@F)7%$!3KNXV0RfS?F)$!3=\"*=k(z&))))[F)$!3Y1X6N)>'e>F)7%$!3_#\\=`% fmLVF)$!3#\\Nq8ojpK%F)$!3cq>aB4gn>F)7%$!3C# fOzln0=\"F)$!3*eyFm\"R]wZF)$!3)GP\"f\"))*H%>#F)7%$!3]rNhqtnbAF)$!3359K .\"pMC%F)$!33Y>C'RbM*>F)7%$!3ktM*[(*Guh#F)$!3JMa5\"\\g`l%F)$!3s73T*\\; )H@F)7%$!3sR0EmqU'4$F)$!3UXG;zs9qTF)$!34.tKFa&[.#F)7%$!3#*GeqM19;LF)$! 3!fwz*Qx*4B%F)$!3#H+Q$)*pHH>F)7%$!3:b%\\Uljke\"F)$!3YndW()yRCSF)$!30Q: ql\\Y/@F)7%$!3l-i5yg;&e#F)$!3tO\\:dj*RZ%F)$!3-WZ2Pb?U@F)7%$!3FX%yJwCna %F)$!3n)>qR<7QO%F)$!3h,)*zShmz?F)7%$!3Vd'QA)eoLCF)$!3r#pI!H*zEc%F)$!3m 0X))ROLz>F)7%$!3H>T*f\"z&*o=F)$!3s!*>,k'QjM%F)$!33I+!y*30$H#F)7%$!3X#e \">u`tFHF)$!3y]K<8:1!H%F)$!37zyUVth3AF)7%$\"3MTfPi(Qf%eF1$!3PM=bZjE!3% F)$!3s'f3B#yUl?F)7%$!3@%*3Dr0h,EF)$!3w0(4M$4&G4%F)$!3,D&[pJ?f2#F)7%$!3 T(pL/M[RB%F)$!3FrC5ub'R2&F)$!3'Qy_n(G%Q*>F)7%$!3f;G%y(f'Ho$F)$!3i,v6DG 91WF)$!3?Mr8L)zQ7#F)7%$!3'HMM4'pBbCF)$!3yu2rWrynVF)$!3'oWI8pY27#F)7%$! 3OE#)>T:a'p$F)$!3GfeN=#='=VF)$!3m$fyQ>Xw0#F)7%$!3eBNY>h#3L$F)$!3&fGFnY v9M%F)$!37LZVjT$*3@F)7%$!3Cl9&[:W99#F)$!3!))yad:$\\;XF)$!3o#o!G=u0'H#F )7%$!3\"y4a/\">\"3)RF)$!3gNt3&RWwJ%F)$!3+h!*HdIPp>F)7%$!3![:>;\\rN]\"F )$!3C=71bi+(e%F)$!3=Ay%H<\\dK#F)7%$!3)R%elyy@GEF)$!3)z7Z+?F$QTF)$!3Iz# R'*>>l*>F)7%$!3/<(\\^b-lM#F)$!3oFa5>=LdYF)$!3B$))o-!Q(Q,#F)7%$!3[tVv*p gl<#F)$!3^7/8C%**z=%F)$!3S^f-'f;+C#F)7%$!37rPUs^1eQF)$!3?k>,+ms'3%F)$! 3vj+udjA!)=F)7%$!3FdU(y8L#>>F)$!3:UA7D%)ztZF)$!3*RrvzW&yi@F)7%$!3=jL`$ *ey\\>F)$!3_J!zGRRkW%F)$!3_&H>1')4'3AF)7%$!3_V!RaEur1$F)$!3rt==mQE.WF) $!3%zc#G@&*30@F)7%$!3S(Q3[8)e(p%F)$!3dXc&4$z&Gq%F)$!3%GQq7+:+'>F)7%$!3 ^[!pg_]T]$F)$!3'[,,?8l^[%F)$!3D74Vt'[([?F)7%$!3&)zE6(G_jC#F)$!3Mt0:b\\ 5MRF)$!3#))RHl\"4qU?F)7%$!32,x5V$[h(HF)$!35*R)*QmI\\C%F)$!3I_)o6M\\!H@ F)7%$!3j!G102[f2%F)$!3Vr)zsc%F)$!3olkvvnN \"4#F)7%$!35V;r(*f5YDF)$!3!pnb>H&3!p%F)$!3eCG/kc62>F)7%$!32K?EaoN/TF)$ !3oT3y$R/.i%F)$!3$G0)[lZec>F)7%$!3#R\"RD%*4hJAF)$!38l&z3w:^2%F)$!39U)o r`qs:#F)7%$!3r&\\=\")3c`:#F)$!39.X+V!))H\\%F)$!3$*>*y&*[_+E#F)7%$!3NL \"H_D;:[$F)$!3jv]$=(ovJQF)$!3;,m9%fB4>#F)7%$!3&efQykU\"o@F)$!3)eME')=y \\M%F)$!3=:o*RX'zS@F)7%$!3\"[qVgynH3\"F)$!3]\"*)=mp*yA_F)$!3$Rh%pzf?@A F)7%$!3o@Y8)o9k*=F)$!3#)y.d8MQ([%F)$!3Yn7Yp))\\*)>F)7%$!37'G8/4`;`$F)$ !3PlmRn+5?YF)$!3d8w*4)oa?@F)7%$!3yE[Fi^L!p#F)$!3U;vi$=$yLXF)$!3bps[Ttm 3@F)7%$!3iP7ldHV2UF)$!3%)f?&R#z33\\F)$!3'p.!)*\\))\\9?F)7%$!3!f,;r$yoD EF)$!39$y],P\\U;%F)$!3[GO!R\\**=%>F)7%$!38<*ox)f%yc%F)$!3OzlbjPb'y$F)$ !3mu$>y`zzx\"F)7%$!3=paiQ11TYF)$!3U1M6)Hj=i%F)$!3o9m&*4o>N>F)7%$!3rqz3 hf%[S#F)$!3([([%)\\U:a[F)$!39+=V'o$G8AF)7%$!3T!3FTbd*3DF)$!3Rjpx8GT2ZF )$!3?Y!G6Amz6#F)7%$!3\"[YHt.iH&QF)$!37QOnBO.*e%F)$!3uznG'p^i8#F)7%$!3n &*GbV&*4m>F)$!3@_=kD*[C_%F)$!3mMoLz:^F>F)7%$!3ofSwF&epb\"F)$!3O*R(=%\\ Qf![F)$!3oFhta`(zH#F)7%$!3-z\")GjO*pR$F)$!3&fj#z?CJ;#F) 7%$!3pGkuE9pN>F)$!3wOHNuJV7VF)$!3hl8/HED0@F)7%$!3`0\"*oMCnR5F)$!3]MrIO ?y(>%F)$!3iOWp(>\"z)=#F)7%$!3>`v%RuUSK$F)$!3/-Epdz#G7%F)$!3QkPT!\\'\\$ >#F)7%$!3#*fCY\"e7bv*F1$!3fNJ2]mF)$!3(oxK1,?L&RF )$!3#pcb\"yR&y!>F)7%$!3tIIrY)Q\"HDF)$!3'p!p/%*fL**[F)$!3BvU*y2Z\\=#F)7 %$!3)4-T\"=xMeBF)$!3d\"y\"Q3PidWF)$!3T\")HTe#o&H@F)7%$!3T3!zuspUm\"F)$ !3;Sozh2(Q#[F)$!3\"3<&Q3#zr&>F)7%$!3G#G=FTcf*HF)$!3AXL'\\(QA4VF)$!3a!> L;ZAA?#F)7%$!3yEfsK*zV<\"F)$!3J*=Ii$3^4UF)$!3-Y\\.&pyp:#F)7%$!3Pno'Q;n B&GF)$!3Cy1b\\UbnVF)$!3#=(e<&=2K-#F)7%$!30d\"f*zHzUGF)$!3**>,M%3TX]%F) $!3!ez]!>'y'\\?F)7%$!33%4!e*)*H.\"=F)$!3&*G$fASU:<%F)$!3#Q'*4W'*pVC#F) 7%$!3$*>R9DZDX]F)$!3MLM3>N$*eTF)$!3GAm9ls='4#F)7%$!3VQlp!ek()3#F)$!3-* GX!eB]WSF)$!3=m#HpYjP.#F)7%$!3S\\LzL$4\\*>F)$!3U?ad]46%y%F)$!3%Qp1$Hq) p8#F)7%$!3\\DW=N)yUI#F)$!3xZ@)GP!*=S%F)$!3sCokbLn/AF)7%$!3^AJAO()p]FF) $!3E\"QyU)=W(*RF)$!3Wy6tBJR\\AF)7%$!3c#=e!RGqzGF)$!3X3:Tsfg&[%F)$!3`sW Y.*eK2#F)7%$!3v_3+(RZy&>F)$!3oKscGWVJVF)$!3\"*z42zia->F)7%$!30M8*3ZQ4K $F)$!3N(H=j*\\.mWF)$!3Fa\\$**3;_@#F)7%$!3%))R2,_FN9#F)$!3)e\"R0&)*e4\" [F)$!3+U8_a\\WN>F)7%$!3%F)$!3KgzKJ@]!3#F)7%$!3GO'zCu#[J@F)$!3eel,s5 Y:WF)$!3W8'4/!y.M?F)7%$!3S(f^dn2WS$F)$!3Qwjz'y%QKWF)$!3ihxU#pOV(>F)7%$ !3OpsM8G!yT#F)$!3@5>D%y4'eYF)$!3TbOr*3cU=#F)7%$!3SGZa,TClFF)$!3q$GKzpq \"[VF)$!3`F)$!3)y!Qyd$f+[%F)$!3qc+liwIn? F)7%$!3LJ*ou_7&*)RF)$!3m]q'3ik)yWF)$!3W(\\iK(p?M>F)7%$!3N\")zq/w4+IF)$ !3R(fDq\"fHBWF)$!3\"pyZ$3G?f 9MF)$!3IJbd\\z01SF)$!3*>G@IwEw,#F)-%&COLORG6&%$RGBG$\"#5!\"\"$\"\"!Ffg mFegm-%'SYMBOLG6$%'CIRCLEGFcgm-%*AXESSTYLEG6#%&FRAMEG-%+AXESLABELSG6&% \"XG%\"YG%\"ZG-%%FONTG6%%&TIMESG%&ROMANG\"#;-%*AXESTICKSG6&%(DEFAULTGF ^imF^im-Ffhm6%FhhmFihm\"#9-%(SCALINGG6#%,CONSTRAINEDG-%%VIEWG6%;$!0#R9 DZDX]!#8$\"0%fPi(Qf%e!#9;$!0\\y2.'f>tF\\jm$!0)pRHuu*o\"F\\jm;$!0Ougl)y m[F\\jm$\"0frIX*fIwF_jm-%+PROJECTIONG6%$!#XFfgm$\"#XFfgm\"\"\"" 1 2 0 1 10 0 2 1 1 3 1 1.000000 45.000000 -45.000000 1 0 "Curve 1" }}}}} {SECT 1 {PARA 5 "" 0 "" {TEXT -1 65 "3D Animated Plot of Points after \+ Rotation to Principal Components" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 141 "samples :=animationSamples:\ndisplay3d(seq(plotPoints([Q],the ta+i*(360/samples),phi+i*(720/samples),BOXED),i=0..(samples-1)),insequ ence=true);" }}{PARA 13 "" 1 "" {GLPLOT3D 400 300 300 {PLOTDATA 3 "6#- %(ANIMATEG6hn7)-%'POINTSG6bq7%$!3(oi))fI-*yT!#;$!3_W#R,A7[?%F-$!3uN'G( 47v\"3#F-7%$!3'H\\v!=]tT:!#<$!3#3.3`biN&\\F-$!3:o*z4(*zR=#F-7%$!32$yTX wM*>=F-$!3%opzC!Hg\"o%F-$!3'y]wU:%zk@F-7%$!3KNXV0RfS?F-$!3=\"*=k(z&))) )[F-$!3Y1X6N)>'e>F-7%$!3_#\\=`%fmLVF-$!3#\\ Nq8ojpK%F-$!3cq>aB4gn>F-7%$!3C#fOzln0=\"F-$!3*eyFm\"R]wZF-$!3)GP\"f\") )*H%>#F-7%$!3]rNhqtnbAF-$!3359K.\"pMC%F-$!33Y>C'RbM*>F-7%$!3ktM*[(*Guh #F-$!3JMa5\"\\g`l%F-$!3s73T*\\;)H@F-7%$!3sR0EmqU'4$F-$!3UXG;zs9qTF-$!3 4.tKFa&[.#F-7%$!3#*GeqM19;LF-$!3!fwz*Qx*4B%F-$!3#H+Q$)*pHH>F-7%$!3:b% \\Uljke\"F-$!3YndW()yRCSF-$!30Q:ql\\Y/@F-7%$!3l-i5yg;&e#F-$!3tO\\:dj*R Z%F-$!3-WZ2Pb?U@F-7%$!3FX%yJwCna%F-$!3n)>qR<7QO%F-$!3h,)*zShmz?F-7%$!3 Vd'QA)eoLCF-$!3r#pI!H*zEc%F-$!3m0X))ROLz>F-7%$!3H>T*f\"z&*o=F-$!3s!*>, k'QjM%F-$!33I+!y*30$H#F-7%$!3X#e\">u`tFHF-$!3y]K<8:1!H%F-$!37zyUVth3AF -7%$\"3MTfPi(Qf%eF5$!3PM=bZjE!3%F-$!3s'f3B#yUl?F-7%$!3@%*3Dr0h,EF-$!3w 0(4M$4&G4%F-$!3,D&[pJ?f2#F-7%$!3T(pL/M[RB%F-$!3FrC5ub'R2&F-$!3'Qy_n(G% Q*>F-7%$!3f;G%y(f'Ho$F-$!3i,v6DG91WF-$!3?Mr8L)zQ7#F-7%$!3'HMM4'pBbCF-$ !3yu2rWrynVF-$!3'oWI8pY27#F-7%$!3OE#)>T:a'p$F-$!3GfeN=#='=VF-$!3m$fyQ> Xw0#F-7%$!3eBNY>h#3L$F-$!3&fGFnYv9M%F-$!37LZVjT$*3@F-7%$!3Cl9&[:W99#F- $!3!))yad:$\\;XF-$!3o#o!G=u0'H#F-7%$!3\"y4a/\">\"3)RF-$!3gNt3&RWwJ%F-$ !3+h!*HdIPp>F-7%$!3![:>;\\rN]\"F-$!3C=71bi+(e%F-$!3=Ay%H<\\dK#F-7%$!3) R%elyy@GEF-$!3)z7Z+?F$QTF-$!3Iz#R'*>>l*>F-7%$!3/<(\\^b-lM#F-$!3oFa5>=L dYF-$!3B$))o-!Q(Q,#F-7%$!3[tVv*pgl<#F-$!3^7/8C%**z=%F-$!3S^f-'f;+C#F-7 %$!37rPUs^1eQF-$!3?k>,+ms'3%F-$!3vj+udjA!)=F-7%$!3FdU(y8L#>>F-$!3:UA7D %)ztZF-$!3*RrvzW&yi@F-7%$!3=jL`$*ey\\>F-$!3_J!zGRRkW%F-$!3_&H>1')4'3AF -7%$!3_V!RaEur1$F-$!3rt==mQE.WF-$!3%zc#G@&*30@F-7%$!3S(Q3[8)e(p%F-$!3d Xc&4$z&Gq%F-$!3%GQq7+:+'>F-7%$!3^[!pg_]T]$F-$!3'[,,?8l^[%F-$!3D74Vt'[( [?F-7%$!3&)zE6(G_jC#F-$!3Mt0:b\\5MRF-$!3#))RHl\"4qU?F-7%$!32,x5V$[h(HF -$!35*R)*QmI\\C%F-$!3I_)o6M\\!H@F-7%$!3j!G102[f2%F-$!3Vr)zsc%F-$!3olkvvnN\"4#F-7%$!35V;r(*f5YDF-$!3!pnb>H&3!p%F -$!3eCG/kc62>F-7%$!32K?EaoN/TF-$!3oT3y$R/.i%F-$!3$G0)[lZec>F-7%$!3#R\" RD%*4hJAF-$!38l&z3w:^2%F-$!39U)or`qs:#F-7%$!3r&\\=\")3c`:#F-$!39.X+V!) )H\\%F-$!3$*>*y&*[_+E#F-7%$!3NL\"H_D;:[$F-$!3jv]$=(ovJQF-$!3;,m9%fB4># F-7%$!3&efQykU\"o@F-$!3)eME')=y\\M%F-$!3=:o*RX'zS@F-7%$!3\"[qVgynH3\"F -$!3]\"*)=mp*yA_F-$!3$Rh%pzf?@AF-7%$!3o@Y8)o9k*=F-$!3#)y.d8MQ([%F-$!3Y n7Yp))\\*)>F-7%$!37'G8/4`;`$F-$!3PlmRn+5?YF-$!3d8w*4)oa?@F-7%$!3yE[Fi^ L!p#F-$!3U;vi$=$yLXF-$!3bps[Ttm3@F-7%$!3iP7ldHV2UF-$!3%)f?&R#z33\\F-$! 3'p.!)*\\))\\9?F-7%$!3!f,;r$yoDEF-$!39$y],P\\U;%F-$!3[GO!R\\**=%>F-7%$ !38<*ox)f%yc%F-$!3OzlbjPb'y$F-$!3mu$>y`zzx\"F-7%$!3=paiQ11TYF-$!3U1M6) Hj=i%F-$!3o9m&*4o>N>F-7%$!3rqz3hf%[S#F-$!3([([%)\\U:a[F-$!39+=V'o$G8AF -7%$!3T!3FTbd*3DF-$!3Rjpx8GT2ZF-$!3?Y!G6Amz6#F-7%$!3\"[YHt.iH&QF-$!37Q OnBO.*e%F-$!3uznG'p^i8#F-7%$!3n&*GbV&*4m>F-$!3@_=kD*[C_%F-$!3mMoLz:^F> F-7%$!3ofSwF&epb\"F-$!3O*R(=%\\Qf![F-$!3oFhta`(zH#F-7%$!3-z\")GjO*pR$F -$!3&fj#z?CJ;#F-7%$!3pGkuE9pN>F-$!3wOHNuJV7VF-$!3hl8/HE D0@F-7%$!3`0\"*oMCnR5F-$!3]MrIO?y(>%F-$!3iOWp(>\"z)=#F-7%$!3>`v%RuUSK$ F-$!3/-Epdz#G7%F-$!3QkPT!\\'\\$>#F-7%$!3#*fCY\"e7bv*F5$!3fNJ2]mF-$!3(oxK1,?L&RF-$!3#pcb\"yR&y!>F-7%$!3tIIrY)Q\"HDF-$!3 'p!p/%*fL**[F-$!3BvU*y2Z\\=#F-7%$!3)4-T\"=xMeBF-$!3d\"y\"Q3PidWF-$!3T \")HTe#o&H@F-7%$!3T3!zuspUm\"F-$!3;Sozh2(Q#[F-$!3\"3<&Q3#zr&>F-7%$!3G# G=FTcf*HF-$!3AXL'\\(QA4VF-$!3a!>L;ZAA?#F-7%$!3yEfsK*zV<\"F-$!3J*=Ii$3^ 4UF-$!3-Y\\.&pyp:#F-7%$!3Pno'Q;nB&GF-$!3Cy1b\\UbnVF-$!3#=(e<&=2K-#F-7% $!30d\"f*zHzUGF-$!3**>,M%3TX]%F-$!3!ez]!>'y'\\?F-7%$!33%4!e*)*H.\"=F-$ !3&*G$fASU:<%F-$!3#Q'*4W'*pVC#F-7%$!3$*>R9DZDX]F-$!3MLM3>N$*eTF-$!3GAm 9ls='4#F-7%$!3VQlp!ek()3#F-$!3-*GX!eB]WSF-$!3=m#HpYjP.#F-7%$!3S\\LzL$4 \\*>F-$!3U?ad]46%y%F-$!3%Qp1$Hq)p8#F-7%$!3\\DW=N)yUI#F-$!3xZ@)GP!*=S%F -$!3sCokbLn/AF-7%$!3^AJAO()p]FF-$!3E\"QyU)=W(*RF-$!3Wy6tBJR\\AF-7%$!3c #=e!RGqzGF-$!3X3:Tsfg&[%F-$!3`sWY.*eK2#F-7%$!3v_3+(RZy&>F-$!3oKscGWVJV F-$!3\"*z42zia->F-7%$!30M8*3ZQ4K$F-$!3N(H=j*\\.mWF-$!3Fa\\$**3;_@#F-7% $!3%))R2,_FN9#F-$!3)e\"R0&)*e4\"[F-$!3+U8_a\\WN>F-7%$!3%F-$!3KgzKJ@ ]!3#F-7%$!3GO'zCu#[J@F-$!3eel,s5Y:WF-$!3W8'4/!y.M?F-7%$!3S(f^dn2WS$F-$ !3Qwjz'y%QKWF-$!3ihxU#pOV(>F-7%$!3OpsM8G!yT#F-$!3@5>D%y4'eYF-$!3TbOr*3 cU=#F-7%$!3SGZa,TClFF-$!3q$GKzpq\"[VF-$!3`F-$!3)y!Qyd$f+[%F-$!3qc+liwIn?F-7%$!3LJ*ou_7&*)RF-$!3m]q'3ik)yWF-$!3 W(\\iK(p?M>F-7%$!3N\")zq/w4+IF-$!3R(fDq\"fHBWF-$!3\"pyZ$3G?f9MF-$!3IJbd\\z01SF-$!3*>G@IwEw,#F--%&C OLORG6&%$RGBG$\"#5!\"\"$\"\"!FjgmFigm-%'SYMBOLG6$%'CIRCLEGFggm-%*AXESS TYLEG6#%$BOXG-%+AXESLABELSG6&%\"XG%\"YG%\"ZG-%%FONTG6%%&TIMESG%&ROMANG \"#;-%*AXESTICKSG6&%(DEFAULTGFbimFbim-Fjhm6%F\\imF]im\"#9-%(SCALINGG6# %,CONSTRAINEDG-%%VIEWG6%;$!0#R9DZDX]!#8$\"0%fPi(Qf%e!#9;$!0\\y2.'f>tF` jm$!0)pRHuu*o\"F`jm;$!0Ougl)ym[F`jm$\"0frIX*fIwFcjm-%+PROJECTIONG6%$!# XFjgm$\"#XFjgm\"\"\"7)F'F_hmFchmF_imFfimFjim-F_[n6%$!#RFjgm$\"#dFjgmFe [n7)F'F_hmFchmF_imFfimFjim-F_[n6%$!#LFjgm$\"#pFjgmFe[n7)F'F_hmFchmF_im FfimFjim-F_[n6%$!#FFjgm$\"#\")FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$ !#@Fjgm$\"#$*FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$!#:Fjgm$\"$0\"Fjg mFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$!\"*Fjgm$\"$<\"FjgmFe[n7)F'F_hmFc hmF_imFfimFjim-F_[n6%$!\"$Fjgm$\"$H\"FjgmFe[n7)F'F_hmFchmF_imFfimFjim- F_[n6%$\"\"$Fjgm$\"$T\"FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"\"*Fj gm$\"$`\"FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"#:Fjgm$\"$l\"FjgmFe [n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"#@Fjgm$\"$x\"FjgmFe[n7)F'F_hmFchmF _imFfimFjim-F_[n6%$\"#FFjgm$\"$*=FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n 6%$\"#LFjgm$\"$,#FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"#RFjgm$\"$8 #FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%Fc[n$\"$D#FjgmFe[n7)F'F_hmFchm F_imFfimFjim-F_[n6%$\"#^Fjgm$\"$P#FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[ n6%F[\\n$\"$\\#FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"#jFjgm$\"$h#F jgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%Fb\\n$\"$t#FjgmFe[n7)F'F_hmFchmF _imFfimFjim-F_[n6%$\"#vFjgm$\"$&GFjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n 6%Fi\\n$\"$(HFjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"#()Fjgm$\"$4$Fj gmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%F`]n$\"$@$FjgmFe[n7)F'F_hmFchmF_i mFfimFjim-F_[n6%$\"#**Fjgm$\"$L$FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6 %Fg]n$\"$X$FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"$6\"Fjgm$\"$d$Fjg mFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%F^^n$\"$p$FjgmFe[n7)F'F_hmFchmF_im FfimFjim-F_[n6%$\"$B\"Fjgm$\"$\"QFjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n 6%Fe^n$\"$$RFjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"$N\"Fjgm$\"$0%Fj gmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%F\\_n$\"$<%FjgmFe[n7)F'F_hmFchmF_ imFfimFjim-F_[n6%$\"$Z\"Fjgm$\"$H%FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[ n6%Fc_n$\"$T%FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"$f\"Fjgm$\"$`%F jgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%Fj_n$\"$l%FjgmFe[n7)F'F_hmFchmF_ imFfimFjim-F_[n6%$\"$r\"Fjgm$\"$x%FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[ n6%Fa`n$\"$*[FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"$$=Fjgm$\"$,&Fj gmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%Fh`n$\"$8&FjgmFe[n7)F'F_hmFchmF_i mFfimFjim-F_[n6%$\"$&>Fjgm$\"$D&FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6 %F_an$\"$P&FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"$2#Fjgm$\"$\\&Fjg mFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%Ffan$\"$h&FjgmFe[n7)F'F_hmFchmF_im FfimFjim-F_[n6%$\"$>#Fjgm$\"$t&FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6% F[bn$\"$&eFjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"$J#Fjgm$\"$(fFjgmF e[n7)F'F_hmFchmF_imFfimFjim-F_[n6%Fbbn$\"$4'FjgmFe[n7)F'F_hmFchmF_imFf imFjim-F_[n6%$\"$V#Fjgm$\"$@'FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%Fg bn$\"$L'FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"$b#Fjgm$\"$X'FjgmFe[ n7)F'F_hmFchmF_imFfimFjim-F_[n6%F^cn$\"$d'FjgmFe[n7)F'F_hmFchmF_imFfim Fjim-F_[n6%$\"$n#Fjgm$\"$p'FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%Fccn $\"$\"oFjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"$z#Fjgm$\"$$pFjgmFe[n 7)F'F_hmFchmF_imFfimFjim-F_[n6%Fjcn$\"$0(FjgmFe[n7)F'F_hmFchmF_imFfimF jim-F_[n6%$\"$\"HFjgm$\"$<(FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%F_dn $\"$H(FjgmFe[n7)F'F_hmFchmF_imFfimFjim-F_[n6%$\"$.$Fjgm$\"$T(FjgmFe[n7 )F'F_hmFchmF_imFfimFjim-F_[n6%Ffdn$\"$`(FjgmFe[n" 1 2 0 1 10 0 2 1 1 1 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}}{PARA 0 "" 0 "" {TEXT -1 131 "As further confirmation, here is the sample mean, the sc atter matrix, and the sample covariance matrix for the new set of poin ts Q." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 292 "MUs := dataMatrixM ean(Q): Ss := scatterMatrix(Q): OMEGA := sampleCovariance(Q):\nmu[s] = roundMatrix(MUs,1), S = roundMatrix(Ss,1), Omega[s] = roundMatrix(OME GA,1);\nsigma[xx] = sigDigits(sqrt(OMEGA[1,1]),1), sigma[yy] = sigDigi ts(sqrt(OMEGA[2,2]),1), sigma[zz] = sigDigits(sqrt(OMEGA[3,3]),1);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6%/&%#muG6#%\"sG-%'RTABLEG6$\"*g,+^'-%'M ATRIXG6#7%7#$!%IF!\"#7#$!%IWF37#$!%!4#F3/%\"SG-F)6$\"*c+7c'-F-6#7%7%$ \"(I![5F3$!&q=&F3$!&q1%F37%FE$\"&!\\#*F3$\"%+_F37%FGFL$\"&5?\"F3/&%&Om egaGF&-F)6$\"*S$4hl-F-6#7%7%$\"&!f5F3$!$?&F3$!$5%F37%Fgn$\"$I*F3$\"#]F 37%FinF^o$\"$?\"F3" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%/&%&sigmaG6#%#xx G$\"%I5!\"#/&F%6#%#yyG$\"$5$F*/&F%6#%#zzG$\"$5\"F*" }}}{PARA 0 "" 0 " " {TEXT -1 11 "The matrix " }{XPPEDIT 18 0 "R;" "6#%\"RG" }{TEXT -1 320 " defines the principal components of the point cloud generated by our rotated Gaussian distribution. The row vectors in R are also the \+ Eigenvectors of the covariance or scatter matrix. The covariance and s catter matrices may be used interchangeably to find R since these matr ices only differ by a constant scale factor. " }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 30 "Interpreting Variance as Scale" }}{PARA 0 "" 0 "" {TEXT -1 11 "The matrix " }{XPPEDIT 18 0 "S;" "6#%\"SG" }{TEXT -1 396 " may be described as a diagonal matrix containing the sample estimate s for the standard deviation of the points along each of the principal components. Another way to view this is to observe that scaling the p oints by the inverse of this matrix will generate a new point set with unit variance along each of the principals axes. To illustrate, let u s apply this transformation to the data matrix " }{XPPEDIT 18 0 "P;" " 6#%\"PG" }{TEXT -1 70 " containing our sample points. The result will \+ be a new set of points " }{XPPEDIT 18 0 "Q;" "6#%\"QG" }{TEXT -1 1 ". " }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "Q = S^(-1)*R*P;" "6#/%\"QG*()%\"SG, $\"\"\"!\"\"F)%\"RGF)%\"PGF)" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 0 {PARA 5 "" 0 "" {TEXT -1 44 "3D Plot of Points after Rotation and Scaling" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 118 "Q \+ := MatrixInverse(homPad(SOMEGA)) . homPad(ROMEGA) . P[1]:\ntheta := -4 5: phi := 45:\nplotPoints([Q],theta,phi,FRAMED);" }}{PARA 13 "" 1 "" {GLPLOT3D 400 300 300 {PLOTDATA 3 "6)-%'POINTSG6bq7%$!3l5wF*zTI0%!#<$! 3s]n8uV8'R\"!#;$!3yp#=MxN?/#F,7%$!3!39Q@#4I&\\\"!#=$!3c<#*fIQuW;F,$!3' HYN[A9B9#F,7%$!3&[Ano#=7lF)$!3%*)[ET/pKi\"F,$!3i3Yb'[`7#>F,7%$!34yIpe7X\"o\"F)$!3Wi8kQQju:F ,$!3b*e#RwN#y<#F,7%$!3*pQwD&yv*o$F)$!3)>)G1f+G)H\"F,$!303pUsHC/?F,7%$! 3xy7!>9Y*)=%F)$!3st*\\4j#pO9F,$!3GPrpMK1I>F,7%$!3IZ%=)G7,X6F)$!3D#f(f0 Y&fe\"F,$!3Cl%\\KDPC:#F,7%$!3e7i-.2u(=#F)$!3$)[&firp*39F,$!3w^cTeWUb>F ,7%$!3SVhi'[CYQ\"F,$!3'[E\\RmMg*>F,7%$!3>ES`^[E;KF)$!3p&)))z<)G[S\"F,$!31&4ay1 !\\#*=F,7%$!3'e:ZxT#oQ:F)$!3'>F9'\\4BO8F,$!3gt;o)>;V1#F,7%$!3SZ$RQ%eI2 DF)$!3VFL**fA^&[\"F,$!3-C1IfnL,@F,7%$!3U&Q94:'y4WF)$!3nh1gGv#*[9F,$!3I ^3A$[!**R?F,7%$!3FYkOSzQgBF)$!3#HS^$*3e\\^\"F,$!3?p#za6s:%>F,7%$!3=_t? &\\oE\"=F)$!3-7M:bd7V9F,$!3rBwo2VI\\AF,7%$!3(*\\U06wbRGF)$!35kdD6*RWU \"F,$!3wLe,o:[m@F,7%$\"3%3'=?@.()pcF2$!39G.!\\4\"ya8F,$!3#3:6>!Q-E?F,7 %$!3/*[_/1bK_#F)$!3o6de'ef*e8F,$!3ShK\"=7;j.#F,7%$!3$37\\H&*Hk5%F)$!38 mQnZ:s%o\"F,$!3.+IhYX!e&>F,7%$!39^qF?@/sNF)$!3hP$Q6o#)HY\"F,$!3MD`Er1O $3#F,7%$!3#GH()>%**G\"Q#F)$!3&)>/8[tC]9F,$!3HXq@.tG!3#F,7%$!3]RGv8)3_e $F)$!3*=B\")em@RV\"F,$!3]H!p'\\'*Q=?F,7%$!3+QCrP!30B$F)$!3'y#3`:5^T9F, $!3sz%p2#F)$!3aQu))yDi*\\\"F,$!3Db&y+Z`AD#F,7%$!3 5:#zd]<4'QF)$!3uyF*[K)fL9F,$!3Qfz')f:!=$>F,7%$!3kf%ex!oGe9F)$!3bM+b?_. B:F,$!3H\")>\\o(y8G#F,7%$!3l61*o+h!\\DF)$!3F&)Ru&=fSP\"F,$!3jZc)3\")H% e>F,7%$!3U?ha2/$eF#F)$!3MszS%f&QY:F,$!3!ROAAK`a(>F,7%$!3`q>Duo+6@F)$!3 #yU.#z>b!R\"F,$!3#Rf*)))y\"G(>#F,7%$!3&[e6Omn=u$F)$!3*R[o(3h#pN\"F,$!3 (4N5>fbV%=F,7%$!3$[9?S_H9'=F)$!3*=D]WHc]e\"F,$!3,s(p([S_@@F,7%$!3#p6$R *3i5*=F)$!3t&)[&=XijZ\"F,$!3o0N'zAuk;#F,7%$!3Q>?'3(ozuHF)$!3I:S;tn-i9F ,$!3z7`0R)G\\1#F,7%$!37Z.r2e5cXF)$!3W#e(zV<]h:F,$!37$\\te.AE#>F,7%$!3g )ouiC7')R$F)$!3k9&)Qc1A*[\"F,$!3iGq7cGm4?F,7%$!3nA+7tkpy@F)$!33:&p-w]i I\"F,$!3k3@rx/t.?F,7%$!32TNQuC^')GF)$!3`5H*=+b%49F,$!3M9C&fbJ%)3#F,7%$ !3Hsr^Z$)=`RF)$!3SqE7K%>o]\"F,$!3$y^hr^+1(>F,7%$!3Ib8uH;iS?F)$!3HIjl?. fp7F,$!38uXG0(z]5#F,7%$!35P*[%4**=;GF)$!3ARx+P`Y;:F,$!3h![Ta3e90#F,7%$ !3ZCJ+y@UpCF)$!3Q$eaB\"3Ed:F,$!31#>#y1>tq=F,7%$!3^s.I8:u!)RF)$!35vZF&G \"4M:F,$!3q,!y>F,7%$!3(eHt'f\"*Rk@F)$!3.snlK42`8F,$!3_)Gm3N9h6#F, 7%$!3'y!*oZ!4W!4#F)$!3'R7*><\"==\\\"F,$!36tzrRa$p@#F,7%$!3v(QvhnfmP$F) $!3_;(>)oyEs7F,$!3Jv1Fy`7\\@F,7%$!3jDE)yNUG5#F)$!3O..4LSnU9F,$!3e*Hl&e X&**4#F,7%$!3yCe]x3N]5F)$!3A]+G&*f8Md**[\"F,$!3ehv%QTV:&>F,7%$!3/NNB'['GDMF)$!3'QnrAWBS`\"F,$! 30s_%[I\"4!3#F,7%$!3E')**HPuI4EF)$!3F%\\;.Vj`]\"F,$!3#\\os>SQ%o?F,7%$! 3'G^SD;823%F)$!3tbvSuZkH;F,$!3$G;*HZk1w>F,7%$!3%=*)R`;2ma#F)$!3tZG1*=m EQ\"F,$!3X0/IM@&[!>F,7%$!3K,'4[Cr-V%F)$!3.$>=r'*esD\"F,$!3+X_ME%fSu\"F ,7%$!3?b:363G,XF)$!3Hk+?#*)3Y`\"F,$!3%Q1rMKx#)*=F,7%$!32:\"=Ai;CL#F)$! 3(>e\")4/PF)$!3Ov$Q\")3+;]\"F,$!3U?P*3rQ2*=F,7%$!36[/(*Gf15:F)$!3-TdRUys& f\"F,$!3X*yQj\"[8aAF,7%$!3C?OFUFo%H$F)$!3YiR)R,!*e`\"F,$!3bS-NPj&=7#F, 7%$!3?m*f37#Rx=F)$!3-9\"p,.o=V\"F,$!39(*41N))3l?F,7%$!3V2=$*)\\f$35F)$ !3+2@_C,!QR\"F,$!3)ycfMmLq9#F,7%$!3%[:JW'*GRA$F)$!3>LLLLH\"*o8F,$!3qQk 3*=\\;:#F,7%$!3A/Z-!H&ph%*F2$!3?9jW\"HX+i\"F,$!3X9B7:-B]?F,7%$!3Uu%>M* f(yQ$F)$!3k$*e!phLeq\"F,$!3')ou\"z*>%y9#F,7%$!3XI8QNP+IAF)$!3E\\=Yj/3& R\"F,$!3?1msH(f3@#F,7%$!3O-l:v7![K$F)$!395?S;C+H8F,$!3=1,#4sw)G?F,7%$! 3qKU=S$H&RSF)$!3mtlZi!GiU\"F,$!3K#e!)fek@3#F,7%$!3%pt(Q\\sU]=F)$!36#3c MyIEJ\"F,$!3!*HRTNhXr=F,7%$!317i)\\/mHX#F)$!3)*y]6\\)Qni\"F,$!33OJQ\") GEV@F,7%$!30)R\"*p\")=tG#F)$!3h$Q`#3g2![\"F,$!3/@lMt0%*)3#F,7%$!38OPd@ ^99;F)$!3IT%*HQ>o,;F,$!3?FW&RMS)>>F,7%$!3DCL+jRs0HF)$!3)eCB%QC!3V\"F,$ !3!)4,$pp3-;#F,7%$!3-b***f')4!R6F)$!3_V+<]9F,$!3qs#odk3Y)>F,7%$!3g\"G*\\=N[mm`6!4Q\"F,$!3Q?*\\#>k>c?F,7%$!3/H#zb+be-#F) $!3h4'QvG1HM\"F,$!3#R$)fe`j\\*>F,7%$!33%zZ$)\\E[$>F)$!3,Sl?)Q![)e\"F,$ !3u_\"*o4y@'4#F,7%$!3xdL)[Qy[B#F)$!3%>;I(G2dh9F,$!37<'HK#Ghi@F,7%$!3\" ))y.k(H&ym#F)$!3>jP5!o!GF8F,$!3cc)f@Vzk?#F,7%$!3wMKdB<(Hz#F)$!33r%Q(Hq O*[\"F,$!34/I]#[0P.#F,7%$!3'QCoez!)))*=F)$!3_5JQkq`O;ZES\"F,$!3 w`rE5ya1?F,7%$!3I#3qF6!3VMF)$!3#p!3\\e-N%R\"F,$!3?et![_53/#F,7%$!3NKCU ylGn?F)$!3=ii3Um2m9F,$!3mZTjNEB&*>F,7%$!3J7%H*eM(=I$F)$!3O7!ec'epr9F,$ !3S$=u#*\\qm$>F,7%$!3+3q)*QK)\\M#F)$!331*)Q?*4oa\"F,$!3=OU!e2&eU@F,7%$ !3^aUFj-'>o#F)$!3KyC)*\\StV9F,$!3A5DSF)$!3V!4PLPD v[\"F,$!35g6&)yx'y-#F,7%$!3a]kTT\"F,$!3'e;OHzP!)4#F,7%$!38$owb.*fH=F)$!3`'Hiq>)*[o\"F,$!3e' *3QVzz-AF,7%$!3,3_b65v6LF)$!3xB)GR\\T,L\"F,$!3(>&eL'oM\"z>F,-%&COLORG6 &%$RGBG$\"#5!\"\"$\"\"!FggmFfgm-%'SYMBOLG6$%'CIRCLEGFdgm-%*AXESSTYLEG6 #%&FRAMEG-%+AXESLABELSG6&%\"XG%\"YG%\"ZG-%%FONTG6%%&TIMESG%&ROMANG\"#; -%*AXESTICKSG6&%(DEFAULTGF_imF_im-Fghm6%FihmFjhm\"#9-%(SCALINGG6#%,CON STRAINEDG-%%VIEWG6%;$!0Co%[8I$*[!#9$\"0'=?@.()pc!#:;$!0aG-!>ro*QyYqR \+ " 0 "" {MPLTEXT 1 0 141 "samples :=animationSamples:\ndisplay3d(seq(pl otPoints([Q],theta+i*(360/samples),phi+i*(720/samples),BOXED),i=0..(sa mples-1)),insequence=true);" }}{PARA 13 "" 1 "" {GLPLOT3D 400 300 300 {PLOTDATA 3 "6#-%(ANIMATEG6hn7)-%'POINTSG6bq7%$!3l5wF*zTI0%!#<$!3s]n8u V8'R\"!#;$!3yp#=MxN?/#F07%$!3!39Q@#4I&\\\"!#=$!3c<#*fIQuW;F0$!3'HYN[A9 B9#F07%$!3&[Ano#=7lF- $!3%*)[ET/pKi\"F0$!3i3Yb'[`7#>F07%$!34yIpe7X\"o\"F-$!3Wi8kQQju:F0$!3b* e#RwN#y<#F07%$!3*pQwD&yv*o$F-$!3)>)G1f+G)H\"F0$!303pUsHC/?F07%$!3xy7!> 9Y*)=%F-$!3st*\\4j#pO9F0$!3GPrpMK1I>F07%$!3IZ%=)G7,X6F-$!3D#f(f0Y&fe\" F0$!3Cl%\\KDPC:#F07%$!3e7i-.2u(=#F-$!3$)[&firp*39F0$!3w^cTeWUb>F07%$!3 SVhi'[CY Q\"F0$!3'[E\\RmMg*>F07%$!3>ES`^[E;KF-$!3p&)))z<)G[S\"F0$!31&4ay1!\\#*= F07%$!3'e:ZxT#oQ:F-$!3'>F9'\\4BO8F0$!3gt;o)>;V1#F07%$!3SZ$RQ%eI2DF-$!3 VFL**fA^&[\"F0$!3-C1IfnL,@F07%$!3U&Q94:'y4WF-$!3nh1gGv#*[9F0$!3I^3A$[! **R?F07%$!3FYkOSzQgBF-$!3#HS^$*3e\\^\"F0$!3?p#za6s:%>F07%$!3=_t?&\\oE \"=F-$!3-7M:bd7V9F0$!3rBwo2VI\\AF07%$!3(*\\U06wbRGF-$!35kdD6*RWU\"F0$! 3wLe,o:[m@F07%$\"3%3'=?@.()pcF6$!39G.!\\4\"ya8F0$!3#3:6>!Q-E?F07%$!3/* [_/1bK_#F-$!3o6de'ef*e8F0$!3ShK\"=7;j.#F07%$!3$37\\H&*Hk5%F-$!38mQnZ:s %o\"F0$!3.+IhYX!e&>F07%$!39^qF?@/sNF-$!3hP$Q6o#)HY\"F0$!3MD`Er1O$3#F07 %$!3#GH()>%**G\"Q#F-$!3&)>/8[tC]9F0$!3HXq@.tG!3#F07%$!3]RGv8)3_e$F-$!3 *=B\")em@RV\"F0$!3]H!p'\\'*Q=?F07%$!3+QCrP!30B$F-$!3'y#3`:5^T9F0$!3sz%p2#F-$!3aQu))yDi*\\\"F0$!3Db&y+Z`AD#F07%$!35:#zd] <4'QF-$!3uyF*[K)fL9F0$!3Qfz')f:!=$>F07%$!3kf%ex!oGe9F-$!3bM+b?_.B:F0$! 3H\")>\\o(y8G#F07%$!3l61*o+h!\\DF-$!3F&)Ru&=fSP\"F0$!3jZc)3\")H%e>F07% $!3U?ha2/$eF#F-$!3MszS%f&QY:F0$!3!ROAAK`a(>F07%$!3`q>Duo+6@F-$!3#yU.#z >b!R\"F0$!3#Rf*)))y\"G(>#F07%$!3&[e6Omn=u$F-$!3*R[o(3h#pN\"F0$!3(4N5>f bV%=F07%$!3$[9?S_H9'=F-$!3*=D]WHc]e\"F0$!3,s(p([S_@@F07%$!3#p6$R*3i5*= F-$!3t&)[&=XijZ\"F0$!3o0N'zAuk;#F07%$!3Q>?'3(ozuHF-$!3I:S;tn-i9F0$!3z7 `0R)G\\1#F07%$!37Z.r2e5cXF-$!3W#e(zV<]h:F0$!37$\\te.AE#>F07%$!3g)ouiC7 ')R$F-$!3k9&)Qc1A*[\"F0$!3iGq7cGm4?F07%$!3nA+7tkpy@F-$!33:&p-w]iI\"F0$ !3k3@rx/t.?F07%$!32TNQuC^')GF-$!3`5H*=+b%49F0$!3M9C&fbJ%)3#F07%$!3Hsr^ Z$)=`RF-$!3SqE7K%>o]\"F0$!3$y^hr^+1(>F07%$!3Ib8uH;iS?F-$!3HIjl?.fp7F0$ !38uXG0(z]5#F07%$!35P*[%4**=;GF-$!3ARx+P`Y;:F0$!3h![Ta3e90#F07%$!3ZCJ+ y@UpCF-$!3Q$eaB\"3Ed:F0$!31#>#y1>tq=F07%$!3^s.I8:u!)RF-$!35vZF&G\"4M:F 0$!3q,!y>F07%$!3(eHt'f\"*Rk@F-$!3.snlK42`8F0$!3_)Gm3N9h6#F07%$!3' y!*oZ!4W!4#F-$!3'R7*><\"==\\\"F0$!36tzrRa$p@#F07%$!3v(QvhnfmP$F-$!3_;( >)oyEs7F0$!3Jv1Fy`7\\@F07%$!3jDE)yNUG5#F-$!3O..4LSnU9F0$!3e*Hl&eX&**4# F07%$!3yCe]x3N]5F-$!3A]+G&*f8Md**[\"F0$!3ehv%QTV:&>F07%$!3/NNB'['GDMF-$!3'QnrAWBS`\"F0$!30s_%[ I\"4!3#F07%$!3E')**HPuI4EF-$!3F%\\;.Vj`]\"F0$!3#\\os>SQ%o?F07%$!3'G^SD ;823%F-$!3tbvSuZkH;F0$!3$G;*HZk1w>F07%$!3%=*)R`;2ma#F-$!3tZG1*=mEQ\"F0 $!3X0/IM@&[!>F07%$!3K,'4[Cr-V%F-$!3.$>=r'*esD\"F0$!3+X_ME%fSu\"F07%$!3 ?b:363G,XF-$!3Hk+?#*)3Y`\"F0$!3%Q1rMKx#)*=F07%$!32:\"=Ai;CL#F-$!3(>e\" )4/PF-$!3Ov$Q\")3+;]\"F0$!3U?P*3rQ2*=F07%$!36[/(*Gf15:F-$!3-TdRUys&f\"F0$ !3X*yQj\"[8aAF07%$!3C?OFUFo%H$F-$!3YiR)R,!*e`\"F0$!3bS-NPj&=7#F07%$!3? m*f37#Rx=F-$!3-9\"p,.o=V\"F0$!39(*41N))3l?F07%$!3V2=$*)\\f$35F-$!3+2@_ C,!QR\"F0$!3)ycfMmLq9#F07%$!3%[:JW'*GRA$F-$!3>LLLLH\"*o8F0$!3qQk3*=\\; :#F07%$!3A/Z-!H&ph%*F6$!3?9jW\"HX+i\"F0$!3X9B7:-B]?F07%$!3Uu%>M*f(yQ$F -$!3k$*e!phLeq\"F0$!3')ou\"z*>%y9#F07%$!3XI8QNP+IAF-$!3E\\=Yj/3&R\"F0$ !3?1msH(f3@#F07%$!3O-l:v7![K$F-$!395?S;C+H8F0$!3=1,#4sw)G?F07%$!3qKU=S $H&RSF-$!3mtlZi!GiU\"F0$!3K#e!)fek@3#F07%$!3%pt(Q\\sU]=F-$!36#3cMyIEJ \"F0$!3!*HRTNhXr=F07%$!317i)\\/mHX#F-$!3)*y]6\\)Qni\"F0$!33OJQ\")GEV@F 07%$!30)R\"*p\")=tG#F-$!3h$Q`#3g2![\"F0$!3/@lMt0%*)3#F07%$!38OPd@^99;F -$!3IT%*HQ>o,;F0$!3?FW&RMS)>>F07%$!3DCL+jRs0HF-$!3)eCB%QC!3V\"F0$!3!)4 ,$pp3-;#F07%$!3-b***f')4!R6F-$!3_V+<]9F0$!3qs#odk3Y)>F07%$!3g\"G*\\=N[mm`6!4Q\"F0$!3Q?*\\#>k>c?F07%$!3/H#zb+be-#F-$!3h4 'QvG1HM\"F0$!3#R$)fe`j\\*>F07%$!33%zZ$)\\E[$>F-$!3,Sl?)Q![)e\"F0$!3u_ \"*o4y@'4#F07%$!3xdL)[Qy[B#F-$!3%>;I(G2dh9F0$!37<'HK#Ghi@F07%$!3\"))y. k(H&ym#F-$!3>jP5!o!GF8F0$!3cc)f@Vzk?#F07%$!3wMKdB<(Hz#F-$!33r%Q(HqO*[ \"F0$!34/I]#[0P.#F07%$!3'QCoez!)))*=F-$!3_5JQkq`O;ZES\"F0$!3w`r E5ya1?F07%$!3I#3qF6!3VMF-$!3#p!3\\e-N%R\"F0$!3?et![_53/#F07%$!3NKCUylG n?F-$!3=ii3Um2m9F0$!3mZTjNEB&*>F07%$!3J7%H*eM(=I$F-$!3O7!ec'epr9F0$!3S $=u#*\\qm$>F07%$!3+3q)*QK)\\M#F-$!331*)Q?*4oa\"F0$!3=OU!e2&eU@F07%$!3^ aUFj-'>o#F-$!3KyC)*\\StV9F0$!3A5DSF-$!3V!4PLPDv[ \"F0$!35g6&)yx'y-#F07%$!3a]kTT\"F0$!3'e;OHzP!)4#F07%$!38$owb.*fH=F-$!3`'Hiq>)*[o\"F0$!3e'*3 QVzz-AF07%$!3,3_b65v6LF-$!3xB)GR\\T,L\"F0$!3(>&eL'oM\"z>F0-%&COLORG6&% $RGBG$\"#5!\"\"$\"\"!F[hmFjgm-%'SYMBOLG6$%'CIRCLEGFhgm-%*AXESSTYLEG6#% $BOXG-%+AXESLABELSG6&%\"XG%\"YG%\"ZG-%%FONTG6%%&TIMESG%&ROMANG\"#;-%*A XESTICKSG6&%(DEFAULTGFcimFcim-F[im6%F]imF^im\"#9-%(SCALINGG6#%,CONSTRA INEDG-%%VIEWG6%;$!0Co%[8I$*[!#9$\"0'=?@.()pc!#:;$!0aG-!>ro*QyYqRF[hm$\"$D&F[hmFg[n7)F'F`hmFdhmF`imFgimF[jm-Fa[n6%F`an$\"$P&F[h mFg[n7)F'F`hmFdhmF`imFgimF[jm-Fa[n6%$\"$2#F[hm$\"$\\&F[hmFg[n7)F'F`hmF dhmF`imFgimF[jm-Fa[n6%Fgan$\"$h&F[hmFg[n7)F'F`hmFdhmF`imFgimF[jm-Fa[n6 %$\"$>#F[hm$\"$t&F[hmFg[n7)F'F`hmFdhmF`imFgimF[jm-Fa[n6%F\\bn$\"$&eF[h mFg[n7)F'F`hmFdhmF`imFgimF[jm-Fa[n6%$\"$J#F[hm$\"$(fF[hmFg[n7)F'F`hmFd hmF`imFgimF[jm-Fa[n6%Fcbn$\"$4'F[hmFg[n7)F'F`hmFdhmF`imFgimF[jm-Fa[n6% $\"$V#F[hm$\"$@'F[hmFg[n7)F'F`hmFdhmF`imFgimF[jm-Fa[n6%Fhbn$\"$L'F[hmF g[n7)F'F`hmFdhmF`imFgimF[jm-Fa[n6%$\"$b#F[hm$\"$X'F[hmFg[n7)F'F`hmFdhm F`imFgimF[jm-Fa[n6%F_cn$\"$d'F[hmFg[n7)F'F`hmFdhmF`imFgimF[jm-Fa[n6%$ \"$n#F[hm$\"$p'F[hmFg[n7)F'F`hmFdhmF`imFgimF[jm-Fa[n6%Fdcn$\"$\"oF[hmF g[n7)F'F`hmFdhmF`imFgimF[jm-Fa[n6%$\"$z#F[hm$\"$$pF[hmFg[n7)F'F`hmFdhm F`imFgimF[jm-Fa[n6%F[dn$\"$0(F[hmFg[n7)F'F`hmFdhmF`imFgimF[jm-Fa[n6%$ \"$\"HF[hm$\"$<(F[hmFg[n7)F'F`hmFdhmF`imFgimF[jm-Fa[n6%F`dn$\"$H(F[hmF g[n7)F'F`hmFdhmF`imFgimF[jm-Fa[n6%$\"$.$F[hm$\"$T(F[hmFg[n7)F'F`hmFdhm F`imFgimF[jm-Fa[n6%Fgdn$\"$`(F[hmFg[n" 1 2 0 1 10 0 2 1 1 1 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}}{PARA 0 "" 0 "" {TEXT -1 168 "Looking at the sample mean, scatter matrix and sample covarian ce for the resulting set of points Q we will see the sample standard d eviations are now all close to one. " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 292 "MUs := dataMatrixMean(Q): Ss := scatterMatrix(Q): OM EGA := sampleCovariance(Q):\nmu[s] = roundMatrix(MUs,1), S = roundMatr ix(Ss,1), Omega[s] = roundMatrix(OMEGA,1);\nsigma[xx] = sigDigits(sqrt (OMEGA[1,1]),1), sigma[yy] = sigDigits(sqrt(OMEGA[2,2]),1), sigma[zz] \+ = sigDigits(sqrt(OMEGA[3,3]),1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%/& %#muG6#%\"sG-%'RTABLEG6$\"*3u7^'-%'MATRIXG6#7%7#$!$q#!\"#7#$!%q9F37#$! %]?F3/%\"SG-F)6$\"*!)yU`'-F-6#7%7%$\"%g)*F3$!%q;F3$!%qQF37%FE$\"&+-\"F 3$\"%!p\"F37%FGFL$\"&]:\"F3/&%&OmegaGF&-F)6$\"*;27c'-F-6#7%7%$\"#5!\" \"$!#?F3$!#SF37%Fhn$\"$+\"F3$\"#?F37%FjnF_o$\"$?\"F3" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%/&%&sigmaG6#%#xxG$\"#5!\"\"/&F%6#%#yyG$\"$+\"!\"#/&F %6#%#zzG$\"$5\"F1" }}}{PARA 0 "" 0 "" {TEXT -1 202 "In essence, what w e have done with the rotation and scale derived from the original cova riance matrix is create a transformation to a new space in which the p oints have unit variance in all directions. " }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 47 "Principal Components Subpace Maximizes Variance" }} {PARA 0 "" 0 "" {TEXT -1 509 "Often we do not bother to make explicit \+ the criteria that the principal components optimize. However, because \+ it will play a role latter in how the Fisher Linear Discriminants are \+ defined, it is worthwhile to review this basic material. Commonly it i s stated that principal components represent axes of maximal variance. To put this more precisely, if one sought a single dimension over whi ch the variance of the data in a data matrix was maximized, it would b e the axis that maximized the following function " }{XPPEDIT 18 0 "V; " "6#%\"VG" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "V(W) = W* Omega*W^t;" "6#/-%\"VG6#%\"WG*(F'\"\"\"%&OmegaGF))F'%\"tGF)" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 62 "For a data matrix of points in \+ 3D space, this product becomes." }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "V(W) ;" "6#-%\"VG6#%\"WG" }{TEXT -1 3 " = " }{XPPEDIT 18 0 "vector([w[x], w [y], w[z]]);" "6#-%'vectorG6#7%&%\"wG6#%\"xG&F(6#%\"yG&F(6#%\"zG" } {TEXT -1 1 " " }{XPPEDIT 18 0 "matrix([[sigma[xx], sigma[xy], sigma[xz ]], [sigma[yx], sigma[yy], sigma[yz]], [sigma[zx], sigma[zy], sigma[zz ]]]);" "6#-%'matrixG6#7%7%&%&sigmaG6#%#xxG&F)6#%#xyG&F)6#%#xzG7%&F)6#% #yxG&F)6#%#yyG&F)6#%#yzG7%&F)6#%#zxG&F)6#%#zyG&F)6#%#zzG" }{TEXT -1 1 " " }{XPPEDIT 18 0 "matrix([[w[x]], [w[y]], [w[z]]]);" "6#-%'matrixG6# 7%7#&%\"wG6#%\"xG7#&F)6#%\"yG7#&F)6#%\"zG" }}{PARA 0 "" 0 "" {TEXT -1 34 "Looking at the general case where " }{XPPEDIT 18 0 "Omega;" "6#%&O megaG" }{TEXT -1 80 " is not diagonal, it is not obvious what unit len gth basis vector to choose for " }{XPPEDIT 18 0 "W;" "6#%\"WG" }{TEXT -1 30 ". However, for the case where " }{XPPEDIT 18 0 "Omega;" "6#%&Om egaG" }{TEXT -1 42 " is diagonal, the choice is obvious given." }} {PARA 0 "" 0 "" {XPPEDIT 18 0 "V(W) = matrix([[w[x], w[y], w[z]]]).mat rix([[sigma[xx], 0, 0], [0, sigma[yy], 0], [0, 0, sigma[zz]]]).matrix( [[w[x]], [w[y]], [w[z]]]);" "6#/-%\"VG6#%\"WG-%\".G6%-%'matrixG6#7#7%& %\"wG6#%\"xG&F16#%\"yG&F16#%\"zG-F,6#7%7%&%&sigmaG6#%#xxG\"\"!FB7%FB&F ?6#%#yyGFB7%FBFB&F?6#%#zzG-F,6#7%7#&F16#F37#&F16#F67#&F16#F9" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 13 "Assume that " }{XPPEDIT 18 0 " sigma[xx];" "6#&%&sigmaG6#%#xxG" }{TEXT -1 3 " > " }{XPPEDIT 18 0 "sig ma[yy];" "6#&%&sigmaG6#%#yyG" }{TEXT -1 3 " > " }{XPPEDIT 18 0 "sigma[ zz];" "6#&%&sigmaG6#%#zzG" }{TEXT -1 12 " , then the " }{XPPEDIT 18 0 "W;" "6#%\"WG" }{TEXT -1 16 " that maximizes " }{XPPEDIT 18 0 "V(W);" "6#-%\"VG6#%\"WG" }{TEXT -1 4 " is " }{XPPEDIT 18 0 "vector([1, 0, 0]) ;" "6#-%'vectorG6#7%\"\"\"\"\"!F(" }{TEXT -1 62 ". Now recall our ear lier diagonalization of the general case." }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "Omega;" "6#%&OmegaG" }{TEXT -1 3 " = " }{XPPEDIT 18 0 "R*S*S*R^t ;" "6#**%\"RG\"\"\"%\"SGF%F&F%)F$%\"tGF%" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 17 "We observed that " }{XPPEDIT 18 0 "R;" "6#%\"RG" } {TEXT -1 81 " is a rotation matrix that shifts us from the original co ordinates system, where " }{XPPEDIT 18 0 "Omega;" "6#%&OmegaG" }{TEXT -1 180 " is not diagonal, to the principal components space, where the covariance matrix is diagonal. So, the axis in our original space tha t maximizes variance is the backward mapping of " }{XPPEDIT 18 0 "vect or([1, 0, 0])" "6#-%'vectorG6#7%\"\"\"\"\"!F(" }{TEXT -1 52 " into the original space. Putting this more simply, " }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "W = R^t*matrix([[1], [0], [0]]);" "6#/%\"WG*&)%\"RG%\"t G\"\"\"-%'matrixG6#7%7#F)7#\"\"!7#F0F)" }}{PARA 0 "" 0 "" {TEXT -1 54 "and even more simply, we see that the first column of " }{XPPEDIT 18 0 "R;" "6#%\"RG" }{TEXT -1 163 " is the unit length basis vector that \+ defines the axis of maximum variance. This axis is what we typically c all the first prinicipal component of the data matrix. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 17 "The extension to " } {XPPEDIT 18 0 "k;" "6#%\"kG" }{TEXT -1 79 " axes that collectively max imize variance generalizes the criterion function to" }}{PARA 0 "" 0 " " {XPPEDIT 18 0 "V(W) = abs(W*Omega*W^t);" "6#/-%\"VG6#%\"WG-%$absG6#* (F'\"\"\"%&OmegaGF,)F'%\"tGF," }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 45 "Now we are maximizing the determinant of the " }{XPPEDIT 18 0 "k;" "6#%\"kG" }{TEXT -1 1 "x" }{XPPEDIT 18 0 "k;" "6#%\"kG" } {TEXT -1 35 " matrix formed from product of the " }{XPPEDIT 18 0 "k;" "6#%\"kG" }{TEXT -1 1 "x" }{XPPEDIT 18 0 "n;" "6#%\"nG" }{TEXT -1 8 " \+ matrix " }{XPPEDIT 18 0 "W;" "6#%\"WG" }{TEXT -1 27 " and the covarian ce matrix " }{XPPEDIT 18 0 "Omega;" "6#%&OmegaG" }{TEXT -1 113 ". By a generalization of the argument made above, the basis vectors that max imize this determinant are the first " }{XPPEDIT 18 0 "k;" "6#%\"kG" } {TEXT -1 12 " columns of " }{XPPEDIT 18 0 "R;" "6#%\"RG" }{TEXT -1 1 " ." }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 20 "Fisher Discriminants" }}{PARA 0 "" 0 "" {TEXT -1 49 "Ficher's L inear Discriminants are defined as the " }{XPPEDIT 18 0 "k;" "6#%\"kG " }{TEXT -1 20 " basis vectors in a " }{XPPEDIT 18 0 "k;" "6#%\"kG" } {TEXT -1 1 "x" }{XPPEDIT 18 0 "n;" "6#%\"nG" }{TEXT -1 8 " matrix " } {XPPEDIT 18 0 "W;" "6#%\"WG" }{TEXT -1 38 " that maximizes the followi ng function" }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "J(W) = abs(W*M[B]*W^t)/a bs(W*M[W]*W^t);" "6#/-%\"JG6#%\"WG*&-%$absG6#*(F'\"\"\"&%\"MG6#%\"BGF- )F'%\"tGF-F--F*6#*(F'F-&F/6#F'F-)F'F3F-!\"\"" }}{PARA 0 "" 0 "" {TEXT -1 6 "Where " }{XPPEDIT 18 0 "M[B];" "6#&%\"MG6#%\"BG" }{TEXT -1 41 " \+ is the between class scatter matrix and " }{XPPEDIT 18 0 "M[W];" "6#&% \"MG6#%\"WG" }{TEXT -1 97 " is the within class scatter matrix [Duda]. More particularly, the within class scatter matrix is" }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "M[W] = sum(M[i],i = 1 .. c);" "6#/&%\"MG6#%\"WG-%$ sumG6$&F%6#%\"iG/F-;\"\"\"%\"cG" }{TEXT -1 11 " where " }{XPPEDIT 18 0 "M[i] = sum(p[j]-(mu[i].((p[j]-mu[i])^t)),j = 1 .. n[i]);" "6#/&% \"MG6#%\"iG-%$sumG6$,&&%\"pG6#%\"jG\"\"\"-%\".G6$&%#muG6#F'),&&F-6#F/F 0&F56#F'!\"\"%\"tGF=/F/;F0&%\"nG6#F'" }}{PARA 0 "" 0 "" {TEXT -1 6 "wh ere " }{XPPEDIT 18 0 "n[i];" "6#&%\"nG6#%\"iG" }{TEXT -1 36 " is the n umber of elements in class " }{XPPEDIT 18 0 "i;" "6#%\"iG" }{TEXT -1 2 ", " }{XPPEDIT 18 0 "p[j];" "6#&%\"pG6#%\"jG" }{TEXT -1 8 " is the \+ " }{XPPEDIT 18 0 "j;" "6#%\"jG" }{TEXT -1 18 "th point in class " } {XPPEDIT 18 0 "i;" "6#%\"iG" }{TEXT -1 6 ", and " }{XPPEDIT 18 0 "mu[i ];" "6#&%#muG6#%\"iG" }{TEXT -1 30 " is the mean vector for class " } {XPPEDIT 18 0 "i;" "6#%\"iG" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 35 "The between class scatter matrix is" }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "M[B] = sum(n[i].(mu[i]-mu).((mu[i]-mu)^t),i = 1 .. c); " "6#/&%\"MG6#%\"BG-%$sumG6$-%\".G6%&%\"nG6#%\"iG,&&%#muG6#F1\"\"\"F4! \"\"),&&F46#F1F6F4F7%\"tG/F1;F6%\"cG" }}{PARA 0 "" 0 "" {TEXT -1 245 " Now, quoting from [Duda], \"The problem of finding a rectangular matri x W that minimizes J(.) is tricky.\" They, and other common reference s, state without elaboration that the optimal W may be found by solvin g the generalized eigenvector problem" }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "M[B]*w[i] = lambda[i]*M[W]*w[i];" "6#/*&&%\"MG6#%\"BG\"\"\"&%\"wG6# %\"iGF)*(&%'lambdaG6#F-F)&F&6#%\"WGF)&F+6#F-F)" }{TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 77 "Specifically, the optimal W consists of t he eigenvectors associated with the " }{XPPEDIT 18 0 "k;" "6#%\"kG" } {TEXT -1 23 " largest eigenvalues. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 608 "The problem with stopping at this poin t is two fold. First, many of us have no geometric intuition for what \+ it means to solve this general eigenvector problem. Second, while gene ral, this approach may not always be the most efficient/robust means o f finding the Fisher Discriminants. This latter observation has been m ade by [Zhao] and others. They provide a general means of transforming a generalized eigenvector problem to a symmetric eigenvector problem, and this transformation is the basis for developing a geometric intui tion for what is actually taking place when computing the Fisher Discr iminants. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 98 "Here is the transformation with many of the intermediate steps \+ omitted from [Zhao] made explicit. " }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 48 "Transformation to a Standard Eigenvector Problem" }}{PARA 0 "" 0 "" {TEXT -1 48 "Begin with the generalized eigen vector problem:" }} {PARA 0 "" 0 "" {XPPEDIT 18 0 "M[b].W = M[w].W.Lambda;" "6#/-%\".G6$&% \"MG6#%\"bG%\"WG-F%6%&F(6#%\"wGF+%'LambdaG" }{TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 48 "Now use singular value decomposition to express " }{XPPEDIT 18 0 "M[w];" "6#&%\"MG6#%\"wG" }{TEXT -1 128 " in diagonal f orm, and indeed, go one step further and explicitly identify the squar e root of the diagonal as a scale matrix. So" }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "M[w] = R[w].S[w].S[w].(R[w]^T);" "6#/&%\"MG6#%\"wG-%\". G6&&%\"RG6#F'&%\"SG6#F'&F/6#F')&F,6#F'%\"TG" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 42 "The original problem may now be written as" }} {PARA 0 "" 0 "" {XPPEDIT 18 0 "M[b].W = R[w].S[w].S[w].(R[w]^T).W.Lamb da;" "6#/-%\".G6$&%\"MG6#%\"bG%\"WG-F%6(&%\"RG6#%\"wG&%\"SG6#F1&F36#F1 )&F/6#F1%\"TGF+%'LambdaG" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 65 "Take the inverse scale and rotation and right multiply both sides " }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "S[w]^i.(R[w]^T).M[b].W = S[w].(R[w] ^T).W.Lambda;" "6#/-%\".G6&)&%\"SG6#%\"wG%\"iG)&%\"RG6#F+%\"TG&%\"MG6# %\"bG%\"WG-F%6&&F)6#F+)&F/6#F+F1F6%'LambdaG" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 88 "Define a new matrix that will become the eigenvec tors of a symmetric eigenvector problem" }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "V = S[w].(R[w]^T).W;" "6#/%\"VG-%\".G6%&%\"SG6#%\"wG)&%\"RG6#F+% \"TG%\"WG" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 15 "and substitut e " }{XPPEDIT 18 0 "V;" "6#%\"VG" }{TEXT -1 23 " on the right hand sid e" }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "S[w]^i.(R[w]^T).M[b].W = V.Lambda; " "6#/-%\".G6&)&%\"SG6#%\"wG%\"iG)&%\"RG6#F+%\"TG&%\"MG6#%\"bG%\"WG-F% 6$%\"VG%'LambdaG" }{TEXT -1 143 "\nTo simplify the left hand side, int roduce a single matrix G that combines the scale and rotation derived \+ from the within class scatter matrix." }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "G = S[w]^i.(R[w]^T);" "6#/%\"GG-%\".G6$)&%\"SG6#%\"wG%\"iG)&%\"RG6# F,%\"TG" }{TEXT -1 6 " and " }{XPPEDIT 18 0 "G^T = R[w].(S[w]^i);" "6 #/)%\"GG%\"TG-%\".G6$&%\"RG6#%\"wG)&%\"SG6#F-%\"iG" }{TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 130 "Expand the left hand side by left multip lying be a sequence or scales and rotations that together are the iden tity transformation." }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "S[w]^i.(R[w]^T) .M[b].R[w].(S[w]^i).S[w].(R[w]^T).W = V.Lambda;" "6#/-%\".G6*)&%\"SG6# %\"wG%\"iG)&%\"RG6#F+%\"TG&%\"MG6#%\"bG&F/6#F+)&F)6#F+F,&F)6#F+)&F/6#F +F1%\"WG-F%6$%\"VG%'LambdaG" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 43 "Now substitute G and V in where appropriate" }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "G.M[b].(G^T).V = V.Lambda;" "6#/-%\".G6&%\"GG&%\"MG6#% \"bG)F'%\"TG%\"VG-F%6$F.%'LambdaG" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 55 "The final result is a symmetric eigenvector problem in " }{XPPEDIT 18 0 "N[b];" "6#&%\"NG6#%\"bG" }{TEXT -1 7 " where " } {XPPEDIT 18 0 "N[b] = G.M[b].(G^T);" "6#/&%\"NG6#%\"bG-%\".G6%%\"GG&% \"MG6#F')F+%\"TG" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "N[b ].V = V.Lambda;" "6#/-%\".G6$&%\"NG6#%\"bG%\"VG-F%6$F+%'LambdaG" } {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 18 "Once we solve for " } {XPPEDIT 18 0 "V;" "6#%\"VG" }{TEXT -1 37 ", W is found directly by th e equality" }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "W = R[w].(S[w]^i).V;" "6# /%\"WG-%\".G6%&%\"RG6#%\"wG)&%\"SG6#F+%\"iG%\"VG" }{TEXT -1 2 " " }} {PARA 0 "" 0 "" {TEXT -1 206 "We will see below that G is a transforma tion that takes us into a space where the fisher discriminants are rel ated directly to the eigenvectors of the scatter matrix associated wit h the transformed points. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 52 "How this Transformation Acts Upon Fishe r's Criterion" }}{PARA 0 "" 0 "" {TEXT -1 125 "Now we can draw the con nection between the general algebraic manipulation above and the Fishe r Criterion we wish to optimize." }}{PARA 0 "" 0 "" {TEXT -1 26 "Recal l Fisher's criterion " }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "J(W) = abs(W*M [B]*W^t)/abs(W*M[W]*W^t)" "6#/-%\"JG6#%\"WG*&-%$absG6#*(F'\"\"\"&%\"MG 6#%\"BGF-)F'%\"tGF-F--F*6#*(F'F-&F/6#F'F-)F'F3F-!\"\"" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 251 "Consider how much easier this problem \+ would be to solve if the denominator were a constant with respect to o ur choice of W. We can map to a new space where this is true by explo iting the rotation and scale transformations obtained from diagonalizi ng " }{XPPEDIT 18 0 "M[W];" "6#&%\"MG6#%\"WG" }{TEXT -1 69 ". Thus, re iterating the diagonalization used in the previous section." }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "M[w] = R[w]*S[w]*S[w]*R[w]^T;" "6#/&%\"MG6#% \"wG**&%\"RG6#F'\"\"\"&%\"SG6#F'F,&F.6#F'F,)&F*6#F'%\"TGF," }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 28 "Applying the transformation " } {XPPEDIT 18 0 "G;" "6#%\"GG" }{TEXT -1 197 " to our points before crea ting the within and between class scatter matrices leads to a new prob lem where only the numerator varies as a function of W. Showing the a lgebra of this transformation, " }}{PARA 0 "" 0 "" {XPPEDIT 18 0 "J(V) = abs(V*R^t*S[w]^(-1)*M[B]*R*S[w]^(-1)*V^t)/abs(V*R^t*S[w]^(-1)*R[w]* S[w]*S[w]*R[w]^T*R*S[w]^(-1)*V^t);" "6#/-%\"JG6#%\"VG*&-%$absG6#*0F'\" \"\")%\"RG%\"tGF-)&%\"SG6#%\"wG,$F-!\"\"F-&%\"MG6#%\"BGF-F/F-)&F36#F5, $F-F7F-)F'F0F-F--F*6#*6F'F-)F/F0F-)&F36#F5,$F-F7F-&F/6#F5F-&F36#F5F-&F 36#F5F-)&F/6#F5%\"TGF-F/F-)&F36#F5,$F-F7F-)F'F0F-F7" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 60 "The denominator of this new criterion function collapses to " }{XPPEDIT 18 0 "V*V^t;" "6#*&% \"VG\"\"\")F$%\"tGF%" }{TEXT -1 67 ", and this further collapses and t he entire denominator becomes 1. " }}{PARA 0 "" 0 "" {TEXT -1 410 "In \+ geometric terms, we have transformed our problem to a space where the \+ covariance of the within class scatter is one in all principal directi ons. This is exactly the same as we illustrated above when we showed t hat the R and S derived from the diagonalization of a covariance matri x could be used to remap a data matrix into a space where the points f ormed a compact ball with variance 1 in all directtions. " }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 463 "One loose end is \+ why maximizing J in the transformed space is equivalent to maximizing \+ it in the original space. The answer lies in observing that the rotati ons leave the determinant unchanged, and the two scale matrices alter \+ both the numerator and denominator by the same constant factor. Thus, \+ maximizing one ratio is equivalent to maximizing the other. We are no w ready to illustrate this method of finding the Fisher Discriminants \+ on a specific 3D example. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 32 "Example of a Three Class Problem" }} {PARA 0 "" 0 "" {TEXT -1 112 "Consider a three class recognition probl em where samples from each class are drawn from distinct distributions . " }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 31 "Different Covariance Struct ures" }}{PARA 0 "" 0 "" {TEXT -1 163 "Here are three distinct tri-vari ate Gaussian random variables and sample points from each. These three classes give rise to two Fisher Linear Discriminants in 3D. " }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 219 "MU := Transpose(Matrix(3,3, [[0,0,0],[20,5,30],[50,10,70]])):\nSD := Transpose(Matrix(3,3, [[10,3,1],[10,3,1],[10,3,1]])):\nEA := Trans pose(Matrix(3,3, [[.4,0,0],[0,0.7,0],[0,0,1.2]])):\n[mu = MU, sigma = \+ SD, angles = EA];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7%/%#muG-%'RTABLE G6$\"*sp7c'-%'MATRIXG6#7%7%\"\"!\"#?\"#]7%F/\"\"&\"#57%F/\"#I\"#q/%&si gmaG-F'6$\"*7r7c'-F+6#7%7%F4F4F47%\"\"$FBFB7%\"\"\"FDFD/%'anglesG-F'6$ \"*'\\Hhl-F+6#7%7%$\"\"%!\"\"F/F/7%F/$\"\"(FPF/7%F/F/$\"#7FP" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "P := listClasses(MU,SD,EA); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"PG7%-%'RTABLEG6+\"*SJ8c'&%&flo atG6#\"\")%'MatrixG%,rectangularG%.Fortran_orderG7\"\"\"#;\"\"\"\"\"%; F4\"$+\"-F'6+\"*sL__'F*F.F/F0F1F2F3F6-F'6+\"*3f9c'F*F.F/F0F1F2F3F6" }} }{SECT 0 {PARA 5 "" 0 "" {TEXT -1 36 "3D Plot of Points from Three Cla sses" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "theta := -45: phi := 45:\nplotPoints(P,theta,phi,FRAMED);" }}{PARA 13 "" 1 "" {GLPLOT3D 400 300 300 {PLOTDATA 3 "6+-%'POINTSG6bq7%$!3gP2nD48A5!#<$!32qR%p[U;)) *!#=$!32%>&y:\"*=^jF,7%$\"3z4&G!fqqucF)$\"3,2QZg6*e^#F)$\"3G!Q$eb%o3d \"F)7%$!3?fI!>CG#pbF)$!3M^XIM2ay(3\" !#;$!3[\"R%3OV7%$\"3D#>It9[!fDF)$!37o#\\7z[*y5F)$ !3Usu2s%>ky\"F)7%$\"36]'Ga!QcGlF)$\"3%oUTN.w#yJF)$\"3?+oD**oic?F)7%$!3 \"Ra@zrGK:$F)$\"3%=+n3k&)*o\"=g#F)7%$!3kk\\@N`:9oF)$!3,p +;PgBaLF)$!3&3]Ew%)*=iBF)7%$\"3wwa'e%p5I9F@$!3_8w-6>k?LF)$!3ik)o.qK^. \"F)7%$!3e\")[7-/\\\">*>&4\"F,7%$!3e\"o_2IZq m%F)$\"3>oe)y)GBwZF)$\"3CB%zcr/*4=F)7%$!3)3H=&4\"e9H(F)$\"3a%e\"pzOS]? F)$\"3qQvk<(['>;F)7%$!3'yk<9L\"o'>(F)$\"3%y$)4^(eQ58F)$!3?b:^J\\ZC'*F, 7%$!3^6(obN()z?\"F@$!3Szk2\\Y-P:F)$!3%Riw()*>)3M%F,7%$!3S@,1:tu!G$F)$! 31[l.F\\*o;%F)$!3Ut*\\Img#ph$F,7%$!3Kj:, \"\\M!*o&F)$\"3)3Iz'H+EQ9F)$\"3+$*eJc`X(\\\"F)7%$\"3Lo'yx71?L\"F)$\"36 \\&y-q]T;*FE$\"3yL_kcS0!>%F,7%$!3,_*RXG497$F@$\"3%\\:?'==!)\\FF)$!3/p& \\5VSES&F,7%$!3%\\vQ!3!*eWAF)$\"3u**zfEXgDWF)$\"3a!GDdvpMx#F)7%$\"31.e uO'\\)y>F@$!3:v6`:iViJF)$!3=`,`&yJCY\"F)7%$\"3qY=_cHaH>F)$!3K,h#p&R=p7 FE$!3)p<*>o*y<'=F,7%$!37G4/!oJl!>F@$!3ok&G<^5jX#F,$\"3s2+ko:o[RFE7%$\" 3[8\\b>)3RA\"F)$!3#yCeX=n3M\"F)$!3hKJyyk?j8F)7%$!3WAa\"))*)>=(GF@$\"3$ ef&yA-namF,$!3Nt7WSfuo:F)7%$!3K3`=sZ\">=\"F@$!3ywQD$Q*)3E#F)$!3,qJGF,$\"39k`Ea\")4D8F)7%$!3))4!fv Q.V>$F)$\"3U*)))z5i%F)$!3%fC.OXSI>&F,7%$\"3D2%pFdmp'[F,$\"3A_(yn! GX*p*F,$\"3(\\ag>B&zg$)F,7%$!3K`PCgCW!>'F)$!3w!\\O:)37'=(F,$\"30M*fZ_: %HaF,7%$\"3?Nl2q\\RL6F@$!3^\\1%3QA=#yF,$!3gPSlZ8*oL#F)7%$!3?8)*zqLCtup7F)7%$!3?3@%)Q@INgF)$!3QNNar]3x:F)$!3nHPl MB'z`'FE7%$\"3sof78sPdK.fhF,$!34)z^sGM6<)FE7%$!3%y$e'Hc&z\"*=F)$!3;\\zZ7Mn;TF)$ \"3yA<\\2,e!y$F,7%$\"35T!e\\hgsk*F)$\"3)o'Q12*y%)***F,$\"3zp?IF3mt5F)7 %$\"3SW:mhy5&\\#F@$!3c#)3#)>+!\\8#F,$!3\"3NSMbFTD+EF)$!3ID sH(QJC!=F)$!3i$zVvLN&>,+[\"F)7%$\"3[duCl$R'zOF)$!3Tm\"zq^XX_\"F)$!3eKCNr<_B')F,7%$\"3$RAU9a @UX\"F@$!3tJqMbg>sF,$\"3Rd')zQRF\")=F,7%$\"3gA_^J[2\\cF)$\"3 +z4(\\&f5^EF)$\"3qQp7vTO4LF)7%$\"38bNf#)[Y06F@$!39,L'\\w)H<_F)$!3Eg1kX 9(\\c%F)7%$!3qC2yT5.;>F,$\"3!=+da\")[\"=LF)$!3k#R5:Ew&[7F,7%$!3a!)4X*e F_[*F)$!3mwpw(Qv-7\"F)$!3)fx.3l.m&=F)7%$!3KZe)fI;Fc(F)$\"3ra*p&HD_,%)F ,$!3(f7p#o6?\")=F,7%$\"3XT>n$)4%>W#F)$\"3qhC&)[aVi=F)$\"3G4#Gj>JEV#FE7 %$\"3aWFM92bwpF)$!3IuJkMZ;HtF,$!3)*\\@))QR#eN(R__\"F@$\"3X\"=JR)Qv_QF,$!3V<(H 2peY&**F,7%$!39X>)3Sb=,#F@$\"3;'GKXc[(QRF,$!3j&fW_'[**yYF,7%$!3u!o,lBY (y\")F)$\"3I/sYM91[FF)$\"3J\\O(eH)R5GF)7%$!3,'z8\"R\"zE@\"F@$\"3-J]64< &ec#F)$\"3![@ue`vF1)F,7%$\"3(p)oV4#4@A\"F,$\"3Qs?&e/(36KF,$\"3jOx`)f>N 6\"F)7%$\"3%*QV(HR%)3B%F)$\"3#)HEDs]g$4)F,$\"3QHS6)=C\\7$F,7%$\"3E$p%y %>RF%HF)$!3M#*\\OK'pm!QF,$!3Xz6-z/^q&)F,7%$\"3slK5(yKxA\"F@$\"3oS*o&o: /Q;F)$\"33[;jm02u#*F,7%$\"3A:7-hxU*\\#F)$!3D\\=.s++NdF)$!3?\\50.q(zR\" F)7%$\"3r5=I*)*e-U(F)$!3aa\"*Qd4u&3#F)$!3pH=l]6L\\&*F,7%$!3s3lG/N[$H\" F@$!3k%HUz2Kq6\"F)$!3dJ*4&yF)zE#F)7%$!3x7@aDa;g8F@$!3+P'HjEmcI'F)$!3Y# [-Y,RsS#F)7%$\"3p-]2RGu>7F)$!3eY48)o2$)f'F,$!3Vot'G]R'R8F)7%$!3PP8Y11w :XF)$!3J(**4*RMB`WF)$\"3C];`:H\"QV%F,7%$\"3)>**3[y4,!GF)$\"3T@S&4&ReX< F)$\"3&41SNrMAY\"F,7%$!3U$\\zj'p!f;'F)$!3:-&4Gc!><:F)$!3KKm.rirYmF,7%$ !3i5bi$3#46XF)$!3I\\$3LPYF,7%$!30/c5WnP/hF)$\"3G&zVV0gX<&F,$\"3V)RYWhr*>$ *F,7%$!3(p2Pf\\*yf>F@$!38ZP#e&oRtHF)$!3]-`lm:936F)-%&COLORG6&%$RGBG$\" #5!\"\"$\"\"!FhgmFggm-%'SYMBOLG6$%'CIRCLEGFegm-F$6bq7%$\"3bg?wTt]>GF@$ \"3'\\)\\U0;'RI$F)$\"3x,M>()z-!f$F@7%$\"3_)*3+c)*)R_#F@$\"3m()Qygh>@WF )$\"3ViD\"y)RZwNF@7%$\"3())R>&>_yn=F@$\"339@fOz'Hc#F)$\"3\\:dpv6*3t#F@ 7%$\"3Vlk*\\TN&o6F@$\"3!ps%zy<@JcF)$\"3))=M2+G5GBF@7%$\"3Xw\\([r?]T#F@ $\"3O#y*f[LVW8F)$\"3!Hh'HnY7%[$F@7%$\"3OX')GG0[cBF@$\"3k\\'Hj)or'z&F)$ \"3Bh#=Q&o@4KF@7%$\"3ES2Hk1Tth0\\22CL#F@$\"3y<-%QJCe!RF)$\"3RMOv#)[->KF@7%$\"3XOSrC)H7X#F@$\"3 92D^$=zt>%F)$\"3R1***>$R'3E$F@7%$\"3?0M7Tk[6AF@$\"3'3RR;^zml(F)$\"3_t% HScx.@$F@7%$\"3a9=2<0))y>F@$\"3W[<$>J\"pgZF)$\"3)*H]B\\p]k8S(Q\")R#F@$\"3 RO<*fiHfg'F)$\"3*>e*fx#\\H]$F@7%$\"3!4![&zTlr+#F@$\"3[rs&3]6*G**F,$\"3 *))4![m()=xIF@7%$\"3G5P0wkwHEF@$\"3%y]?+,U9<)F)$\"3h'z(*yarAT$F@7%$\"3 +_has%e?R'F)$!3e>x\"H!Q)Gr\"F)$\"3H(G&)3&RQ/?F@7%$\"3\"oma4/rN'>F@$!37 )zxA#[[`ZFE$\"3QGpbs$\\R)GF@7%$\"3#z5l`*e:]:F@$!3?so]$oW*omFE$\"35'3Ev S\"3*z#F@7%$\"3'\\$*yw-QVb\"F@$\"3b%*pco8jy6F@$\"32wWd=)*RgBF@7%$\"3)Q $*R]L#z'\\#F@$\"3sE#RQ)>8rzF)$\"3,ut>V%**RT$F@7%$\"3'pt'3K80MEF@$\"3'4 <)*)z.Z#3#F)$\"3O%*p$G&o)Rl$F@7%$\"3uXo\"=*G([g\"F@$\"3@wn7MI9kmF)$\"3 VP31d)R;t#F@7%$\"3og8Wq#GAw#F@$\"3V8*Rw*))feNF)$\"3s%G&>Ymb&y$F@7%$\"3 u'H@%\\0uFCF@$\"3j9bNh8#Q<(FE$\"3XDIg9%3/_$F@7%$\"3PD4[;?!\\e\"F@$\"3 \"RZ3,^RTQ'F)$\"3;l1YVJ0#R#F@7%$\"3_E5$puM:\"HF@$\"3Hk*4.xxt$[F)$\"3s= Th[2X'p$F@7%$\"3CRg%=22lk\"F@$\"3uD/]d$=PU\"F)$\"3eh2y42vPGF@7%$\"3!>- 6*ybJ1BF@$\"3Ch`OpWp!y)F)$\"3+yD,1d%4L$F@7%$\"3eZM)4n`*>F)$\"3w6e*e+$eVPF@7%$\"3#eX;2G!GUE F@$\"3\\mn-*)zGjzF)$\"37*[k&z(4^k$F@7%$\"3]%>g&[LjHGF@$!3)RYZ'4S'G$=F) $\"3K#))QV-lXU$F@7%$\"3Q.(o:6`_z\"F@$\"3G,'>guU%*R'F)$\"3w**Q>76q$*HF@ 7%$!3M%y&Q8$4))3\"F)$\"3a%=$GT*)G9AF)$\"3L2h)Qvb-B\"F@7%$\"3Enuue!*)Qo #F@$\"36V4Ef3PwDF)$\"31b%R;7F&fPF@7%$\"3\"3hq(Rc_))=F@$\"3e>HFwG3u[F)$ \"31i0Ss3$Qv#F@7%$\"3/4bIS]cg=F@$\"3.]x`WLUYeF)$\"3kZ\\hu?>$z#F@7%$\"3 a[D5tn.P;F@$\"3Tir6j>$[m(F,$\"3s\"\\hy(f]_FF@7%$\"33zp\\]CM5:F@$\"3%H* 4X-SR`eF)$\"38,tEAD69EF@7%$\"3.:NDFKwX9F@$\"3^zD1!e#=nRF)$\"3yE_t CF@7%$\"3f)3)>bbXTEF@$\"3&GnQ0l`Sd'F)$\"3%e9CB12>[$F@7%$\"3%)e)R:23;ncF)$\"35!G]%3l.yCF@7%$\"3%f[;HJJg4#F@$\"3+'z sU(*oO+$F)$\"3I$\\ZJ;1#))HF@7%$\"3-.7M&48as#F)$\"3F@8fP!ff2(F)$\"3[;VU :`7Z;F@7%$\"3f4H[OH$)yGF@$\"3/!*Rjt'>'*4#F,$\"3Qi8mCf:=QF@7%$\"3g?$*QS* )F,$\"3rROqZU/xNF@7%$\"3LOull!)p+>F@$\"3h)))3[DJ-N'F)$\"3c0E?VwtjFF@7% $\"3'=?ia3\"o>7F@$\"3YP7QyKxZIF)$\"3#Hf\"*e-FY[#F@7%$\"3R@K`T5Q')=F@$ \"35n!4xllq-\"F@$\"3#QN77w<<4$F@7%$\"36]X\"*y19jBF@$\"3!zu#Q&*)o]Q#F)$ \"3Uj#)H4adVKF@7%$\"3wqL?&)*4l0\"F@$\"3/H6&pr[]@&F)$\"33MN:qTObAF@7%$ \"3FGv%QEy\")Q\"F@$\"3//?$)QW;J&)F)$\"3:xz*oCQ%pDF@7%$\"3'4D3/y@-`\"F@ $!3@T?U#f4oW#F)$\"3QUvzkO>)f#F@7%$\"3l_OtAyUs9F@$!3a`Tu[7\"G#RF,$\"3P* 3EJh9Sg#F@7%$\"3SM$>\"\\jW)=#F@$\"3#o'oF)[ZDH%F)$\"3JBR)e>'>gIF@7%$\"3 _&=\"3+D&RR#F@$!3I5RX\"G=/g\"F)$\"3?-)o61p?`$F@7%$\"3)yN3+F3R6\"F@$\"3 (y$eP*)R>q?F)$\"3ol1ONZHXBF@7%$\"3&\\G4I/5*z@F@$\"3LL[F]dkB)*F)$\"3%4n l$y%\\;4$F@7%$\"3]rq=wsXxQ=F@$\"3*ev(y:u=@ 8F)$\"3'*zYk%ziN\"GF@7%$\"3wNBo=9CHBF@$\"3N[3B34X'[$F)$\"3n>g#H<7J3$F@ 7%$\"3Y8qH>fjb6F@$\"3>%GW*Hs:[%)F,$\"3vMcdHQl(Q#F@7%$\"3NISPpA]AGF@$\" 3_HxMtg!Ri%F)$\"3D^!QWAb7o$F@7%$\"3um7iJ#Q/_\"F@$!3-6Cb')**Q:QF)$\"3% \\!3W\"=C2W#F@7%$\"3:)3mY(>/D9F@$\"3?K!G1BYgt&F)$\"3j]EU,g%yM#F@7%$\"3 U)zfu]`ci\"F@$\"3[Q;H=#)[KcF)$\"3=4NNx1azEF@7%$\"3'=)yg#*zO&G#F@$\"3iN .0N(e'[GF)$\"3?7U\\8k_CHF@7%$\"3]DAN5LHZ;F@$\"3w2?N\"fS!oYF)$\"3NMKdfj JGGF@7%$\"3i!=n+WJ)Q@F@$\"3r1!oB7x9<)F)$\"3=Ms))e%f@9$F@7%$\"3oLh'=xA^ -#F@$\"3kf[&\\b8;#HF)$\"36DjcL(G35$F@7%$\"35ZWUOvUTkF)$!3r=;W4xQi#)F,$ \"3y#3hO.*)o!>F@7%$\"3K'*)RUS*[B:F@$\"3(3UB%Ro*o5$F)$\"3@I4r]jwzDF@7%$ \"3G9>W*[(o,GF@$\"3Q8hTaE>bxF)$\"3ad>-B,M*f$F@7%$\"3;J^**>h4j?F@$\"3l2 ?rHOPJ9F)$\"3Pem1Z8b3JF@7%$\"3%G*f=M97 )\\#F@7%$\"3(Ht(oh;8rIF@$\"3$o;K7+g2#pF)$\"3kpyT3ApHPF@7%$\"3s0*Rb/T+h $F@$\"3)=\"yT'eWdI$F)$\"36]!))GwNtS%F@7%$\"37s(F,$\"3k&>ud-+et$F@7%$ \"3)4Y0\\#Gg.?F@$\"3#)))fJxeU$3%F)$\"3NJwRYs.&)HF@7%$\"3zBzR6z9&y#F@$ \"3Psy8!oL+Y&F)$\"3+j&ogTP,'QF@7%$\"3Sb`y'z(yg7F@$\"331w(z:%*3G&F)$\"3 5@k*o]$3KCF@7%$\"3[SKCFNlVEF@$\"3x]BC5I,.;F)$\"3A`0s6#zJk$F@7%$\"3;%Gd v^H%z?F@$\"3B'opNcQR['F)$\"3o\"4ciM;T0$F@7%$\"3scT$[bI=m$F@$\"31l7Q1+O Q5F@$\"3GYErALM3UF@7%$\"3faG;'eZqn7w80(F@7%$\"3#y(zr)p0c*eF@$\"3Dp\")eto=HLF@$\"3Nc[`3t)[x'F@7%$ \"3ZZabik_2[F@$\"3ss&)z]oCBpF)$\"3Gp%z[*z'o3(F@7%$\"3g'o#))Q1*)R\\F@$ \"3;IJb#=_$[=F@$\"3`cW*[;9#opF@7%$\"3*Rnb17n+w&F@$\"3]CrX6;LTDF@$\"3g