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.