2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Как численно решать линейные задачи с нулевым определителем?
Сообщение11.12.2023, 10:35 
Аватара пользователя


12/03/11
688
Допустим определитель линейной системы нулевой (система конечно очень большая).
Нужно какое-нибудь ненулевое решение, скажем вектор единичной длины.
Есть ли какое-нибудь стандартное численное решение такой задачи?

 Профиль  
                  
 
 Re: Как численно решать линейные задачи с нулевым определителем?
Сообщение11.12.2023, 11:01 
Заслуженный участник


13/12/05
4520
Можно попробовать минимизировать сумму квадратов невязок.

 Профиль  
                  
 
 Re: Как численно решать линейные задачи с нулевым определителем?
Сообщение11.12.2023, 11:32 
Заслуженный участник
Аватара пользователя


01/09/13
4321
Псевдообратная матрица не подходит?
И вроде бы, всё это хорошо реализовано в MatLab'е - можно посмотреть конкретные детали...

 Профиль  
                  
 
 Re: Как численно решать линейные задачи с нулевым определителем?
Сообщение12.12.2023, 10:42 
Заслуженный участник
Аватара пользователя


11/03/08
9551
Москва
Сингулярное разложение?
(И вообще - лучше конкретно описать задачу, "рецепта на все случаи жизни" не существует).

 Профиль  
                  
 
 Re: Как численно решать линейные задачи с нулевым определителем?
Сообщение12.12.2023, 12:05 
Заслуженный участник
Аватара пользователя


30/01/09
6686
Евгений Машеров в сообщении #1622085 писал(а):
И вообще - лучше конкретно описать задачу

Для начала - система совместная или нет? Иначе, как понять требование:
DLL в сообщении #1621899 писал(а):
Нужно какое-нибудь ненулевое решение, скажем вектор единичной длины.

 Профиль  
                  
 
 Re: Как численно решать линейные задачи с нулевым определителем?
Сообщение19.12.2023, 21:05 
Аватара пользователя


12/03/11
688
Да, система совместная.
Правая часть нулевая!

 Профиль  
                  
 
 Re: Как численно решать линейные задачи с нулевым определителем?
Сообщение19.12.2023, 23:14 


11/08/18
363
DLL в сообщении #1623041 писал(а):
Да, система совместная.
Правая часть нулевая!

Не, это совсем не задача с линейной системой, а задача на поиск нулевых сингулярных чисел и соответсвующих им сингулярных векторов.

Как решать - зависит от того, какая точность Вас интересует и какова размерность задачи.

Например, если Вас $O(N^3)$ вычислительной сложности не напрягает и $O(N^2)$ памяти у Вас имеется, то надо просто посчитать нулевые сингулярные вектора. Тогда решением будет любая линейная комбинация всех правых сингулярных векторов, которые соответсвуют нулевым сингулярным значениям.

Если столько ресурсов нет, то надо смотреть в сторону итерационных алгоритмов Ланцоша и Арнольди, возможно с рестартом. При больших размерностях матриц не забывать, что численно вычисленное скалярное произведение двух очень больших по размерности векторов имеет большую численную ошибку, которая накапливается в таких итерационных методах, если на это не обращать внимание.

Если задача не рыба, не мясо, или матрица не большая, но хочется решать быстро, то надо делать $QR$ c rank-revealing, и использовать верхний недотреугольник для получения решения.

 Профиль  
                  
 
 Re: Как численно решать линейные задачи с нулевым определителем?
Сообщение20.12.2023, 08:35 
Заслуженный участник
Аватара пользователя


30/01/09
6686
И тут ещё интересен вопрос, какими инструментами (библиотеками программ, мат. пакетами) можно пользоваться?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group