[Boost] Eigenvektoren
-
Hallo ihr Lieben,
ich habe mal wieder eine ziemlich blöde Frage:
Scheinbar lassen sich mit Boost Eigenvektoren und -werte ausrechnen.
Aber wie?
Ich fange bei der Boost Basic Linear Algebra Library an zu suchen, die einem ermöglicht mit Vektoren und Matrizen zu arbeiten. Von da aus kann ich mich z.B. zu uBLAS weiterarbeiten und von da aus wieder zu Linear Algebra with uBLAS ...
.. aber wo kommt denn jetzt mal die Antwort oder ein Minimalbeispiel? Selbst eine google Suche liefert ähnliche Ergebnisse, nämlich gerade "Das geht mit
boost::ublas
"Also wie denn? Es muss doch irgendwo mal etwas in der Art stehen
boost::eigen(boost::matrix)
- oder so ähnlich?Bin ich noch zu blind für boost oder ist mein google-fu zu schwach?
Gruß,
-- Klaus.
-
Das du nichts dazu findest, liegt schlicht da dran, dass es diese Funktion so direkt nicht in Boost gibt. Boost bietet "nur" BLAS an, basic linear algebra.
Es gibt jedoch fertige Anbindungen der Boost-Matrizen an gängige Eigenwertsolver wie LAPACK:
http://mathema.tician.de/software/boost-numeric-bindings/Was genau hast du vor? Es gibt viele Bibliotheken, um mit C++ Eigenwerte zu berechnen. Manche gut für kleine Matrizen, manche für große, manche für beides. Vielleicht wäre eine andere Bibliothek besser geeignet?
-
SeppJ schrieb:
Was genau hast du vor? Es gibt viele Bibliotheken, um mit C++ Eigenwerte zu berechnen. Manche gut für kleine Matrizen, manche für große, manche für beides.
Ja, ich hatte schon mit der GSL Eigenvektoren berechnet, allerdings benötige ich demnächst einen multi_array mit drei Indizes.
Also habe ich rückwärts gedacht: Wenn ich schon boost für den multi_array verwenden, warum kann ich dann nicht bei boost bleiben und damit auch Eigenvektoren berechnen.
Dann muss ich nicht für verschiedene Anforderungen verschiedenen Bibliotheken aufmachen.
Gruß,
-- Klaus.
-
Ein mutli_array ist schon ein anderes Konzept als eine algebraische Matrix. Sie sind zwar beide grafisch als quadratisches Etwas darstellbar, aber diese Gemeinsamkeit ist nur oberflächlich, etwa so wie Kontonummern und Postleitzahlen aussehen wie Zahlen, aber sich nicht verhalten wie eine Zahl. Es würde mich sehr wundern, wenn die Bibliotheken kompatibel wären.
Ich schreibe hier auch bewusst Bibliotheken. Boost mag zwar wie eine große Bibliothek aussehen, ist aber eher als Sammlung vieler Einzelbibliotheken zu sehen. Es gibt zwar Bemühungen, alles zu vereinheitlichen, aber im Kern sind die Teile doch recht unabhängig. Teile die schon vom Konzept her nicht zusammen passen (multi_array und BLAS) werden dann kaum Gemeinsamkeiten haben.
-
Okay,
also ist es auch nicht so schlimm, wenn ich für zwei verschiedenen Konzepte (Eigenvektoren & multi_array) zwei verschiedene Bibliotheken verwende.
Gruß,
-- Klaus.