Ergänzung zu FAQ-Eintrag
-
ich hätte da eine ergänzung zu
http://www.c-plusplus.net/forum/viewtopic.php?t=39428A = |r00,r01,r02,dx| |r10,r11,r12,dy| |r20,r21,r22,dz| | 0, 0, 0, 1| Als Blockmatrix A = |P,Q| |R,S| |r00,r01,r02| |dx| P = |r10,r11,r12| Q = |dy| |r20,r21,r22| |dz| R = | 0, 0, 0| S = | 1| Shurkomplement A^-1 = |P',Q'| |R',S'| P' = (P-Q*S^-1*R)^-1 mit Q*S^-1*R = 0 da R Nullvektor P' = P^-1 Q' = -(P-Q*S^-1*R)^-1*(Q*S^-1) Q' = -P'*(Q*S^-1) mit S^-1=1 Q' = -P^-1*Q R' = (S^-1*R)*(P-Q*S^-1*R)^-1 R' = |0, 0, 0|*(P-Q*S^-1*R)^-1 R' = |0, 0, 0| S' = S^-1 + (S^-1*R)*(P-Q*S^-1*R)^-1*(Q*S^-1) S' = S^-1 + 0*(P-Q*S^-1*R)^-1*(Q*S^-1) S' = S^-1 + 0 S' = 1 d.h. P ist orthogonal <=> P-^1=P.transp() und der Translationsvector muss nur noch aus der sicht des anderen koordiantensystems angegeben werden also P-^1*Q ist ja eigentlich was Jester schrieb