Есть ли надежда на эффективное решение следующей линейной системы итерационным методом?
с участием
, где - очень разреженная матрица с несколькими диагоналями, возникающая в результате дискретизации оператора Лапласа. На его главной диагонали и есть еще диагоналей с на нем.- 6 6 1
является полной матрицей которая полностью состоит из единиц.
Решение отлично работает с итерационными методами, такими как Gauss-Seidel, потому что это разреженная диагонально доминирующая матрица. Я подозреваю, что проблему практически невозможно эффективно решить для больших чисел , но есть ли способ ее решить, используя структуру ?A = ( Δ - K ) n K
РЕДАКТИРОВАТЬ: будет делать что-то вроде
// решить для с помощью Гаусса-Зайделя
дойти до правильного решения? Я читал, что такой метод расщепления сходится, если , где - спектральная норма. Я вручную вычислил собственные значения для некоторых разных небольших значений и все они равны нулю, кроме значения, которое имеет довольно высокое отрицательное значение. (около ~ 500 для ) Так что я думаю, это не сработает.ρ Δ - 1 K n n = 256
РЕДАКТИРОВАТЬ: Больше информации о :
является симметричным, отрицательно определенным и диагонально доминирующим.
Это сделано следующим образом в Matlab
n=W*H*D;
e=ones(W*H*D,1);
d=[e,e,e,-6*e,e,e,e];
delta=spdiags(d, [-W*H, -W, -1, 0, 1, W, W*H], n, n);
Ответы:
Есть два варианта, которые, если вы используете разумные структуры данных, могут решить проблему с на ноутбуке и n ≈ 10 12 на суперкомпьютере. Обратите внимание, что для эффективности вы должны использовать multigrid для решения с Δ . Стоимость в любом случае будет небольшим фактором дороже, чем просто решение с Δ . Два подхода эквивалентны через аргумент дополнения Шура, но я опишу их отдельно, потому что реализация отличается.n>106 n≈1012 Δ Δ
где - вектор-столбец, состоящий из всех единиц и решающий системуe
используя итеративный или прямой решатель.
источник