2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Разложение Холецкого
Сообщение28.03.2012, 21:39 


01/03/12
36
Приветствую!
Не могли бы вы, как программисты и математики, помочь советом по небольшому вопросу, возникшему в процессе нашей работы?

Суть вот в чем.
В своих расчетах акустических задач мной используются разреженные матрицы полученные по методу конечных элементов.

Даные матрицы - симметричные, комплексные и разреженные. Именно симметричные, а не Эрмитовы.

Мы нашли способ оптимизации скорости вычислений, но для этого нам нужно факторизовать исходную матрицу (сделать разложение Холецкого) и затем провести некоторые манипуляции с факторами.

Для справки. Разложение Холецкого - представление исходной положительно определенной матрицы в виде произведения нижнетреугольной и верхнетреугольной матриц, а именно A=LLt, где А - исходная матрица, L - нижнетреугольная матрица, t - транспонирование.

Так вот.
Большая часть существующих математических библиотек не позволяет вытащить L фактор в процессе решения.

Есть библиотека Флоридского университета, которая позволяет провести быстую факторизацию Холецкого, и вывести факторы.

Однако эта библиотека может проделывать операции только с положительно определенным матрицами. Кроме того, эта библиотека работает с эрмитовыми матрицами, разлагая их как A=LLh, (h - комплексно сопряженное транспонирование).

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

В действительности же специфика наших задач позволяет проигнорировать это ограничение, что я проверил на нескольких тестовых расчетах в матлабе.

Вот теперь два вопроса.

1. Можно ли изменить исходный код этой флоридской библиотеки (исходники вроде бы есть и написаны они на СИ, а я в этом не понимаю ничего), чтобы она игнорировала проверку на корень из отрицательного числа, и делала не LLh разложение, а LLt?

(Ссылка, если что http://www.cise.ufl.edu/research/sparse/cholmod)

2. Мог бы кто-нибудь это проделать?

Спасибо.

 Профиль  
                  
 
 Re: Разложение Холецкого
Сообщение29.03.2012, 14:29 
Заслуженный участник


15/05/05
3445
USA
1. Раз Вы понимаете, что
Цитата:
Разложение Холецкого - представление исходной положительно определенной матрицы...
то не должны жаловаться, что
Цитата:
эта библиотека может проделывать операции (т.е. разложение Холецкого) только с положительно определенными матрицами

2. Попробуйте LDL-разложение ($A = L D L^T$) с соседней страницы:
Цитата:
LDL is a set of concise routines for factorizing symmetric positive-definite sparse matrices, with some applicability to symmetric indefinite matrices.

3. Если Ваши матрицы - не положительно определенные, то используйте методы общего вида (A=LU), например, QR или LQ разложение. В той же самой библиотеке Флоридского университета есть QR.

4. Для вещественных матриц эрмитовость - это та же симметричность.

 Профиль  
                  
 
 Re: Разложение Холецкого
Сообщение29.03.2012, 15:44 


01/03/12
36
Yuri Gendelman в сообщении #553435 писал(а):
Попробуйте LDL-разложение () с соседней страницы:Цитата:LDL is a set of concise routines for factorizing symmetric positive-definite sparse matrices, with some applicability to symmetric indefinite matrices.


Во-первых, данная реализация очень медленная.
Во-вторых для комплексных симметричных не работает.

-- 29.03.2012, 16:45 --

Yuri Gendelman в сообщении #553435 писал(а):
. Если Ваши матрицы - не положительно определенные, то используйте методы общего вида (A=LU)


Да так можно сделать, но при этом потребности во времени вычислений и оперативной памяти возрастают в два раза, и 64Гб оперативки уже не хватает

 Профиль  
                  
 
 Re: Разложение Холецкого
Сообщение29.03.2012, 21:06 


13/01/12
317
Петербург
Suvorov.as в сообщении #553452 писал(а):
при этом потребности во времени вычислений и оперативной памяти возрастают в два раза, и 64Гб оперативки уже не хватает
как с вами связаться по е-майлу?

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

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

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