2014 dxdy logo

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

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




 
 Решение матричного уравнения для ковариационной матрицы
Сообщение25.09.2013, 19:00 
С использованием линейной теории возмущений получено
следующее уравнение для ковариационной матрицы $C$:
$A C A^T = G$

Особенности:
1) A - разреженная невырожденная матрица высокой размерности (порядка $10^6$);
2) G - полная матрица с выраженной диагональной частью.
3) Решение $C$ желательно найти в виде $C = \sum c_i_jx_ix_j^T$ (для удобства хранения и выполнения операции обращения).

Может ли кто-нибудь дать ссылку на работы в которых решалась подобная задача?

 
 
 
 Re: Решение матричного уравнения для ковариационной матрицы
Сообщение26.09.2013, 14:25 
Аватара пользователя
С.Писсанецки. Технология разреженных матриц (1988)

Эстербю О., Златев З. (Osterby, Zlatev). Прямые методы для разреженных матриц

http://bookfi.org/s/?q=%D1%80%D0%B0%D0% ... %D1%8B&t=0

 
 
 
 Re: Решение матричного уравнения для ковариационной матрицы
Сообщение26.09.2013, 16:31 
Благодарю за высланные Вами ссылки по работе с разреженными матрицами.
У меня остался ещё один вопрос. Сейчас я рассматриваю два способа решения уравнения $ACA^T=G$.
1. Посредством разложения матрицы $A$ в сумму проекторов на её собственные подпространства.
Этот подход потребует расчёта собственных векторов $A$.
2. Посредством разложения матрицы $G$ в сумму $\sum p_i q_j^T$ и последующего решения уравнений $Ax=p_i, Ay=q_j$. Тогда решение матрицы $C$ получим в виде $C=\sum x_i y_j^T$.

На мой взгляд подход №2 потребует меньших вычислительных затрат, так как задача нахождения собственных векторов более трудоёмка, чем задача о решении нескольких уравнений вида $Ax=f$. Некоторые сомнения возникают из-за вида матрицы $G$, которая плохо раскладывается в ряд $\sum p_i q_j^T$ из-за ярко выраженной диагональной части. Понятно, что окончательный ответ на вопрос об эффективности можно дать лишь проведя исследования скорости сходимости обоих методов для конкретной задачи.

Мой вопрос заключается в следующем: существуют ли более эффективные подходы для решения уравнения $ACA^T=G$ чем №1,2 и где можно найти их описание?

 
 
 
 Re: Решение матричного уравнения для ковариационной матрицы
Сообщение26.09.2013, 16:53 
Аватара пользователя
Существуют готовые алгоритмы для решения подобных задач на С++, FORTRAN. Сам когда-то решал задачу на собственные значения. Но у Вас "хорошее" число $10^{6}$. Это прямые методы. Воспользуйтесь "подготовкой", приведите к "удобному" виду: ленточной, треугольной, симметричной матрице. Для этого тоже есть готовые алгоритмы. На чем считать собираетесь ? Какой-нибудь мейнфрейм ? Имейте в виду, что в этих процедурах
матрицы хранятся в виде одномерных векторов, для ускорения доступа к памяти. Этот
момент часто оказывается "ловушкой" для программиста.

 
 
 
 Re: Решение матричного уравнения для ковариационной матрицы
Сообщение27.09.2013, 23:56 
Спасибо за совет. Собираемся одну задачу решить в качестве примера с использованием библиотеки scipy python.
Но моя главная цель состоит в написании отчета, в котором в частности фигурирует та задача, о решении которой я спрашиваю. Мне необходимо сформулировать возможные способы её решения и отметить наиболее эффективные из них.
При этом алгоритмы решения задач на собственные значения и СЛАУ считаются уже реализованными.

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group