{VERSION 5 0 "IBM INTEL NT" "5.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 "" -1 256 "Helvetica" 1 14 128 0 0 1 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "" -1 257 "" 0 24 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 258 "Helvetica" 0 1 128 0 0 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 259 "" 0 1 255 0 0 1 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 0 1 0 0 128 1 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 261 "" 0 1 0 0 128 1 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 262 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {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 "Title" -1 256 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 1 2 2 2 1 1 1 1 }1 1 0 0 12 12 1 0 1 0 2 2 19 1 } {PSTYLE "Author" -1 257 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 8 8 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 258 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 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Title" -1 259 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }3 1 0 0 12 12 1 0 1 0 2 2 19 1 } {PSTYLE "Author" -1 260 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 1 2 2 2 1 1 1 1 }3 1 0 0 8 8 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 261 1 {CSTYLE "" -1 -1 "Courier" 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 "Normal" -1 262 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 "Normal" -1 263 1 {CSTYLE "" -1 -1 "Times" 1 14 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 "Normal" -1 264 1 {CSTYLE "" -1 -1 "Courier" 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 2" -1 265 1 {CSTYLE "" -1 -1 "Ti mes" 1 12 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 }} {SECT 0 {EXCHG {PARA 256 "" 0 "" {TEXT 257 30 "MLC Lab Visit - Lab 08 \+ - Maple" }}{PARA 0 "" 0 "" {TEXT 256 45 "Mth 355 (a.k.a. Mth 399) Mar \+ 5, 2003 Maple 7" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 258 16 "Bent \+ E. Petersen" }{TEXT -1 0 "" }}{PARA 264 "" 0 "" {TEXT 260 0 "" }} {PARA 264 "" 0 "" {TEXT 261 22 "petersen@math.orst.edu" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 263 "" 0 "" {TEXT 259 181 "There are 2 prob lems below. Problem solutions are due Mar 12, 2003. Email your solutio ns to me as Maple worksheet attachments. Your worksheet must execute c orrectly for full credit." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 196 "In this week's lab we investigate Maple's linear \+ algebra package, linalg. Note though that Maple has another very exten sive linear algebra package, LinearAlgebra, that you may want to inves tigate." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "with(linalg):" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 8 "Matrices" }} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 160 "M atrices can be entered by listing their rows or by giving the size and then listing the entries in the matrix row-wise. Here I enter the mat rix A in both ways." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "A:=matrix([[1,2,3],[4,5,6]]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "A:=matrix(2,3,[1,2,3,4,5,6]);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 71 "It is also possible to define a matrix by specifying an index function: " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "B:=matrix(3,3,(i,j)->3*(i-1)+j);" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 27 "Some matrices are \+ built-in:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "toeplitz([x,y,z]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "vandermonde([x,y,z]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "hilbert(3);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 77 "You can of course al so construct a Hilbert matrix by using an index function:" }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "matr ix(3,3,(i,j)->1/(i+j-1));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 32 "Band matrices are easily entered" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "band([x,y,z],5);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 39 "You can even construct random matrices:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "randmatrix(4,4,symmetric);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 64 "Diagonal matrices may be entere d by using the diag() procedure:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "diag(1,2,3);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 155 "Matrices are added in the usual way but the result is not immediately evaluate d (unless requested). The procedure evalm() may be used to evaulate ma trices." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "A:=matrix(2,2,[1,2,3,4]): B:=matrix(2,2,[5,6,7,8]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "A+B;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "evalm(A+B);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 83 "If we use matadd() to do the \+ addition then the result is automatically evaluated." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "matadd(A, B);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 65 "If we add a scalar to a matrix it is added to the diagonal term s:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "evalm(A+x);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 61 "Scalar multiplication works much as exp ected (but see below):" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "evalm(3*A);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 251 "When Maple simplifi es symbolic expressions it assumes that multiplication is commutative. In order to indicate that matrix multiplication is not commutative an d to prevent erroneous simplification it is necessary to use &* for \+ matrix multiplication." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "evalm(A*B-B*A);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "evalm(A&*B-B&*A);" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 146 "Note the erroneous mul tiplication above returned a scalar. This may happen in other contexts where the result is zero and must be guarded against." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "0*A;" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 74 " The scalarmul() procedure solves this problem, but is inconvenient to \+ use." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "scalarmul(A,0);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 83 "Another context where scalars unex pectedly pop up is in raising matrices to powers:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "A^0;" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 11 "Be careful!" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 7 "Vectors" } }{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 278 " Vectors in Maple are ordered n-tuples. There is no concept of row or c olumn vectors. If you want row or column vectors you can of course use 1-by-n or n-by-1 matrices but aware that in Maple even for these matr ices the entries have two subscripts (one of which happens to be 1)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 124 "It is \+ possible to multiply matrices and vectors. Maple simply treats the vec tor as a row or a column vector as appropriate. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "A:=matrix(2 ,3,[a,b,c,d,e,f]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "xv:=v ector([1,2,3]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "evalm(A \+ &* xv);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "yv:=vector([1,2] );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "evalm(yv &* A);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 " " {TEXT -1 17 "Stacking Matrices" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 47 "We can add a vector as a new column \+ to a matrix" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "A:=matrix(2,2,[1,2,3,4]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "xv:=vector([5,6]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "augment(A,xv);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "augment(xv,A);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 50 "We can also add a vector as a new row to \+ a matrix." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 18 "stackmatrix(A,xv);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "stackmatrix(xv,A);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 103 "The procedures augment() and stackmatrix() may also be used with matrices of appropriate dimensio ns:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "B:=matrix(2,2,[5,6,7,8]);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 13 "augment(A,B);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "stackmatrix(A,B);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 72 "The augment() procedure is usef ul for defining a matrix column-by-column" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "x1:=vector([1,2]); x 2:=vector([3,4]); C:=augment(x1,x2);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 70 "The diag() procedure (mention ed above) may also be use with matrices" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "diag(A,B);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 47 "or even w ith a mixture of matrices and scalars." }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "diag(A,x);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 80 "The gener al command for defining matrices with matrix entries is bloackmatrix( )" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "blockmatrix(2,2,[A,B,B, matrix(2,2,[0,0,0,0]) ]);" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 " " {TEXT -1 36 "Elementary row and column operations" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 92 "Maple has a built -in command, rref, for computing the row reduced echelon form of a ma trix." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "A:=matrix(3,4,(i,j)->1+abs(i^2-j^2) );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "rref(A);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 107 "Now suppose we want to r ow reduce A ourselves. We'd want to add -4 times the first row to th e second row:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "A1:=addrow(A,1,2,-4);" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 344 "Note I assigned the re sult to A1 so I would be able to refer to it in the next step. An alte rnative approach is to use the ditto operator, %, but it is risky to u se except within the same line, because it refers to the previous expr ession evaluated, which may not be the previous expression on your wor ksheet if you have done a lot of editing. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 57 "Next we will add -9 times the f irst row to the third row:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "A2:=addrow(A1,1,3,-9);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 337 "At this \+ point we should multiply the third row by -1/30 and the add 15 times t he new third row to the second row and -4 times the new third row to t he first row. We will also want to swap the second and third rows to p ut the pivot in the second row. Here it is safe to use the ditto opera tor because we keep all the comamnds on one line." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "mulrow(A2,3 ,-1/30): addrow(%,3,2,15): addrow(%,3,1,-4): A3:=swaprow(%,2,3);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 34 "No w the remaining steps are clear." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "mulrow(A3,3,1/10): addrow(%, 3,1,5/3): A4:=addrow(%,3,2,-8/3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 27 "Systems of \+ Linear Equations" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 85 "A system of linear equations Ax = b may be solved \+ by using the linsolve() procedure" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "A:=matrix(3,5,(i,j)->abs(i^2 -j^2) );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "b:=vector([2,3, 5]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "soln:=linsolve(A,b) ;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 189 "Notice here Maple returns a solution containing two arbitrary par ameters. The initial underscore in the arbitrary parameters is somewha t ugly. You can get of it by substitution if you wish." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "subs(_ t[1]=s,_t[2]=t,evalm(soln));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 101 "Note we had to apply evalm() to soln i n order to have an evaluated expression in which to substitute." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 38 "Consider now an overdetermined system: " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "B:=transpose(A);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "c:=vector(5,[]); evalm(c);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "M:=augment(B,diag(seq(1,k=1..5)));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "R:=rref(M);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 115 "There is no solutio n unless c satisfies the compatability condition implied by the last two rows: To see this let" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "C:=submatrix(R,1..5,coldim(B)+1..co ldim(M));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 44 "Then C &* B is the row reduced form of B." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "eval m(C &* B);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 92 "We see therefore that the last two rows of C &* c must b e zero in order to have a solution." }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "evalm(C &* c); eqn1:=%[4]= 0; eqn2:=%%[5]=0;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "F:=gen matrix([eqn1,eqn2],convert(evalm(c),list));" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 64 "We can now find all vec tors c for which Bx=c has a solution." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "compat:=linsolve(F,v ector([0,0]));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 18 "Here's an example:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "c:=subs(_t[1]=7,_t[2]=0,_ t[3]=1,evalm(compat));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "l insolve(B,c);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 73 "Suppose we take a c which does not satisfy the compa tibility condition:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "c:=vector([seq(1,k=1..5)]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "linsolve(B,c);" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 92 "Maple indicates th e lack of a solution by returning nothing, that is, an empty solution \+ set." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 21 "Functions o f Matrices" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 83 "We can apply a function to each component of a matrix by \+ using the map() procedure." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "A:=matrix(2,2,[1,2,3,4]);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "map(exp,A);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 75 "Unfortuna tely exp(A) has the same meaning - it is not the exponential of A." }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "evalm(exp(A));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 79 "If we rea lly want the exponential of A we must use the exponential() procedure. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "evalf(exponential(A));" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 51 "There are also some stand ard functions of matrices." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "rank(A);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 13 "transpose(A);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "inverse(A);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "B:=matrix(3,3,[1,2,3,4,5,6,7,8,9]);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 9 "trace(B);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "det(B);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "permanent(B); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 131 "Fortunately polynomial evaluation at square matrices works as exp ected, that is, the polynomial is not evaluated on each component." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "p:=x->x^2-4*x-7;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "p (B); evalm(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "q:=charpo ly(B,z);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "subs(z=B,q); ev alm(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "C:=matrix(5,5,[1 ,2,3,4,5,2,3,4,5,6,3,4,5,6,7,4,5,6,7,8,0,0,0,0,9]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "sort(charpoly(C,z),z); r:=sort(minpoly(C, z),z);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "subs(z=C,r); eval m(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 26 "Positive Definite Matrices" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 45 "Maple can identify positive definite matrices" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "B:=matrix(3,3,[1,2,3,2,5, 5,3,5,12]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "definite(B,p ositive_def);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 64 "For a positive definite matrix we have a Cholesky fact orization:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 15 "C:=cholesky(B);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 95 "The matrix lower triangular C \+ has the property that C &* transpose(C) = B. Let's verify it:" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "evalm(C &* transpose(C));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 28 "Eigenvalues and Eige nvectors" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "A:=matrix(3,3,[- 1,2,2,2,2,2,-3,-6,-6]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 " eigenvals(A);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 146 "Since A has distinct eigenvalues it is diagonizable . The procedure jordan() which returns the Jordan canonical form indic ates this fact as well." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "jordan(A);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 119 "To find the similarit y transform which actually diagonalizes A we use the jordan() procedur e with an optional argument;" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "jordan(A,'S');" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "evalm(S);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "evalm(inverse(S) &* A &* S);" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 81 "If the Jordan form is not diagonal then A is not diagonizable. Here's an example:" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "A:=matrix(3,3,[0,-1,3,-4,-1,8,-2,-1,5]);" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 24 "jordan(A,'S'); evalm(S);" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 132 "Since the Jordan \+ form of A is not diagonal we know A is not diagonizable. Of course we \+ still have the expected similarity transform:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "evalm(inver se(S)&*A&*S);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 51 "Eigenvectors may be computed by using eigenvects()." } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "eigenvects(A);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 383 "The return value here indicates that 2 is an e igenvalue of algebraic multiplicity 1 with eigenvector [1,4,2] and 1 i s an eigenvalue with algebraic multiplicity 2 and eigenvector [1,2,1]. The presence of only 1 eigenvector indicates that geometric multiplci ty of the eigenvalue 2 is only 1, and so not equal to the algebraic mu ltiplicity. Thus we see again that A is not diagonizable." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT -1 8 "Problems" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 262 9 "Problem 1" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 26 "Show the matrix A given by" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "A:=matrix(3 ,3,[0,-1,3,-4,-1,8,-1,-1,5]);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 69 "is diagonizable. Find a matrix S such that S^(-1) A S is invertible." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 263 9 "Pr oblem 2" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 178 "The singular values of a matrix are the square roots of the eigen values of transpose(A) &* A. They are real. Maple has a procedure sin gularvals() to compute the singular values." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 338 "Write a procedure that returns the largest singular of a matrix divided by the smallest singular val ue (use floating point - the symbolic expression when they exist can b e quite awkward). Note the calculation of the singular values may resu lt in some extraneous imaginary parts due to roundoff. You will have t o allow for this posibility." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 114 "For a few sample matrices A compare your resul t with the number returned by cond(A,2). Care to make a conjecture?" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 95 "You may find it useful to know how to compute the real and imaginary \+ parts of a complex number:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "Re(1+2*I); Im(1+2*I);" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "0 6 0" 11 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }