NewMat11 - это хорошая, простая в использовании и довольно легкая матричная библиотека для высокоуровневых матричных операций (Eigensystems, SVD, QR, LU, reverse).Вы можете легко объявить и построить матрицу из массива как:
Matrix M(numRows,numCols);
M << array;
Доступ к элементам матрицы как:
M.element(i,j);
Взять транспонирование:
M.t();
Взять обратное:
M.i();
Умножается только на *:
M*M
И может довольно легко выполнять другие операции, такие как: SVD, QR, LU и т. Д.
Предоставление псевдо-обратная операция (обратная Мура-Пенроуза) явно не является обязательной для библиотеки, потому что вы можете легко вычислить ее, используя операции транспонирования и инверсии, как показано ниже:
если строка> столбец, то псевдообратная (решение наименьших квадратов) может быть вычислено как: M_PseudoInv = (M T M) -1 M T
, если строка
T (MM
T )
-1