Singulärwertzerlegung - SVD



  • Hallo,

    ich benötige für eine kurze Berechnung die Singulärwertzerlegung einer gegebenen Menge von Vektoren (aufgefasst als Matrix).
    Nun habe ich Lapack eingebunden, um dies zu erledigen.
    Super wäre aber ein eigener Code, sprich die Vermeidung der Verwendung der zusätzlichen Bibliothek. (Ich verwende schon GNU MP und wollte eigentlich nicht unnötig viele weitere Bibs einbinden. 😃 )
    Daher also hier mal die Frage:
    Gibt es irgendwo einen frei erhältlichen Code zur SVD einer mxn-Matrix?

    Vielen Dank.


  • Mod

    6H05T schrieb:

    Gibt es irgendwo einen frei erhältlichen Code zur SVD einer mxn-Matrix?

    Zum Beispiel LAPACK 😉 . Aber auch die GNU Scientific Library.

    wollte eigentlich nicht unnötig viele weitere Bibs einbinden

    Definier doch mal "unnötig viele" und erklär mal warum das hier zutreffen sollte.



  • SeppJ schrieb:

    6H05T schrieb:

    Gibt es irgendwo einen frei erhältlichen Code zur SVD einer mxn-Matrix?

    Zum Beispiel LAPACK 😉 . Aber auch die GNU Scientific Library.

    wollte eigentlich nicht unnötig viele weitere Bibs einbinden

    Definier doch mal "unnötig viele" und erklär mal warum das hier zutreffen sollte.

    Habe schon GMP im Programm und lasse 32bit-Programme auf 64bit-Systemen laufen.
    Bei der Kompilierung mit -m32 und der Einbindung der 32bit-Versionen von GMP (als Pakete erhältlich) gibt es keine Probleme. Nur lapack, blas und f2c sind als 32er auf 64bit-Systemen nicht als Pakete erhältlich. Das bedeutet ich muss diese Bibs selber mit 32er-Flag kompilieren, dies geht aber leider nicht ohne weiteres. Der Linker unter 64-bit Ubuntu Linux weigert sich eine dynamische relokierbare Bibliothek zu erzeugen:
    ld: Relocatable linking with relocations from format elf32-i386
    (main.o) to format elf64-x86-64 (main.xxx) is not supported

    Nun war meine Idee dies einfach mittels eigener SVD zu umgehen, hat sich jedoch nach Betrachtung des programmiertechnischen Aufwands erledigt 😞 .

    Bin im Moment ein wenig ratlos 😕 .


Anmelden zum Antworten