Mathematics by T. Arens, F. Hettlich, Ch. Karpfinger, U. Kockelkorn, K. Lichtenegger, H. Stachel (chapter 16: Matrices and Determinants)restart; MatricesAddition and multiplication of matrices and vectors have been introduced in the last chapter. Still, the matrix-product of with appropriate dimensions is missing. Therefore the operator symbol &* is intended. E.g. we obtainA:=matrix(2,3,[[3,2,1],[0,1,1]]);
b:=matrix(3,1,[1,1,3]);
c:=matrix(1,3,[1,0,2]);
B:=matrix(3,2,[[1,2], [1,1], [1,0]]);
BA=evalm(B&*A);
Ab=evalm(A&*b);
cB=evalm(c&*B);In the same way the scalar and the dyadic product of two column vectors are defined.cb = evalm(c&*b);
bc = evalm(b&*c);Further commands for matrices can be found in the package linalg . Like we already learnt in the previous section, the row and column dimension are returned by rowdim or coldim . The transposed matrix can be obtained with the command transpose .with(linalg):
transpose(A);or complex valuedA:=array([[1+I, 1+I], [1,1-I] ]);
transpose(A);
htranspose(A); With the command htranspose you obtain the complex conjugated transposed matrix, also known as the hermitic transposed matrix.Some commands easily generate matrices of a special type. For exmaple, we get a diagonal matrix bydiag(2,3,4,5);Hence the standard unit matrix is given bydiag(1,1,1);A matrix having identical entries on the diagonals is called Toeplitzmatrix. A symmetrical Toeplitzmatrix is given bytoeplitz([1,2,3,4]);Various commands for symmectric matrices and band matrices are available. Regard the command list of the linalg package to get an overview on all available commands. The inverse matrixIf an inverse matrix exists, the command inverse is used to compute it.A:= matrix(4,4,[[1,2,3,4],[1,1,0,0],[0,2,1,0],[2,5,1,4]]);
inverse(A);We can easily verify whether a matrix is orthorgonal. Regarding the selfcheck of page 534 B:=matrix(3,3,[[0,-1,0],[0,0,-1],[-1,0,0]]);
evalm(transpose(B)&*B);Thus the matrix is orthogonal, since the transposed matrix is the inverse of it.inverse(B);
transpose(B);The LU-decomposition of a matrix is done by the LUdecomp routine included in the linalg package. The command returns the matrix U, the unit upper triangular matrix. L stands for lower and U for upper triangular matrix. LUdecomp(A,L='l',U='u',P='p');By the additional paramerters, the command allocated the variables l, u, p, with the according matrix factors, so that the identity LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYsLUkjbWlHRiQ2JVEiQUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIj1GJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy8lJ3JzcGFjZUdGTC1JKG1mZW5jZWRHRiQ2JC1GIzYoLUYsNiVRInBGJ0YvRjItRjY2LVElfiYqfkYnRjlGO0Y+RkBGQkZERkZGSC9GS1EmMC4wZW1GJy9GTkZlbi1GLDYlUSJsRidGL0YyLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRjlGOS1GNjYtUSJ+RidGOUY7Rj5GQEZCRkRGRkZIRlpGZm4tRjY2LVEjJipGJ0Y5RjtGPkZARkJGREZGRkhGWkZmbkZgby1GLDYlUSJ1RidGL0YyRmpuRl1vRjk= is true. To double check we evaluateevalm(l);
evalm(u);
evalm(p);
evalm(A) = evalm(p&*l&*u);Note, comparing Maple's result for the matrix p with the answer of the book (see page 537) we recognaize that p is exactly the inverse of the matrix P.Whether there exists an inverse of a matrix can easily be verified by the determinant. It is returned by the command det .det(A);The adjoint of a matrix A is directly constructed by the commandadjoint(A);Of course, we also get the same result by multiplicating the inverse of A by det(A). evalm(det(A)*inverse(A));
Exercise1. For which real values a exists an inverse of the matrix [ 2 1 0 0 ]
[ a 0 2 1 ] [ 1 a 1 1 ] [ 1 2 a a ]SolutionWe define the matricesA:=matrix(4,4,[[2,1,0,0],[a,0,2,1],[1,a,1,1],[1,2,a,a]]);and evaluate the determinantd:=det(A);There exists an inverse for the matrix if the determinant is unequal to zero.solve(d=0,a);2. Verify for u=(1,2,3)^T and v=(1,0,1)^T the identities:LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzY3LUkjbWlHRiQ2I1EhRictRiM2Ny1JKG1mZW5jZWRHRiQ2NS1GIzY4LUYsNjVRIklGJy8lJ2ZhbWlseUdRMFRpbWVzfk5ld35Sb21hbkYnLyUlc2l6ZUdRIzEyRicvJSVib2xkR1EmZmFsc2VGJy8lJ2l0YWxpY0dRJXRydWVGJy8lKnVuZGVybGluZUdGQS8lKnN1YnNjcmlwdEdGQS8lLHN1cGVyc2NyaXB0R0ZBLyUrZm9yZWdyb3VuZEdRKFswLDAsMF1GJy8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRicvJSdvcGFxdWVHRkEvJStleGVjdXRhYmxlR0ZBLyUpcmVhZG9ubHlHRkEvJSljb21wb3NlZEdGQS8lKmNvbnZlcnRlZEdGQS8lK2ltc2VsZWN0ZWRHRkEvJSxwbGFjZWhvbGRlckdGQS8lNnNlbGVjdGlvbi1wbGFjZWhvbGRlckdGQS8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDY+USIrRidGOUY8Rj8vRkNGQUZFRkdGSUZLRk5GUUZTRlVGV0ZZRmVuRmduRmluL0Zcb1Enbm9ybWFsRicvJSZmZW5jZUdGQS8lKnNlcGFyYXRvckdGQS8lKXN0cmV0Y2h5R0ZBLyUqc3ltbWV0cmljR0ZBLyUobGFyZ2VvcEdGQS8lLm1vdmFibGVsaW1pdHNHRkEvJSdhY2NlbnRHRkEvJSdsc3BhY2VHUSwwLjIyMjIyMjJlbUYnLyUncnNwYWNlR0ZlcC1GIzY3LUYsNjVRInVGJ0Y5RjxGP0ZCRkVGR0ZJRktGTkZRRlNGVUZXRllGZW5GZ25GaW5GW28tRl9vNi1RMSZJbnZpc2libGVUaW1lcztGJ0Zjb0Zlb0Znb0Zpb0ZbcEZdcEZfcEZhcC9GZHBRJjAuMGVtRicvRmdwRmFxLUklbXN1cEdGJDYlLUYsNjVRInZGJ0Y5RjxGP0ZCRkVGR0ZJRktGTkZRRlNGVUZXRllGZW5GZ25GaW5GW28tRiw2NVEiVEYnRjlGPEY/RkJGRUZHRklGS0ZORlFGU0ZVRldGWUZlbkZnbkZpbkZbby8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRidGOUY8Rj9GYm9GRUZHRklGS0ZORlFGU0ZVRldGWUZlbkZnbkZpbkZjb0YrRjlGPEY/RmJvRkVGR0ZJRktGTkZRRlNGVUZXRllGZW5GZ25GaW5GY29GOUY8Rj9GYm9GRUZHRklGS0ZORlFGU0ZVRldGWUZlbkZnbkZpbkZjb0ZdcS1GLDY1USJCRidGOUY8Rj9GQkZFRkdGSUZLRk5GUUZTRlVGV0ZZRmVuRmduRmluRltvRjlGPEY/RmJvRkVGR0ZJRktGTkZRRlNGVUZXRllGZW5GZ25GaW5GY29GK0Y5RjxGP0Zib0ZFRkdGSUZLRk5GUUZTRlVGV0ZZRmVuRmduRmluRmNv =LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzY1LUkjbWlHRiQ2NVEiSUYnLyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRicvJSVzaXplR1EjMTJGJy8lJWJvbGRHUSZmYWxzZUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUqdW5kZXJsaW5lR0Y3LyUqc3Vic2NyaXB0R0Y3LyUsc3VwZXJzY3JpcHRHRjcvJStmb3JlZ3JvdW5kR1EoWzAsMCwwXUYnLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GJy8lJ29wYXF1ZUdGNy8lK2V4ZWN1dGFibGVHRjcvJSlyZWFkb25seUdGNy8lKWNvbXBvc2VkR0Y3LyUqY29udmVydGVkR0Y3LyUraW1zZWxlY3RlZEdGNy8lLHBsYWNlaG9sZGVyR0Y3LyU2c2VsZWN0aW9uLXBsYWNlaG9sZGVyR0Y3LyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJ0YvRjJGNS9GOUY3RjtGPUY/RkFGREZHRklGS0ZNRk9GUUZTRlUvRlhRJ25vcm1hbEYn= LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzY3LUkjbWlHRiQ2I1EhRictRiM2Ny1GLDY1USJCRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjwvJSpzdWJzY3JpcHRHRjwvJSxzdXBlcnNjcmlwdEdGPC8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y8LyUrZXhlY3V0YWJsZUdGPC8lKXJlYWRvbmx5R0Y8LyUpY29tcG9zZWRHRjwvJSpjb252ZXJ0ZWRHRjwvJStpbXNlbGVjdGVkR0Y8LyUscGxhY2Vob2xkZXJHRjwvJTZzZWxlY3Rpb24tcGxhY2Vob2xkZXJHRjwvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVExJkludmlzaWJsZVRpbWVzO0YnL0ZnblEnbm9ybWFsRicvJSZmZW5jZUdGPC8lKnNlcGFyYXRvckdGPC8lKXN0cmV0Y2h5R0Y8LyUqc3ltbWV0cmljR0Y8LyUobGFyZ2VvcEdGPC8lLm1vdmFibGVsaW1pdHNHRjwvJSdhY2NlbnRHRjwvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZfcC1JKG1mZW5jZWRHRiQ2NS1GIzY4LUYsNjVRIklGJ0Y0RjdGOkY9RkBGQkZERkZGSUZMRk5GUEZSRlRGVkZYRlpGZm4tRmpuNj5RIitGJ0Y0RjdGOi9GPkY8RkBGQkZERkZGSUZMRk5GUEZSRlRGVkZYRlpGXW9GX29GYW9GY29GZW9GZ29GaW9GW3AvRl5wUSwwLjIyMjIyMjJlbUYnL0ZhcEZfcS1GIzY3LUYsNjVRInVGJ0Y0RjdGOkY9RkBGQkZERkZGSUZMRk5GUEZSRlRGVkZYRlpGZm5GaW4tSSVtc3VwR0YkNiUtRiw2NVEidkYnRjRGN0Y6Rj1GQEZCRkRGRkZJRkxGTkZQRlJGVEZWRlhGWkZmbi1GLDY1USJURidGNEY3RjpGPUZARkJGREZGRklGTEZORlBGUkZURlZGWEZaRmZuLyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJ0Y0RjdGOkZdcUZARkJGREZGRklGTEZORlBGUkZURlZGWEZaRl1vRitGNEY3RjpGXXFGQEZCRkRGRkZJRkxGTkZQRlJGVEZWRlhGWkZdb0Y0RjdGOkZdcUZARkJGREZGRklGTEZORlBGUkZURlZGWEZaRl1vRjRGN0Y6Rl1xRkBGQkZERkZGSUZMRk5GUEZSRlRGVkZYRlpGXW9GK0Y0RjdGOkZdcUZARkJGREZGRklGTEZORlBGUkZURlZGWEZaRl1v with LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzY3LUkjbWlHRiQ2I1EhRictRiM2OC1GLDY1USJCRicvJSdmYW1pbHlHUTBUaW1lc35OZXd+Um9tYW5GJy8lJXNpemVHUSMxMkYnLyUlYm9sZEdRJmZhbHNlRicvJSdpdGFsaWNHUSV0cnVlRicvJSp1bmRlcmxpbmVHRjwvJSpzdWJzY3JpcHRHRjwvJSxzdXBlcnNjcmlwdEdGPC8lK2ZvcmVncm91bmRHUShbMCwwLDBdRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnLyUnb3BhcXVlR0Y8LyUrZXhlY3V0YWJsZUdGPC8lKXJlYWRvbmx5R0Y8LyUpY29tcG9zZWRHRjwvJSpjb252ZXJ0ZWRHRjwvJStpbXNlbGVjdGVkR0Y8LyUscGxhY2Vob2xkZXJHRjwvJTZzZWxlY3Rpb24tcGxhY2Vob2xkZXJHRjwvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2PlEiPUYnRjRGN0Y6L0Y+RjxGQEZCRkRGRkZJRkxGTkZQRlJGVEZWRlhGWi9GZ25RJ25vcm1hbEYnLyUmZmVuY2VHRjwvJSpzZXBhcmF0b3JHRjwvJSlzdHJldGNoeUdGPC8lKnN5bW1ldHJpY0dGPC8lKGxhcmdlb3BHRjwvJS5tb3ZhYmxlbGltaXRzR0Y8LyUnYWNjZW50R0Y8LyUnbHNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy8lJ3JzcGFjZUdGYHAtRiM2Ny1GLDY1USJJRidGNEY3RjpGPUZARkJGREZGRklGTEZORlBGUkZURlZGWEZaRmZuLUZqbjY+USgmbWludXM7RidGNEY3RjpGXW9GQEZCRkRGRkZJRkxGTkZQRlJGVEZWRlhGWkZeb0Zgb0Zib0Zkb0Zmb0Zob0Zqb0ZccC9GX3BRLDAuMjIyMjIyMmVtRicvRmJwRlxxLUkmbWZyYWNHRiQ2Ki1GIzY1LUklbXN1cEdGJDYlLUYsNjVRI3V2RidGNEY3RjpGPUZARkJGREZGRklGTEZORlBGUkZURlZGWEZaRmZuLUYsNjVRIlRGJ0Y0RjdGOkY9RkBGQkZERkZGSUZMRk5GUEZSRlRGVkZYRlpGZm4vJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRjRGN0Y6Rl1vRkBGQkZERkZGSUZMRk5GUEZSRlRGVkZYRlpGXm8tRiM2N0YrLUYjNjgtSSNtbkdGJDY1USIxRidGNEY3RjpGXW9GQEZCRkRGRkZJRkxGTkZQRlJGVEZWRlhGWkZeby1Gam42PlEiK0YnRjRGN0Y6Rl1vRkBGQkZERkZGSUZMRk5GUEZSRlRGVkZYRlpGXm9GYG9GYm9GZG9GZm9GaG9Gam9GXHBGW3FGXXEtRiM2Ny1GZHE2JS1GLDY1USJ2RidGNEY3RjpGPUZARkJGREZGRklGTEZORlBGUkZURlZGWEZaRmZuRmlxRlxyLUZqbjYtUTEmSW52aXNpYmxlVGltZXM7RidGXm9GYG9GYm9GZG9GZm9GaG9Gam9GXHAvRl9wUSYwLjBlbUYnL0ZicEZlcy1GLDY1USJ1RidGNEY3RjpGPUZARkJGREZGRklGTEZORlBGUkZURlZGWEZaRmZuRjRGN0Y6Rl1vRkBGQkZERkZGSUZMRk5GUEZSRlRGVkZYRlpGXm9GK0Y0RjdGOkZdb0ZARkJGREZGRklGTEZORlBGUkZURlZGWEZaRl5vRitGNEY3RjpGXW9GQEZCRkRGRkZJRkxGTkZQRlJGVEZWRlhGWkZeby8lLmxpbmV0aGlja25lc3NHUSIxRicvJStkZW5vbWFsaWduR1EnY2VudGVyRicvJSludW1hbGlnbkdGX3QvJSliZXZlbGxlZEdGPC8lK2ZvcmVncm91bmRHRkgvJStiYWNrZ3JvdW5kR0ZLRjRGN0Y6Rl1vRkBGQkZERkZGSUZMRk5GUEZSRlRGVkZYRlpGXm9GK0Y0RjdGOkZdb0ZARkJGREZGRklGTEZORlBGUkZURlZGWEZaRl5vRitGNEY3RjpGXW9GQEZCRkRGRkZJRkxGTkZQRlJGVEZWRlhGWkZebw== .SolutionWe defineu:=matrix(3,1,[1,2,3]); v:=matrix(3,1,[1,0,1]);
ut := transpose(u); vt:=transpose(v);and computetmp:=evalm(vt &* u)[1,1];Mind, for the following expressions we require the number not the (1x1) matrix in the numeratorId:= diag(1,1,1);
B := evalm(Id - u &* vt / (1 + tmp));evalm((Id+u&*vt)&*B);
evalm(B&*(Id + u&*vt));3. Solve the Ex 6.14 in the book with the aid of Maple.SolutionFirst we define the matrix and the parameters a, b, c, d .a:='a': b:='b': c:='c': d:='d':
A:= matrix(3,3,[[1/2,a,1/sqrt(2)],[1/2,-1/2,b],[c,1/sqrt(2),d]]);The matrix is orthogonal if the transposed matrix is the inverse of A. We proceedC:=evalm(A&*transpose(A));Now we may set conditions for a and b by comparing single entries with the standard unit matrix. We start with the two diagonal entries.lsga:=solve(C[1,1]=1,a);
lsgb:=solve(C[2,2]=1,b);
a1:=lsga[1];
a2:=lsga[2];
b1:=lsgb[1];
b2:=lsgb[2];Pluging the results in LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUklbXN1YkdGJDYlLUkjbWlHRiQ2JVEiY0YnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1GIzYoLUkjbW5HRiQ2JFEiMkYnL0Y2USdub3JtYWxGJy1JI21vR0YkNi1RIixGJ0Y+LyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y0LyUpc3RyZXRjaHlHRkYvJSpzeW1tZXRyaWNHRkYvJShsYXJnZW9wR0ZGLyUubW92YWJsZWxpbWl0c0dGRi8lJ2FjY2VudEdGRi8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHUSwwLjMzMzMzMzNlbUYnLUY7NiRRIjFGJ0Y+LyUnZmFtaWx5R1EwVGltZXN+TmV3flJvbWFuRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRj4vJS9zdWJzY3JpcHRzaGlmdEdRIjBGJ0ZmbkZpbkY+ yieldssubs(a=a1,b=b1,C[2,1]);
subs(a=a1,b=b2,C[2,1]);
subs(a=a2,b=b1,C[2,1]);
subs(a=a2,b=b2,C[2,1]);Thus a2 and b2 are the only suitable solutions. We continue substituting our results in the initial matrix and obtainC:=subs(a=a2,b=b2,evalm(C));Another comparision with the standard unit matrix defines conditions for the two remaining parameters c and d.lsgc:=solve(C[3,1]=0,c);lsgd:=solve(subs(c=lsgc,C[3,3]=1),d);We get two solutions byd1:=lsgd[1];
c1:=subs(d=d1,lsgc);andd2:=lsgd[2];
c2:=subs(d=d2,lsgc);