Ich benutze Armadillo & C++ und ich versuche, die Umkehrung einer Matrix zu finden, aber die Umkehrung gibt nur die Matrix selbst zurück.Armadillo C++ findet keine Matrix invers
Es scheint mir, dass es keine Berechnung gibt. Außerdem werden keine Fehler ausgegeben.
Ich bin mit dem folgenden Header:
#include <armadillo>
using namespace std;
using namespace arma;
und ich habe für ein paar Tage Armadillo wurde mit und lief durch mehr Matrix Manipulationen, die richtig funktionieren.
Eingang:
mat A = randu<mat>(5,5);
A.print("A: ");
mat B = inv(A);
B.print("inv(A): ");
Ausgang:
A:
0.0013 0.1741 0.9885 0.1662 0.8760
0.1933 0.7105 0.1191 0.4508 0.9559
0.5850 0.3040 0.0089 0.0571 0.5393
0.3503 0.0914 0.5317 0.7833 0.4621
0.8228 0.1473 0.6018 0.5199 0.8622
inv(A):
0.0013 0.1741 0.9885 0.1662 0.8760
0.1933 0.7105 0.1191 0.4508 0.9559
0.5850 0.3040 0.0089 0.0571 0.5393
0.3503 0.0914 0.5317 0.7833 0.4621
0.8228 0.1473 0.6018 0.5199 0.8622
Process finished with exit code 0
Frage:
Warum INV nicht (ofAMatrix) arbeiten, irgendwelche Hinweise oder Anregungen? Danke!
Danke für die Antwort so schnell! 1. Ich weiß nicht, was MKL ist. 2. Ist es nicht seltsam, dass ich nicht einmal Fehler bekomme? Könnte es ein Linker/Compiler-Problem sein? Oder vielleicht fehlt mir eine Bibliothek? 3. Leider brauche ich inverse, und mir ist bewusst, dass inverse in der Regel ein Engpass ist, danke! –
Bitte verwenden Sie das [Abstimmungssystem] (https://Stackoverflow.com/help/why-vote) anstatt "Danke" zu posten. Aber wie auch immer, Sie sind willkommen :) –
MKL ist Intels Implementierung der LAPACK-Bibliothek mit speziellen Optimierungen für ihre Prozessoren. Dies kann Ihnen eine gewisse Beschleunigung bringen. Außerdem werden viele Algorithmen parallel mit OpenMP implementiert, was Ihnen zusätzliche Geschwindigkeit bringt. –