|
|
Output from imlinv1.sas |
Source
0 Graphs |
|---|
NOTE: Capture of log output started.
NOTE: %INCLUDE (level 1) file n:\psy6140\examples\iml\imlinv1.sas is file
n:\psy6140\examples\iml\imlinv1.sas.
559 +title 'IMLINV1: Inverse of a matrix'; 560 +proc iml;
IML Ready
560 + reset print log fuzz;
561 + *--INVERSE OF A MATRIX;
562 + A = {5 1 0, 3 -1 2, 4 0 -1};
A 3 rows 3 cols (numeric)
5 1 0
3 -1 2
4 0 -1
563 + r = det(A);
R 1 row 1 col (numeric)
16
564 + 565 + *-- 1. det(a)<>0, so inverse exists; 566 + AI = inv(A);
AI 3 rows 3 cols (numeric)
0.0625 0.0625 0.125
0.6875 -0.3125 -0.625
0.25 0.25 -0.5
567 + 568 + *-- 2. AI * A = I(nrow(A)); 569 + r = AI * A;
R 3 rows 3 cols (numeric)
1 0 0
0 1 0
0 0 1
570 + 571 + *-- 3. Inverse is REFLEXIVE: inv(inv(A)) = A; 572 + r = inv(AI);
R 3 rows 3 cols (numeric)
5 1 0
3 -1 2
4 0 -1
573 + 574 + *-- 4. inv(A) is SYMMETRIC only if A is symmetric; 575 + r = inv(A`);
R 3 rows 3 cols (numeric)
0.0625 0.6875 0.25
0.0625 -0.3125 0.25
0.125 -0.625 -0.5
576 +
577 + B = {4 2 2, 2 3 1, 2 1 3};
B 3 rows 3 cols (numeric)
4 2 2
2 3 1
2 1 3
578 + r = inv(B);
R 3 rows 3 cols (numeric)
0.5 -0.25 -0.25
-0.25 0.5 0
-0.25 0 0.5
579 + r = inv(B`);
R 3 rows 3 cols (numeric)
0.5 -0.25 -0.25
-0.25 0.5 0
-0.25 0 0.5
580 +
581 + *--PROPERTIES OF MATRIX INVERSE;
582 +
583 + *-- 1. inv of diagonal matrix = diag( 1/ diagonal);
584 + D =diag({ 1 2 4 });
D 3 rows 3 cols (numeric)
1 0 0
0 2 0
0 0 4
585 + r = inv(D);
R 3 rows 3 cols (numeric)
1 0 0
0 0.5 0
0 0 0.25
586 + r = diag(1 / {1 2 4});
R 3 rows 3 cols (numeric)
1 0 0
0 0.5 0
0 0 0.25
587 +
588 + *-- 2. INVERSE of an INVERSE: inv(inv(A)) = A;
589 + A = {1 2 3, 2 3 0, 0 1 2};
A 3 rows 3 cols (numeric)
1 2 3
2 3 0
0 1 2
590 + AI=inv(A);
AI 3 rows 3 cols (numeric)
1.5 -0.25 -2.25
-1 0.5 1.5
0.5 -0.25 -0.25
591 + r = inv(AI);
R 3 rows 3 cols (numeric)
1 2 3
2 3 0
0 1 2
592 + 593 + *-- 3. inverse of a transpose: inv(a`) = (inv(a))`; 594 + r =inv(A`);
R 3 rows 3 cols (numeric)
1.5 -1 0.5
-0.25 0.5 -0.25
-2.25 1.5 -0.25
595 + r = (inv(A))`;
R 3 rows 3 cols (numeric)
1.5 -1 0.5
-0.25 0.5 -0.25
-2.25 1.5 -0.25
596 + 597 + *-- 4. inv of scalar # matrix: inv( k#A ) = (1/k) # inv(A); 598 + r = inv(5#A);
R 3 rows 3 cols (numeric)
0.3 -0.05 -0.45
-0.2 0.1 0.3
0.1 -0.05 -0.05
599 + r = (1/5)#inv(A);
R 3 rows 3 cols (numeric)
0.3 -0.05 -0.45
-0.2 0.1 0.3
0.1 -0.05 -0.05
600 +
601 + *-- 5. inverse of a matrix product: inv(A * B) = inv(B) * inv(A);
602 + B = {1 2 3, 1 3 2, 2 4 1};
B 3 rows 3 cols (numeric)
1 2 3
1 3 2
2 4 1
603 + r = A * B;
R 3 rows 3 cols (numeric)
9 20 10
5 13 12
5 11 4
604 + r = inv(A * B);
R 3 rows 3 cols (numeric)
4 -1.5 -5.5
-2 0.7 2.9
0.5 -0.05 -0.85
605 + r = (inv(B)) * (inv(A));
R 3 rows 3 cols (numeric)
4 -1.5 -5.5
-2 0.7 2.9
0.5 -0.05 -0.85
606 +quit;
Exiting IML.
NOTE: The PROCEDURE IML used 0.22 seconds.
607 +
NOTE: %INCLUDE (level 1) ending.