Frage

Ok Jungs, ich bin mit der folgenden Bibliothek: http: //www.codeproject. com / KB / Rezepte / AdvancedMatrixLibrary.aspx

Und ich wünsche die Eigenvektoren bestimmter Matrizen berechnen ich habe. Ich weiß nicht, wie Sie den Code zu formulieren.

Bisher habe ich versucht:

Matrix MatrixName = new Matrix(n, n);
Matrix vector = new Matrix(n, 0);
Matrix values = new Matrix(n, 0);

Matrix.Eigen(MatrixName[n, n], values, vector);

Allerdings heißt es, dass die beste Methode überladenen Spiel einige ungültige Argumente hat. Ich kenne die Bibliothek funktioniert, aber ich weiß einfach nicht, wie mein c # -Code zu formulieren.

Jede Hilfe wäre fantastisch!

War es hilfreich?

Lösung

Mit Blick auf die Bibliothek, die Unterzeichnung der Eigen-Methode sieht wie folgt aus:

public static void Eigen(Matrix Mat, out Matrix d,out Matrix v)

Es gibt ein paar Fehler:

  1. Beachten Sie die out Stichwort neben den d und v Parameter. Sie müssen das Schlüsselwort out auf den Aufruf zu Eigen hinzuzufügen.

  2. Der Code erwartet eine Matrix als erstes Argument, während Sie ein Element senden. Somit muss MatrixName[n, n] zu MatrixName ändern.

  3. Sie brauchen nicht den Vektor zu instanziiert und Werte Matrices, da die Eigen-Methode dies für Sie erledigt und die Werte in den beiden Argumente kehren Sie dank der aus Schlüsselwort senden. Eine Sache, als auch zu beachten ist, dass Sie die Ausgabe erhalten werden, wie folgt:

    • Werte werden eine [n + 1,1] Matrix

    • Vektor wird eine [n + 1, n + 1] Matrix

Nicht als Matrix (n, 0), wie Sie von Ihrem ursprünglichen Code erwartet.

Der Code wird wie folgt aussehen:

Matrix MatrixName = new Matrix(n, n);
Matrix vector;
Matrix values;

Matrix.Eigen(MatrixName, out values, out vector);

Andere Tipps

Sie Code sollte wie folgt aussehen:

Matrix MatrixName = new Matrix(n, n);
Matrix vector;
Matrix values;

Matrix.Eigen(MatrixName, out values, out vector);

C # out Schlüsselwort bedeutet, dass Verfahren Eigen Objekt für Sie erstellen, so dass Sie nicht diesen new Matrix(n, 0); tun sollten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top