Здесь есть два отдельных вопроса.
- Как использовать эффективные решатель для для применения A 1 / 2 б .Ax=bA1/2b
- Как вычислить определитель.
Краткие ответы: 1) использовать приближения рациональных матричных функций и 2) нет, но в любом случае вам это не нужно. Я рассматриваю оба эти вопроса ниже.
Матрица квадратного корня
Идея состоит в том, чтобы преобразовать приближение рациональной функции для скалярных функций в приближение рациональной функции для матричных функций.
Мы знаем, что существуют рациональные функции, которые могут очень хорошо аппроксимировать функцию квадратного корня,
для положительногоbi. Действительно, чтобы получить высокую точность на интервале[m,M], вам нужноO(logM
x−−√≈r(x):=a1x+b1+a2x+b2+⋯+aNx+bN,
bi[m,M]условия в серии. Чтобы получить подходящие веса (
ai) и полюса (
-bi), просто найдите рациональное приближение функции онлайн или в книге.
O(logMm)ai−bi
Теперь рассмотрим применение этой рациональной функции к вашей матрице:
r(A)=a1(A+b1I)−1+a2(A+b2I)−1+⋯+aN(A+bNI)−1.
AA=UΣU∗A
||A1/2−r(A)||2=||U(Σ1/2−r(Σ))U∗||2,=maxi|σi−−√−r(σi)|
A=UΣU∗A
Обозначив число условия через , мы можем применить к любому желаемому допуску, выполнив положительно смещенный граф лапласовых решений вида
Κ 1 / 2 б O ( журнал κ ) ( + б I ) х = Ь .AκA1/2bO(logκ)
(A+bI)x=b.
Эти решения могут быть сделаны с вашим любимым графическим лапласовским решателем - я предпочитаю методы многосеточного типа, но тот, который вы цитируете, тоже подойдет. Дополнительный только помогает сходимости решателя.bI
Отличная статья, в которой обсуждается это, а также более общие методы комплексного анализа, применимые к несимметричным матрицам, см. разделе « Вычисление , и связанных матричных функций с помощью контурных интегралов» лог ( )Aαlog(A) , Hale, Higham и Trefethen (2008). ).
Определитель "вычисления"
Детерминант сложнее вычислить. Насколько я знаю, лучший способ вычислить разложение Шура с помощью QR - алгоритма, а затем считывать собственные от диагонали верхней треугольной матрицы . Это занимает времени, где - количество узлов в графе.A=QUQ∗UO(n3)n
Однако вычисление детерминантов является изначально плохо обусловленной проблемой, поэтому, если вы когда-либо читали статью, которая основывается на вычислении детерминантов большой матрицы, вы должны очень скептически относиться к этому методу.
К счастью, вам, вероятно, не нужен определитель. Например,
Мы можем рассматривать как низкоуровневое обновление идентификатора,
где эффективный числовой ранг низшего ранга является локальной мерой того, насколько негауссово истинное распределение; обычно это намного ниже, чем полный ранг матрицы. В самом деле, если велико, то истинное распределение локально настолько негауссово, что следует подвергнуть сомнению всю стратегию попытки выборки этого распределения с использованием локальных гауссовых приближений.A−1x0Axp
A−1x0Axp=I+QDQ∗,
rr
Факторы низкого ранга и можно найти с помощью рандомизированных SVD или Lanczos, применяя матрицу
к различным векторам, для каждого применения которых требуется один граф Лапласово решение. Таким образом, общая работа по получению этих факторов низкого ранга составляет .QD
A−1x0Axp−I
O(r)O(rmax(n,E))
Зная , отношение определителей будет тогда
det ( A - 1 x 0 A x p ) = det ( I + Q D Q ∗ ) = exp ( r ∑ i = 1 log d i ) .D=diag(d1,d2,…,dr)
det(A−1x0Axp)=det(I+QDQ∗)=exp(∑i=1rlogdi).
Эти методы расчета коэффициента детерминанта низкого ранга можно найти в методе стохастического Ньютона MCMC для крупномасштабных статистических обратных задач с применением к сейсмической инверсии , Martin, et al. (2012). В этой статье он применяется к задачам континуума, поэтому «граф» - это сетка в трехмерном пространстве, а граф Лапласа - это действительная матрица Лапласа. Однако все техники применимы к лапласианам общего графа. Вероятно, есть и другие статьи, в которых этот метод применяется к общим графам (расширение тривиально и, в основном, то, что я только что написал)