El cálculo de los vectores propios en C # utilizando avanzada Matrix Library en C #. RED

StackOverflow https://stackoverflow.com/questions/4400203

Pregunta

Ok chicos, estoy usando la biblioteca siguiente: http: //www.codeproject. com / KB / recetas / AdvancedMatrixLibrary.aspx

Y deseo para calcular los vectores propios de ciertas matrices que tengo. No sé cómo formular el código.

Hasta ahora he intentado:

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

Sin embargo, dice que el mejor partido de método sobrecargado tiene algunos argumentos no válidos. Sé que funciona la biblioteca, pero yo no sé cómo formular mi código C #.

Cualquier ayuda sería fantástico!

¿Fue útil?

Solución

En cuanto a la biblioteca, la firma de las miradas Eigen método como este:

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

Hay algunos errores:

  1. Aviso la palabra clave out al lado de los parámetros D y V. Es necesario añadir la palabra clave a la llamada a Eigen.

  2. El código espera una matriz como primer argumento, mientras que usted está enviando un elemento. Por lo tanto, MatrixName[n, n] necesita cambiar para MatrixName.

  3. no es necesario crear una instancia del vector y valora matrices, ya que el método Eigen lo hace por usted y devolverá los valores en los dos argumentos que envíe gracias a la palabra clave out. Una cosa a la nota, así es que va a recibir la salida de la siguiente manera:

    • valores será un [n + 1,1] Matrix

    • vector será un [n + 1, n + 1] Matrix

No es tan matriz (n, 0) como se puede esperar de su código inicial.

El código se vería así:

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

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

Otros consejos

código debería tener este aspecto:

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

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

C # out palabra clave significa que Eigen método creará objeto para usted, por lo que no debe hacer esto new Matrix(n, 0);

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top