Matrixoperationen in C++



  • hi leute 🙂

    ich suche QuellCode oder Bibliothek oder was auch immer, die die Berechnung der Pseudoinversen einer Matrix enthält.
    Eine Variante die ich bereits gefunden habe, ist die matlab.hpp zu verwenden und somit die Matlab C++ Bibliothek zu nutzen, jedoch habe ich besagte datei nicht, also muss ich wohl auf C++ Sources zurückgreifen.

    Mir würde auch reichen wenn jemand eine berechnungsvorschrift für die Pseudoinverse kennt, dann programmier ich das selbst.

    Leider bisher nix gefunden...

    gruss und danke im vorraus

    Toby



  • It0101 schrieb:

    Mir würde auch reichen wenn jemand eine berechnungsvorschrift für die Pseudoinverse kennt

    Reicht das hier? http://de.wikipedia.org/wiki/Pseudoinverse



  • Mach 'einfach' eine Singulärwertzerlegung... Sei A=UΣVA = U\Sigma V^* die Singulärwertzerlegung von AA, dann ist die Pseudoinverse gegeben durch A+=VΣ+UA^+ = V\Sigma^+ U^*, wobei Σ+\Sigma^+ berechnet wird indem du jedes Diagonalelement (Σ)i,i(\Sigma)_{i,i} ungleich 0 invertierst. Für die Singulärwertzerlegung kannst du dir den Golub-Reinsch Algorithmus (Kap 3.4) anschauen.

    Ansonsten auch mal hier vielleicht Anregungen holen:
    GNU Scientific Library (GSL): http://www.gnu.org/software/gsl/



  • auf wikipedia war ich zuvor auch schon, aber das ist leider etwas wenig um die pseudoinverse zu proggen

    @ walli
    das werd ich mal genauer ansehen

    danke euch erstmal für die antworten 😉


Anmelden zum Antworten