El cálculo de los vectores propios en C # utilizando avanzada Matrix Library en C #. RED
-
25-09-2019 - |
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!
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:
-
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. -
El código espera una matriz como primer argumento, mientras que usted está enviando un elemento. Por lo tanto,
MatrixName[n, n]
necesita cambiar paraMatrixName
. -
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);