Ergänzung zu FAQ-Eintrag



  • ich hätte da eine ergänzung zu
    http://www.c-plusplus.net/forum/viewtopic.php?t=39428

    A        =      |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
    

Anmelden zum Antworten