C++ Eigen svd.singularValues() возвращает только ненулевые значения. Как мне получить и нулевые?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 C++ Eigen svd.singularValues() возвращает только ненулевые значения. Как мне получить и нулевые?

Сообщение Anonymous »

Я пытаюсь вычислить нулевое пространство матрицы (в данном случае матрицы с одной строкой, то есть вектора).
Для этого я вычисляю ее SVD, используя метод Класс Eigen::JacobiSvd (Изменить: передать ComputeFullV в качестве параметра). У него есть функция SingleValues, которая возвращает вектор с сингулярными значениями матрицы.
РЕДАКТИРОВАТЬ: мне конкретно нужен ортонормированный базис, который SVD гарантирует по умолчанию, в то время как другие виды разложений не обязательно.
Проблема в том, что он возвращает только ненулевые значения, а меня интересуют нулевые значения (и какие сингулярные векторы им соответствуют) для вычисления пустое пространство. Есть ли способ также получить нулевые значения, чтобы найти соответствующие им столбцы?
Я искал в документации Eigen класс JacobiSvd, чтобы найти дополнительную информацию о его функции-члене, но не удалось найти. Я смотрел не туда?
Редактировать 2: это функция, которую я использую:

Код: Выделить всё

Eigen::MatrixXd nullspace(const Eigen::MatrixXd& mat, double tol = 1e-5) {
// Perform SVD
Eigen::JacobiSVD svd(mat, Eigen::ComputeFullU | Eigen::ComputeFullV);

// Get the singular values
Eigen::VectorXd singularValues = svd.singularValues();
// debug
cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78754772/c-eigen-svd-singularvalues-returns-only-the-nonzero-ones-how-do-i-get-the-z[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»