Domanda

Ok ragazzi, io sto usando la seguente libreria: http: //www.codeproject. com / KB / ricette / AdvancedMatrixLibrary.aspx

E mi auguro di calcolare gli autovettori di alcune matrici che ho. Non so come formulare il codice.

Finora ho tentato:

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);

Tuttavia si dice che il miglior metodo di overload partita ha alcuni argomenti non validi. So che le opere della biblioteca, ma io proprio non so come formulare il mio codice C #.

Qualsiasi aiuto sarebbe fantastico!

È stato utile?

Soluzione

Guardando la Biblioteca, la firma del metodo Eigen aspetto:

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

Ci sono alcuni errori:

  1. Si noti la parola chiave out accanto alla D e v parametri. È necessario aggiungere la parola chiave fuori per la chiamata a Eigen.

  2. Il codice prevede una matrice come primo argomento, mentre si sta inviando un elemento. Così, MatrixName[n, n] bisogno di cambiare per MatrixName.

  3. Non è necessario creare un'istanza vettore e valori di matrici, in quanto il metodo Eigen fa questo per voi e restituirà i valori nei due argomenti inviati grazie alla parola fuori. Una cosa da notare è così che si riceverà l'output nel seguente modo:

    • I valori sarà un [n + 1,1] Matrice

    • vettore sarà un [n + 1, n + 1] Matrice

Non come Matrix (n, 0) come ci si aspetta dal codice iniziale.

Il codice sarà simile a questa:

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

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

Altri suggerimenti

Codice si dovrebbe guardare in questo modo:

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

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

C # out parola chiave significa che il metodo Eigen creerà oggetto per voi, quindi non si dovrebbe fare questo new Matrix(n, 0);

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top