Пытаюсь запрограммировать алгоритм на C++, использую библиотеку Eigen.
Проблема в том, что мне нужно решить следующее уравнение на C++:
Find the coefficients: s1,..., sn ∈ R such that a(-1)ψi = s1ψ1 +...+snψn
ψi:
матрицы известны.
Пытаюсь запрограммировать алгоритм на C++, использую библиотеку Eigen.
Проблема в том, что мне нужно решить следующее уравнение на C++:
Find the coefficients: s1,..., sn ∈ R such that a(-1)ψi = s1ψ1 +...+snψn
ψi:
матрицы известны.
Используя обозначения вашего комментария, сформируйте вектор неизвестных y:=[a,b,c]
, сформируйте правосторонний вектор f
, содержащий коэффициенты матрицы X
, как вектор, и аналогично сформируйте матрицу A
, в которой j-й столбец соответствует элементов матрицы Mj
.
Теперь вам нужно решить переопределенную задачу вида A*y = f
. Предполагая, что вы ищете решение методом наименьших квадратов, вы можете прочитать эту страницу документа. для получения подробной информации о том, как использовать Eigen для этой задачи.
A.col(j) = VectorXd::Map(Mj.data(), A.rows())
. И у нас есть A.rows() == Mj.rows()*Mj.cols()
- person ggael; 16.05.2013