У меня есть линейная система уравнений размером mxm, где m большое. Однако интересующие меня переменные - это только первые n переменных (n мало по сравнению с m). Есть ли способ, которым я могу приблизить решение для первых значений m без необходимости решения всей системы? Если это так, будет ли это приближение быстрее, чем решение полной линейной системы?
15
Ответы:
Как уже отмечали другие, это трудно сделать с прямым решателем. Тем не менее, это не так сложно сделать с итеративными решателями. Для этого отметим, что большинство итерационных решателей так или иначе сводят к минимуму ошибку по отношению к некоторой норме. Часто эта норма либо индуцируется самой матрицей, но иногда она также является векторной нормой l2. Но это не обязательно так: вы можете выбрать, в какой норме вы хотите минимизировать ошибку (или остаточную величину), и вы можете, например, выбрать норму, в которой вы взвешиваете компоненты, которые вам нужны, с 1 и все остальные с 1e-12, то есть, например, что-то вроде (1e-24) Σ N я = 6 х 2 я и соответствующее скалярное произведение. Затем запишите все шаги итерационного решателя относительно этой нормы и скалярного произведения, и вы получите итерационный решатель, который уделяет значительно больше внимания интересующим вас векторным элементам, чем другим.||x||2=∑5i=1x2i+ ∑Ni=6x2i
Вопрос, конечно, заключается в том, нужно ли вам меньше итераций, чем при использовании скалярного продукта, который взвешивает все компоненты одинаково. Но это действительно должно быть так: допустим, вы заботитесь только о пяти первых векторных элементах. Тогда вам нужно не более пяти итераций, чтобы уменьшить ошибку в 1e12 раз, поскольку для описывающей их системы 5x5 требуется пять итераций. Это не доказательство, но я вполне уверен, что вам действительно следует избегать гораздо меньшего числа итераций, если вес в норме (1e-12 выше) меньше, чем допуск, с которым вы хотите решить линейную систему итеративно ,
источник
Формирование дополнения Шура
Предположим, что вы переставили и разбили свою матрицу на форму
так что содержит ваши степени свободы интересов и намного меньше, чем A 11 , тогда можно сформировать дополнение ШураA22 A11
либо с помощью частичной правосторонней факторизации LU, либо с помощью явной формулы, а затем можно понять в следующем смысле:S22
где представляет «неинтересную» часть решения. Таким образом, обеспечивается правая часть, которая является ненулевой в степенях свободы дополнения Шура⋆ , нам нужно только решить противS22 , чтобы получить часть решения, соответствующую этим степеням свободы.S22
Вычислительная сложность в неструктурированном плотном случае
Установка на высоту A и n на высоту A 22 , затем стандартный метод для вычисления S 22N A N A22 S22 является первый множитель (давайте пока проигнорируем поворот) примерно в 2 /L11U11: = A11 работы, чтобы потом сформировать2 / 3 ( N- н )3
используя два треугольных решения, требующих работы каждый, а затем выполняя обновление до A 22 вn ( N- н )2 A22 работы.2 н2( N- н )
Таким образом, общая работа составляет примерно . Когда n очень мало, N - n ≈ N2 / 3 ( N- н )3+ 2 n ( N- н )2+ 2 н2( N- н ) N N- n ≈ N , так что стоимость может быть видно, что примерно , который является стоимость полного разложения.2 / 3 Н3
Преимущество состоит в том, что, если существует очень большое количество правых частей, которые должны быть решены с помощью одной и той же системы уравнений, то потенциально может быть многократно использован много раз, где для каждого решения потребуется только 2 n 2 работы. (а не 2 N 2 работают), если S 22 учтено.S22 2 н2 2 N2 S22
Вычислительная сложность в (типичном) разреженном случае
Если ваша разреженная система возникла из некоторого типа конечно-разностного или конечно-элементного приближения, то решатели разреженного прямого порядка почти наверняка смогут использовать некоторые структуры; 2d системы могут быть решены с помощью работы и O ( N журнал N ) хранения, в то время как 3D - системы могут быть решены с помощью O ( N 2 ) работы и O ( N 4 / 3 ) для хранения. Факторизованные системы могут быть решены с тем же объемом работы, что и требования к хранилищу.O ( N3 / 2) O ( NжурналN) O ( N2) O ( N4 / 3)
Смысл воспитания вычислительных сложностей заключается в том, что если и у вас есть двумерная система, тогда, поскольку дополнение Шура, вероятно, будет плотным, сложность решения с учетом факторизованного дополнения Шура будетO(n2)=n ≈ N−-√ , в котором отсутствует только логарифмический фактор по сравнению с решением полного система! В 3d, она требует O ( N ) работу вместо O ( N 4 / 3 ) .O ( n2)=O(N) O(N) O(N4/3)
Поэтому важно иметь в виду, что в вашем случае, когдаn=N−−√ , будет существенная экономия только в том случае, если вы работаете в нескольких измерениях и вам нужно решить множество правых сторон.
источник
Модельный подход сокращения
Поскольку Павел спросил, я расскажу о том, что произойдет, если вы воспользуетесь методами сокращения проекционных моделей для этой проблемы. Предположим, что вы могли бы придумать проектор такой, что диапазон P , обозначаемый R ( P )P P R(P) , содержит решение вашей линейной системы и имеет размерность k , где kAx=b k k - число неизвестных, для которых вы хотите решить в линейной системе.
Разложение по сингулярному значению даст следующую секционированную матрицу:P
Матрицы, скрытые звездами, имеют значение для других вещей (например, для оценки ошибки и т. Д.), Но пока мы будем избегать посторонних деталей. Это следует из того
является полным рангом разложение .P
По сути, вы решите систему
в умном способе, так как и W также имеет свойство , что W T V = I . Умножение обеих сторон P A x = PV W WTV=I от W T и позволяя у = V хPAx=Pb WT y=Vxˆ быть приближение для выходовx
Решите для х , предварительного умножения его на V , и у вас есть у , ваше приближение для хxˆ V y x .
Почему метод дополнения Шура, вероятно, лучше
Для начала, вы должны выбрать как-то. Если решение A x = b находится в R ( P ) , то y =P Ax=b R(P) , а y не является приближением. В противном случае y ≠ x , и вы вводите некоторую ошибку аппроксимации. Этот подход на самом деле не использует всю структуру, которую вы упомянули, желая использовать. Если мы выберем P так , чтобы его диапазон был стандартной единицей измерения в координатах x, которые вы хотите вычислить, соответствующие координаты y будут содержать ошибки. Непонятно, как вы хотите выбратьy=x y y≠x P x y . Вы могли бы использовать SVD AP A , например, и выбрать как произведение первых k левых сингулярных векторов A и присоединения первых k правых сингулярных векторов A , предполагая, что сингулярные векторы расположены в убывающем порядке единственное значение. Этот выбор проектора был бы эквивалентен выполнению правильного ортогонального разложения на A , и это минимизировало бы ошибку L 2 в приближенном решении.P k A k A A 2
В дополнении к внедрению ошибки аппроксимации, этот подход также вводит три дополнительных матричные умножает на верхней часть линейного решения меньшей системы и работы , необходимую для вычисления , и W . Если вы не решаете одну и ту же линейную систему много, меняя только правую сторону, и PV W P по-прежнему является «хорошей» проекционной матрицей для всех этих систем, эти дополнительные затраты, вероятно, сделают решение сокращенной системы более дорогим, чем решение вашей оригинальная система.
Недостатки во многом похожи на подход Джекпулсона, за исключением того, что вы недостаточно эффективно используете упомянутую вами структуру.
источник
Длинный ответ ... вроде.
Вы можете перестроить свою систему уравнений так, чтобы самые дальние правые столбцов были переменными, для которых вы хотите решить.k
Шаг 1. Выполните исключение Гаусса, чтобы матрица была верхней треугольной. Шаг 2: решить путем обратной замены только первого (последнего)k переменных, которые вас интересуют
Это избавит вас от вычислительной сложности, связанной с необходимостью поиска последних переменных с помощью обратной подстановки, что может стоить того, если n будет таким большим, как вы говорите. Имейте в виду, что для шага 1 еще предстоит проделать значительную работу.n−k n
Кроме того , имейте в виде , что ограничение порядка , в котором вы собираетесь выполнять резервное substituion может ограничить вид матрицы (она отнимает способность обменных колонн) , которые могли бы , возможно , привести к системе плохо обусловленной, но я не являюсь уверен в этом - просто что-то иметь в виду.
источник