#1: " ----------[ D e r i v e ]---------- " User #2: " ---------- Initialization ---------- " User #3: " ---------- Matrix Theory ---------- " User #4: " Extract the superdiagonal => [2, 6] " User / 1 2 3 \ | | #5: q_ := | 4 5 6 | User | | \ 7 8 9 / VECTOR(q_ , j, 2, DIMENSION(q_ )) #6: j - 1,j 1 User #7: [2, 6] Simp(#6) #8: " (2, 3)-minor => [[1, 2], [7, 8]] " User // 1 2 3 \ \ || | | #9: MINOR|| 4 5 6 |, 2, 3| User || | | \\ 7 8 9 / / / 1 2 \ #10: | | Simp(#9) \ 7 8 / User #11: " Create the 7 x 6 matrix B from rearrangements of the elements of the 4 x 4 " User #12: " matrix A (this is easiest to do with a MATLAB style notation): " User #13: " B = [A(1:3,2:4), A([1,2,4],[3,1,4]); A, [A(1:2,3:4); A([4,1],[3,2])]] " #14: " => [[12 13 14|13 11 14], " User #15: " [22 23 24|23 21 24], " User #16: " [32 33 34|43 41 44], " User #17: " [--------+--+-----] " User #18: " [11 12 13 14|13 14], " User #19: " [21 22 23 24|23 24], " User #20: " [ +-----] " User #21: " [31 32 33 34|43 42], " User User #22: " [41 42 43 44|13 12]]. See Michael James Wester, _Symbolic Calculation " User #23: " and Expression Swell Analysis of Matrix Determinants and Eigenstuff_, Ph.D. " User #24: " dissertation, University of New Mexico, Albuquerque, New Mexico, December " #25: " 1992, p. 89. " User / 11 12 13 14 \ | | | 21 22 23 24 | #26: a := | | User | 31 32 33 34 | | | \ 41 42 43 44 / User APPEND(APPEND_COLUMNS(a SUB SUB [2, 3, 4], a #27: [1, 2, 3] [1, 2, 4] SUB SUB [3, 1, 4]), APPEND_COLUMNS(a, APPEND(a SUB SUB [1, 2] [3, 4], a SUB SUB [3, 2]))) [4, 1] / 12 13 14 13 11 14 \ | | | 22 23 24 23 21 24 | | | | 32 33 34 43 41 44 | | | #28: | 11 12 13 14 13 14 | Simp(#27) | | | 21 22 23 24 23 24 | | | | 31 32 33 34 43 42 | | | \ 41 42 43 44 13 12 / #29: a := User #30: " Create a block diagonal matrix " User User #31: "diag([[[a, 1],[0, a]], b, [[c, 1, 0],[0, c, 1],[0, 0, c]]])" #32: " => [[1 1], [1 0]] " User // 7 11 \ \ #33: MOD|| |, 2| User \\ 3 8 / / / 1 1 \ #34: | | Simp(#33) \ 1 0 / #35: " => [[-cos t, -sin t], [sin t, -cos t]] " User / COS(t) SIN(t) \ #36: q_ := | | User \ - SIN(t) COS(t) / /d \2 #37: |--| q_ User \dt/ / - COS(t) - SIN(t) \ #38: | | Simp(#37) \ SIN(t) - COS(t) / User #39: " => [[(a + 7) x + (2 a - 8) y, (3 a - 9) x + (4 a + 10) y, " #40: " (5 a + 11) x + (6 a - 12) y]] " User / / 1 3 5 \ / 7 -9 11 \\ #41: [ x y ] . |a*| | + | || User \ \ 2 4 6 / \ -8 10 -12 // Simp(#41) #42: [ x*(a + 7) + y*(2*a - 8) x*(3*a - 9) + y*(4*a + 10) x*(5*a + 11) + y*(6*a - 12) ] #43: " Matrix norms: infinity norm => 7 " User #44: "norm([[1, -2*#i], [-3*#i, 4]], inf)" User User #45: " Frobenius norm => (a^2 + b^2 + c^2)/(|a| |b| |c|) (a, b, c real) " |/ a 1 1 \| || ----- --- --- || || b*c c b || || || || 1 b 1 || #46: || --- ----- --- || User || c a*c a || || || || 1 1 c || || --- --- ----- || |\ b a a*b /| 2 2 2 a + b + c #47: -------------- Simp(#46) |a*b*c| User #48: " Hermitian (complex conjugate transpose) => [[1, f(4 + 5 i)], [2 - 3 i, 6]] " User #49: " (This assumes f is a real valued function. In general, the (1, 2) entry " User #50: " will be conjugate[f(4 - 5 i)] = conjugate(f)(4 + 5 i).) " #51: F(x) := User // 1 2 + 3*#i \ \ #52: CONJ|| |`| User \\ F(4 - 5*#i) 6 / / #53: f := User / a b \ #54: m := | | User \ 1 a*b / User #55: " Invert the matrix => 1/(a^2 - 1) [[a, -1], [-1/b, a/b]] " -1 #56: minv := m User #57: minv User / a 1 \ | -------- -------- | | 2 2 | | a - 1 1 - a | #58: | | Simp(#57) | 1 a | | ------------ ------------ | | 2 2 | \ b*(1 - a ) b*(a - 1) / #59: m . minv User / 1 0 \ #60: | | Simp(#59) \ 0 1 / #61: m := User #62: minv := User User #63: " Inverse of a triangular partitioned (or block) matrix " User #64: " => [[A_11^(-1), -A_11^(-1) A_12 A_22^(-1)], [0, A_22^(-1)]]. " User #65: " See Charles G. Cullen, _Matrices and Linear Transformations_, Second " #66: " Edition, Dover Publications Inc., 1990, p. 35. " User #67: a11 :epsilon Nonscalar User #68: a11 Simp(#67) #69: a12 :epsilon Nonscalar User #70: a12 Simp(#69) #71: a22 :epsilon Nonscalar User #72: a22 Simp(#71) / a11 a12 \-1 #73: | | User \ 0 a22 / / -1 -1 -1 \ | a11 - a12 . a22 . a11 | #74: | | Simp(#73) | -1 | \ 0 a22 / #75: a11 := User #76: a12 := User #77: a22 := User #78: " LU decomposition of a symbolic matrix [David Wood] "User User #79: " [ 1 0 0] [1 x-2 x-3] [ 1 x-2 x-3 ] " User #80: " [x-1 1 0] [0 4 x-5] = [x-1 x^2-3x+6 x^2-3x-2 ] " User #81: " [x-2 x-3 1] [0 0 x-7] [x-2 x^2-8 2x^2-12x+14] " / 1 x - 2 x - 3 \ | | | 2 2 | #82: q_ := | x - 1 x - 3*x + 6 x - 3*x - 2 | User | | | 2 2 | \ x - 2 x - 8 2*x - 12*x + 14 / #83: " Reduced row echelon form [Cullen, p. 43] " User User #84: " => [[1 0 -1 0 2], [0 1 2 0 -1], [0 0 0 1 3], [0 0 0 0 0]] " / 1 2 3 1 3 \ | | | 3 2 1 1 7 | #85: q_ := | | User | 0 2 4 1 1 | | | \ 1 1 1 1 4 / #86: ROW_REDUCE(q_) User / 1 0 -1 0 2 \ | | | 0 1 2 0 -1 | #87: | | Simp(#86) | 0 0 0 1 3 | | | \ 0 0 0 0 0 / User #88: " => 2. See Gerald L. Bradley, _A Primer of Linear Algebra_, Prentice-Hall, " #89: " Inc., 1975, p. 135." User / -1 3 7 -5 \ | | #90: RANK | 4 -2 1 3 | User | | \ 2 4 15 -7 / #91: 2 Simp(#90) #92: " => 1 " User / 2*SQRT(2) 8 \ #93: RANK | | User \ 6*SQRT(6) 24*SQRT(3) / #94: 1 Simp(#93) #95: " => 1 " User / SIN(2*t) COS(2*t) \ | | #96: RANK | 2 2 |User \ 2*(1 - COS(t) )*COS(t) (1 - 2*SIN(t) )*SIN(t) / #97: 1 Simp(#96) User #98: " Null space => [[2 4 1 0], [0 -3 0 1]]^T or variant [Bradley, p. 207] " / / w \ \ |/ 1 0 -2 0 \ | | / 0 \ | || | | x | | | | #99: SOLVE|| -2 1 0 3 | . | | = | 0 |, [w, x, y, z]| User || | | y | | | | |\ -1 2 -6 6 / | | \ 0 / | \ \ z / / / @1 2*@1 - @2 \ #100:| w = @1 x = @2 y = ---- z = ----------- | Simp(#99) \ 2 3 / User #101:" Define a Vandermonde matrix (useful for doing polynomial interpolations) " / 1 1 1 1 \ | | | w x y z | | | #102:q1_ := | 2 2 2 2 | User | w x y z | | | | 3 3 3 3 | \ w x y z / #103:q2_ := DET(q1_) User #104:q2_ User Simp(#104) 3 2 2 2 2 3 #105:- x *(y *(z - w) + y*(w - z ) + w*z*(z - w)) + x *(y *(z - w) + 3 3 3 3 3 2 2 2 3 3 y*(w - z ) + w*z - w *z) - x*(y *(z - w ) + y *(w - z ) + 2 2 2 2 2 2 w *z *(z - w)) + w*y*z*(y *(z - w) + y*(w - z ) + w*z - 2 w *z) #106:" The following formula implies a general result: " User #107:" => (w - x) (w - y) (w - z) (x - y) (x - z) (y - z) " User #108:FACTOR(q2_) User #109:(w - x)*(w - y)*(w - z)*(x - y)*(x - z)*(y - z) Simp(#108) User #110:" Minimum polynomial => (lambda - 1)^2 (lambda + 1) [Cullen, p. 181] " / 17 -8 -12 14 \ | | | 46 -22 -35 41 | #111:q_ := | | User | -2 1 4 -4 | | | \ 4 -2 -2 3 / User #112:" Compute the eigenvalues of a matrix from its characteristic polynomial " #113:" => lambda = {1, -2, 3} " User / 5 -3 -7 \ | | #114:m := | -2 1 2 | User | | \ 2 -3 -4 / #115:q_ := CHARPOLY(m, lambda) User #116:q_ User 3 2 #117:- lambda + 2*lambda + 5*lambda - 6 Simp(#116) #118:SOLVE(q_ = 0, lambda) User #119:[lambda = 1, lambda = -2, lambda = 3] Simp(#118) #120:m := User User #121:" In theory, an easy eigenvalue problem! => lambda = {2 - a} for k = 1..100 " #122:" [Wester, p. 154] " User #123:EIGENVALUES((2 - a)*IDENTITY_MATRIX(100), z) User #124:[z = 2 - a] Simp(#123) User #125:" => lambda = {4 sin^2(pi k/[2 (n + 1)])} for k = 1..n for an n x n matrix. " User #126:" For n = 5, lambda = {2 - sqrt(3), 1, 2, 3, 2 + sqrt(3)} " User #127:" See J. H. Wilkinson, _The Algebraic Eigenvalue Problem_, Oxford University " #128:" Press, 1965, p. 307. " User / 2 1 0 0 0 \ | | | 1 2 1 0 0 | | | #129:q_ := | 0 1 2 1 0 | User | | | 0 0 1 2 1 | | | \ 0 0 0 1 2 / #130:EIGENVALUES(q_, z) User Simp(#130) #131:[z = 1, z = 2, z = 3, z = SQRT(3) + 2, z = 2 - SQRT(3)] User #132:" Eigenvalues of the Rosser matrix. This matrix is notorious for causing " User #133:" numerical eigenvalue routines to fail. [Wester, p. 146 (Cleve Moler)] " User #134:" => {-10 sqrt(10405), 0, 510 - 100 sqrt(26), 1000, 1000, " #135:" 510 + 100 sqrt(26), 1020, 10 sqrt(10405)} = " User User #136:" {-1020.049, 0, 0.098, 1000, 1000, 1019.902, 1020, 1020.049} " User / 611 196 -192 407 -8 -52 -49 29 \ | | | 196 899 113 -192 -71 -43 -8 -44 | | | | -192 113 899 196 61 49 8 52 | | | | 407 -192 196 611 8 44 59 -23 | #137:rosser := | | | -8 -71 61 8 411 -599 208 208 | | | | -52 -43 49 44 -599 411 208 208 | | | | -49 -8 8 59 208 208 99 -911 | | | \ 29 -44 52 -23 208 208 -911 99 / #138:EIGENVALUES(rosser, z) User Simp(#138) #139:[z = 0, z = 1000, z = 1020, z = 100*SQRT(26) + 510, z = 510 - 100*SQRT(26), z = 10*SQRT(10405), z = - 10*SQRT(10405)] #140:Precision := Approximate User #141:APPROX(EIGENVALUES(rosser, z)) User / -5\ #142:\z = - 8.65811*10 / Simp(#141) #143:Precision := Exact User #144:rosser := User User #145:" Eigenvalues of the generalized hypercompanion matrix of " User #146:" (x^5 + a4*x^4 + a3*x^3 + a2*x^2 + a1*x + a0)*(x^2 + x + 1)^2 " #147:" => {[-1 +- sqrt(3) i]/2, [-1 +- sqrt(3) i]/2, " User User #148:" RootsOf(x^5 + a4*x^4 + a3*x^3 + a2*x^2 + a1*x + a0)} " / -a4 -a3 -a2 -a1 -a0 0 0 0 0 \ | | | 1 0 0 0 0 0 0 0 0 | | | | 0 1 0 0 0 0 0 0 0 | | | | 0 0 1 0 0 0 0 0 0 | | | #149:q_ := | 0 0 0 1 0 0 0 0 0 | User | | | 0 0 0 0 0 -1 -1 0 0 | | | | 0 0 0 0 0 1 0 0 0 | | | | 0 0 0 0 0 0 1 -1 -1 | | | \ 0 0 0 0 0 0 0 1 0 / #150:EIGENVALUES(q_, z) User Simp(#150) / 1 SQRT(3)*#i 1 SQRT(3)*#i 5 4 #151:|z = - --- + ------------, z = - --- - ------------, z + a4*z \ 2 2 2 2 3 2 \ + a3*z + a2*z + a1*z = -a0| / User #152:" Eigenvalues and eigenvectors => lambda = {a, a, a, 1 - i, 1 + i}, " User #153:" eigenvectors = [[1 0 0 0 0], [0 0 1 0 0], [0 0 0 1 0], " User #154:" [0, (1 + i)/2, 0, 0, 1], [0, (1 - i)/2, 0, 0, 1]]^T " User EIGENVECTORS(a, e) := VECTOR(EXACT_EIGENVECTOR(a, RHS(e )), i, #155: i 1, DIMENSION(e)) / a 0 0 0 0 \ | | | 0 0 0 0 1 | | | #156:q_ := | 0 0 a 0 0 | User | | | 0 0 0 a 0 | | | \ 0 -2 0 0 2 / #157:e := EIGENVALUES(q_, z) User #158:e User #159:[z = a, z = 1 + #i, z = 1 - #i] Simp(#158) #160:EIGENVECTORS(q_, e) User Simp(#160) / / / | | | | | | | | |DIMENSION([[a, 0, 0, 0, 0], [0, 0, 0, 0, 1], |SOLVE|VECTOR| #161:| | | | | | | | | | | | \ \ \ // a 0 || || 0 0 [0, 0, a, 0, 0], [0, 0, 0, a, 0], [0, -2, 0, 0, 2]]) || SUM || 0 0 n_=1 || || 0 0 || |\ 0 -2 \ 0 0 0 \ \ | | 0 0 1 | | | | a 0 0 | - a*KRONECKER(m_, n_)|*[x1, x2, x3, x4] , m_, | | n_ 0 a 0 | | | | 0 0 2 / | m_,n_ / / a 0 0 0 0 \\ / | || | | 0 0 0 0 1 || | | || | DIMENSION | 0 0 a 0 0 ||, VECTOR|[x1, x2, x3, x4] , n_, | || | n_ | 0 0 0 a 0 || | | || | \ 0 -2 0 0 2 /| \ / / a 0 0 0 0 \\\ / / | ||| | | | 0 0 0 0 1 ||| | | | ||| | |DIMENSION([[a, 0, DIMENSION | 0 0 a 0 0 |||, SOLVE|VECTOR| | ||| | | | 0 0 0 a 0 ||| | | | ||| | | \ 0 -2 0 0 2 //| | | / \ \ 0, 0, 0], [0, 0, 0, 0, 1], [0, 0, a, 0, 0], [0, 0, 0, a, 0], SUM n_=1 // a 0 0 0 0 \ || | || 0 0 0 0 1 | [0, -2, 0, 0, 2]]) || | || 0 0 a 0 0 | - (1 + || | || 0 0 0 a 0 | || | |\ 0 -2 0 0 2 / \ m_,n_ \ / a | | | | 0 | | #i)*KRONECKER(m_, n_)|*[x1, x2, x3, x4] , m_, DIMENSION | 0 | n_ | | | 0 | | | \ 0 / 0 0 0 0 \\ / / a || | | 0 0 0 1 || | | 0 || | | 0 a 0 0 ||, VECTOR|[x1, x2, x3, x4] , n_, DIMENSION | 0 || | n_ | 0 0 a 0 || | | 0 || | | -2 0 0 2 /| \ \ 0 / 0 0 0 0 \\\ / / ||| | | 0 0 0 1 ||| | | ||| | |DIMENSION([[a, 0, 0, 0, 0], [0, 0 a 0 0 |||, SOLVE|VECTOR| ||| | | 0 0 a 0 ||| | | ||| | | -2 0 0 2 //| | | / \ \ 0, 0, 0, 1], [0, 0, a, 0, 0], [0, 0, 0, a, 0], [0, -2, 0, 0, SUM n_=1 // a 0 0 0 0 \ || | || 0 0 0 0 1 | 2]]) || | || 0 0 a 0 0 | - (1 - #i)*KRONECKER(m_, || | || 0 0 0 a 0 | || | |\ 0 -2 0 0 2 / \ m_,n_ \ / a 0 0 0 0 \\ | | || | | 0 0 0 0 1 || | | || n_)|*[x1, x2, x3, x4] , m_, DIMENSION | 0 0 a 0 0 ||, | n_ | || | | 0 0 0 a 0 || | | || | \ 0 -2 0 0 2 /| / / / / a 0 0 0 0 \\\\ | | |||| | | 0 0 0 0 1 |||| | | |||| VECTOR|[x1, x2, x3, x4] , n_, DIMENSION | 0 0 a 0 0 |||| | n_ | |||| | | 0 0 0 a 0 |||| | | |||| \ \ 0 -2 0 0 2 //|| // User #162:" Eigenvalues and generalized eigenvectors [Johnson and Riess, p. 193] " User #163:" => lambda = {1, 1, 1}, eigenvectors = [[4 -1 4], [1 -1 2], [3 -1 3]]^T " / -1 -8 1 \ | | #164:q_ := | -1 -3 2 | User | | \ -4 -16 7 / #165:e := EIGENVALUES(q_, z) User #166:e User #167:[z = 1] Simp(#166) #168:EIGENVECTORS(q_, e) User // @3 \\ #169:|| x1 = @3 x2 = - ---- x3 = 0 || Simp(#168) \\ 4 // User #170:" Eigenvalues and generalized eigenvectors [Johnson and Riess, p. 199] " #171:" => lambda = {1, 1, 1, 1, 2, 2}, eigenvectors = " User User #172:" [[1 -1 0 0 0 0], [-1 0 0 1 0 0], [0 0 1 -1 0 -1], " User #173:" [0 0 -1 -2 -1 3], [ 0 2 0 0 0 0], [2 0 1 1 0 0]]^T " / 1 0 1 1 0 1 \ | | | 1 2 0 0 0 0 | | | | 0 0 2 0 1 1 | #174:q_ := | | User | 0 0 1 1 0 0 | | | | 0 0 0 0 1 0 | | | \ 0 0 0 0 1 1 / #175:e := EIGENVALUES(q_, z) User #176:e User #177:[z = 1, z = 2] Simp(#176) #178:EIGENVECTORS(q_, e) User Simp(#178) / / / | | | | | | | | | | | |DIMENSION([[1, 0, 1, 1, 0, 1], [1, 2, 0, 0, 0, 0], |SOLVE|VECTOR| #179:| | | | | | | | | | | | | | | \ \ \ [0, 0, 2, 0, 1, 1], [0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 1, 0], SUM n_=1 // 1 0 1 1 0 1 \ || | || 1 2 0 0 0 0 | || | [0, 0, 0, 0, 1, 1]]) || 0 0 2 0 1 1 | || | - || 0 0 1 1 0 0 | || | || 0 0 0 0 1 0 | || | |\ 0 0 0 0 1 1 / \ m_,n_ \ / 1 0 | | | | 1 2 | | | | 0 0 1*KRONECKER(m_, n_)|*[x1, x2, x3, x4] , m_, DIMENSION | | n_ | 0 0 | | | | 0 0 | | | \ 0 0 / 1 1 0 1 \\ / / 1 0 || | | 0 0 0 0 || | | 1 2 || | | 2 0 1 1 || | | 0 0 ||, VECTOR|[x1, x2, x3, x4] , n_, DIMENSION | 1 1 0 0 || | n_ | 0 0 || | | 0 0 1 0 || | | 0 0 || | | 0 0 1 1 /| \ \ 0 0 / 1 1 0 1 \\\ / / ||| | | 0 0 0 0 ||| | | ||| | | 2 0 1 1 ||| | |DIMENSION([[1, 0, 1, 1, 0, 1], |||, SOLVE|VECTOR| 1 1 0 0 ||| | | ||| | | 0 0 1 0 ||| | | ||| | | 0 0 1 1 //| | | / \ \ [1, 2, 0, 0, 0, 0], [0, 0, 2, 0, 1, 1], [0, 0, 1, 1, 0, 0], SUM n_=1 // 1 0 1 1 0 1 || || 1 2 0 0 0 0 || [0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 1, 1]]) || 0 0 2 0 1 1 || || 0 0 1 1 0 0 || || 0 0 0 0 1 0 || |\ 0 0 0 0 1 1 \ \ \ | | | | | | | | | - 2*KRONECKER(m_, n_)|*[x1, x2, x3, x4] , m_, | | n_ | | | | | | / | m_,n_ / / 1 0 1 1 0 1 \\ / | || | | 1 2 0 0 0 0 || | | || | | 0 0 2 0 1 1 || | DIMENSION | ||, VECTOR|[x1, x2, x3, x4] , | 0 0 1 1 0 0 || | n_ | || | | 0 0 0 0 1 0 || | | || | \ 0 0 0 0 1 1 /| \ / / 1 0 1 1 0 1 \\\\ | |||| | 1 2 0 0 0 0 |||| | |||| | 0 0 2 0 1 1 |||| n_, DIMENSION | |||| | 0 0 1 1 0 0 |||| | |||| | 0 0 0 0 1 0 |||| | |||| \ 0 0 0 0 1 1 //|| // #180:e := User User #181:" Jordan form => diag([[1 1],[0 1]], [[1 1],[0 1]], -1) [Gantmacher, p. 172] " / 1 0 0 1 -1 \ | | | 0 1 -2 3 -3 | | | #182:q_ := | 0 0 -1 2 -2 | User | | | 1 -1 1 0 1 | | | \ 1 -1 1 -1 2 / User #183:" Smith normal form => [[1, 0], [0, x^4 - x^2 + 1]] [Cullen, p. 230] " / 2 \ | x x - 1 | #184:| | User | 2 | \ x + 1 x / / 2 \ | x x - 1 | #185:| | Simp(#184) | 2 | \ x + 1 x / User #186:" Matrix exponential => e [[cos 2, -sin 2], [sin 2, cos 2]] " / 1 -2 \ #187:EXP | | User \ 2 1 / [[1, -2], [2, 1]] #188:#e Simp(#187) #189:" Matrix exponential [Rick Niles] => " User User #190:" [[1, 4 sin(w t)/w - 3 t , 6 [w t - sin(w t)], 2/w [1 - cos(w t)] ], " User #191:" [0, 4 cos(w t) - 3 , 6 w [1 - cos(w t)], 2 sin(w t) ], " User #192:" [0, -2/w [1 - cos(w t)], 4 - 3 cos(w t) , sin(w t)/w ], " User #193:" [0, -2 sin(w t) , 3 w sin(w t) , cos(w t) ]] " / 0 1 0 0 \ | | | 0 0 0 2*w | | | #194:q_ := | 0 0 0 1 | User | | | 2 | \ 0 - 2*w 3*w 0 / #195:EXP(q_*t) User Simp(#195) / / #196: \[0, t, 0, 0], [0, 0, 0, 2*t*w], [0, 0, 0, t], \0, - 2*t*w, #e 2 \\ 3*t*w , 0// User #197:" Sine of a Jordan matrix => diag([[sin a, cos a],[0, sin a]], sin b, " User #198:" [[sin c, cos c, -sin(c)/2],[0, sin c, cos c],[0, 0, sin c]]) " User #199:" See F. R. Gantmacher, _The Theory of Matrices_, Volume One, Chelsea " User #200:" Publishing Company, 1977, p. 100 to see how to do a general function. " / a 1 0 0 0 0 \ | | | 0 a 0 0 0 0 | | | | 0 0 b 0 0 0 | #201:q_ := | | User | 0 0 0 c 1 0 | | | | 0 0 0 0 c 1 | | | \ 0 0 0 0 0 c / #202:SIN(q_) User / a 1 0 0 0 0 \ | | | 0 a 0 0 0 0 | | | | 0 0 b 0 0 0 | #203:SIN | | Simp(#202) | 0 0 0 c 1 0 | | | | 0 0 0 0 c 1 | | | \ 0 0 0 0 0 c / User #204:" Sine of a matrix => [[1 0 0], [0 1 0], [0 0 1]] [Cullen, p. 261] " / 2 1 1 \ pi | | #205:q_ := ----*| 2 3 2 | User 2 | | \ 1 1 2 / #206:SIN(q_) User / pi pi \ | pi ---- ---- | | 2 2 | | | | 3*pi | #207:SIN | pi ------ pi | Simp(#206) | 2 | | | | pi pi | | ---- ---- pi | \ 2 2 / User #208:" Matrix square root => {+-[[3 1], [1 4]], +-1/sqrt(5) [[-1 7], [7 6]]} " / 10 7 \ #209:q_ := | | User \ 7 17 / #210:SQRT(q_) User / 10 7 \1/2 #211:| | Simp(#210) \ 7 17 / User #212:" Square root of a non-singular matrix [Gantmacher, p. 233] " User #213:" => [[e, (e - n) v w + e/2, (n - e) v], [0, e, 0], [0, (e - n) w, n] " User #214:" for arbitrary v and w with arbitrary signs e and n = +-1 " / 1 1 0 \ | | #215:q_ := | 0 1 0 | User | | \ 0 0 1 / #216:SQRT(q_) User / 1 1 0 \1/2 | | #217:| 0 1 0 | Simp(#216) | | \ 0 0 1 / User #218:" Square root of a singular matrix [Gantmacher, p. 239] " User #219:" => [[0 a b], [0 0 0], [0 1/b 0]] for arbitrary a and b " / 0 1 0 \ | | #220:q_ := | 0 0 0 | User | | \ 0 0 0 / #221:SQRT(q_) User / 0 1 0 \1/2 | | #222:| 0 0 0 | Simp(#221) | | \ 0 0 0 / #223:" Singular value decomposition " User User #224:" => [1/sqrt(14) 3/sqrt(10) 1/sqrt(35) ] [2 sqrt(7) 0] [1/sqrt(2) 1/sqrt(2)] " User #225:" [2/sqrt(14) 0 -sqrt(5/7)] [0 0] [1/sqrt(2) -1/sqrt(2)] " User #226:" [3/sqrt(14) -1/sqrt(10) 3/sqrt(35) ] [0 0] " User #227:" = U Sigma V^T --- singular values are [2 sqrt(7), 0] " / 1 1 \ | | #228:q_ := | 2 2 | User | | \ 3 3 / #229:"[u, s, vT]:= svd(q_)" User #230:"u * s * vT" User #231:"u:=" User #232:"s:=" User #233:"vT:=" User User #234:" Jacobian of (r cos t, r sin t) => [[cos t, -r sin t], [sin t, r cos t]] " #235:JACOBIAN([r*COS(t), r*SIN(t)], [r, t]) User / COS(t) - r*SIN(t) \ #236:| | Simp(#235) \ SIN(t) r*COS(t) / User #237:" Hessian of r^2 sin t => [[2 sin t, 2 r cos t], [2 r cos t, -r^2 sin t]] " 2 #238:r *SIN(t) User 2 #239:r *SIN(t) Simp(#238) User #240:" Wronskian of (cos t, sin t) => [[cos t, sin t], [-sin t, cos t]] " #241:[COS(t), SIN(t)] User #242:[COS(t), SIN(t)] Simp(#241) User #243:" How easy is it to define functions to do the last three operations? " User #244:" Jacobian of (r cos t, r sin t) => [[cos t, -r sin t], [sin t, r cos t]] " User MYJACOBIAN(f, x) := VECTOR(VECTOR(DIF(f , x ), j, 1, #245: i j DIMENSION(x)), i, 1, DIMENSION(x)) #246:MYJACOBIAN([r*COS(t), r*SIN(t)], [r, t]) User / COS(t) - r*SIN(t) \ #247:| | Simp(#246) \ SIN(t) r*COS(t) / User #248:" Hessian of r^2 sin t => [[2 sin t, 2 r cos t], [2 r cos t, -r^2 sin t]] " User MYHESSIAN(f, x) := VECTOR(VECTOR(DIF(DIF(f, x ), x ), j, 1, #249: i j DIMENSION(x)), i, 1, DIMENSION(x)) 2 #250:MYHESSIAN(r *SIN(t), [r, t]) User / 2*SIN(t) 2*r*COS(t) \ | | #251:| 2 | Simp(#250) \ 2*r*COS(t) - r *SIN(t) / User #252:" Wronskian of (cos t, sin t) => [[cos t, sin t], [-sin t, cos t]] " User / //d \i - 1 #253:MYWRONSKIAN(f, x) := VECTOR|VECTOR||--| f , j, 1, \ \\dx/ j \ \ DIMENSION(f)|, i, 1, DIMENSION(f)| / / #254:MYWRONSKIAN([COS(t), SIN(t)], t) User / COS(t) SIN(t) \ #255:| | Simp(#254) \ - SIN(t) COS(t) / #256:" ---------- Quit ---------- " User