Я пытаюсь вычислить eigenvalue
для matrix[7][7]
, и мой код:собственных значений и Matrix массив
for (i = 0; i<M; i++) //matrix + identity
{
for (j = 0; j<M; j++)
{
MI[i][j] = MX[i][j] + a[i][j];
cout << setw(7) << MI[i][j] << " ";
MatrixXd W;
W = MI[i][j];
SelfAdjointEigenSolver <MatrixXd> eigensolver (W);
cout << "The eigenvalues of A are:\n" << eigensolver.eigenvalues() << endl;
}
cout << endl;
}
Мой вопрос я делаю это правильно называя мою матрицу определяют как matrixXd W
?
я в конечном итоге с ошибкой в строке W = MI[i][j]
:
нет операндов "=" соответствует этому операнд & oeprand типов: MatrixXd = двойной
Спасибо, Антон за быстрый ответ, нет смысла 3 поддавков, потому что я, ищу собственное значение, если у меня есть матрица 3х3, то мои собственные должна быть 3 и нет необходимости в циклю, я я правильно? – h26
Я думаю, вы либо неправильно истолковываете мои утверждения, либо определение собственного значения. Пожалуйста, взгляните на то, что означает собственное значение матрицы. 3 x 3 матрица имеет 3 собственных значения (с учетом кратностей). Но, используя Eigen library, вы можете найти их, не делая 3 * 3 = 9 разложений на собственные значения. – Anton