Согласно ответу здесь , большое число условий (для линейного решения системы) уменьшает гарантированное количество правильных цифр в решении с плавающей запятой. Матрицы дифференцирования более высокого порядка в псевдоспектральных методах обычно очень плохо обусловлены. Почему же они все еще очень точные методы?
Я понимаю, что низкая точность, исходящая из плохо обусловленных матриц, является только гарантированным значением, но все же меня удивляет, почему плохо обусловленные матрицы точно решаются прямыми методами на практике - например, LCOL
столбцы таблицы 3.1 на стр. 11 Wang et al., ХОРОШИЙ МЕТОД КОЛЛОКАЦИИ С ИСПОЛЬЗОВАНИЕМ МАТРИЦЫ ПСЕВДОСПЕКТРАЛЬНОЙ ИНТЕГРАЦИИ , SIAM J. Sci. Comput., 36 (3) .
spectral-method
precision
condition-number
Золтан Цати
источник
источник
Ответы:
Добавлено после моего первоначального ответа:
Теперь мне кажется, что автор упомянутой статьи дает номера условий (очевидно, 2-нормальные номера условий, но, возможно, номера условий бесконечности норм) в таблице, в то же время давая максимальные абсолютные ошибки, а не относительные ошибки нормы или максимальные относительные ошибки по элементам все это разные меры.) Обратите внимание, что максимальная поэлементная относительная ошибка - это не то же самое, что относительная ошибка в бесконечности. Кроме того, ошибки в таблице связаны с точным решением краевой задачи исходного дифференциального уравнения, а не с дискретной линейной системой уравнений. Таким образом, информация, представленная в документе, действительно не подходит для использования с ошибкой, связанной с номером условия.
Однако в моей репликации вычислений я вижу ситуации, когда относительная ошибка нормы бесконечности (или относительная ошибка двух норм) существенно меньше границы, установленной номером условия бесконечности нормы (соответственно, 2-нормальным числом условия). Иногда тебе просто везет.
Я использовал пакет DMSUITE MATLAB и решил примерную задачу из этой статьи, используя псевдоспектральный метод с полиномами Чебышева. Мои показатели состояния и максимальные абсолютные ошибки были аналогичны тем, о которых сообщалось в статье.
Я также видел нормальные относительные ошибки, которые были несколько лучше, чем можно было бы ожидать на основе номера условия. Например, на примере задачи с , используя N = 1024 , я получаюϵ=0.01 N=1024
Cond (А, 2) = 7.9e + 8
Cond (А, инф) = 7.8e + 8
норма (U-uexact, 2) / норма (uexact, 2) = 3.1e-12
норма (U-uexact, инф) / норма (uexact, инф) = 2.7e-12
Казалось бы, решение подходит для 11-12 цифр, а номер условия порядка 1e8.
Однако ситуация с поэлементными ошибками более интересна.
макс (абс (U-uexact)) = 2.7e-12
Это все еще выглядит хорошо.
макс (абс ((и-uexact) ./ uexact) = 6.1e + 9
Ничего себе - есть очень большая относительная ошибка по крайней мере в одном компоненте решения.
Что произошло? Точное решение этого уравнения имеет крошечные компоненты (например, 1,9e-22), в то время как приблизительное решение достигает гораздо большего значения 9e-14. Это скрыто нормальным измерением относительной ошибки (будь то 2-норма или бесконечность-норма) и становится видимым только тогда, когда вы смотрите на элементарные относительные ошибки и берете максимум.
Мой оригинальный ответ ниже объясняет, почему вы можете получить относительную ошибку нормы в решении, которая меньше границы, заданной номером условия.
Как вы отметили в этом вопросе, число условий неособой матрицы дает оценку относительной ошибки в худшем случае для решения возмущенной системы уравнений. То есть, если мы точно решим A ( x + Δ x ) = b + Δ b и точно определим A x = b , тоκ(A) ( Х + Δ х ) = Ь+Δb A x = b
Номера условий могут быть вычислены с учетом различных норм, но часто используется номер условия с двумя нормами, и это номер условия, используемый в статье, на которую вы ссылаетесь.
Худшем случае ошибки случай имеет место , когда является левым особым вектором A , соответствующий наименьшей сингулярного значения A . Наилучший случай имеет место, когда ΔΔb A A является левым особым вектором A , соответствующий наибольшему значению особой A . Когда Δ b является случайным, то вы должны смотреть на проекции Δ b на все левые особые векторы A и соответствующие особые значения. В зависимости от спектра А , дела могут идти очень плохо или очень хорошо. Δb A A Δb Δb A A
Рассмотрим две матрицы , обе с условным числом 2-нормы 1.0 × 10 10 . Первая матрица имеет сингулярные значения 1 , 1 × 10 - 10 , … , 1 × 10 - 10A 1.0×1010 1 1×10−10 … 1×10−10 . Вторая матрица имеет особые значения , 1 , … , 1 , 1 × 10 - 10 . 1 1 … 1 1×10−10
В первом случае случайное возмущение вряд ли будет в направлении первого левого сингулярного вектора и, более вероятно, будет близко к одному из сингулярных векторов с сингулярным значением . Таким образом, относительное изменение в решении, вероятно, будет очень большим. Во втором случае практически любое возмущение будет близко по направлению к сингулярному вектору с сингулярным значением 1 , и относительное изменение в решении будет небольшим.1×10−10 1
PS (добавлено позже, когда я вернулся с занятий йогой ...)
Формула для решения имеет видAΔx=Δb
По теореме Пифагора,
Если мы продолжим , то эта сумма максимальна , когда Δ б = U н и свести к минимуму , когда Δ б = U 1 .∥Δb∥2=1 Δb=Un Δb=U1
В ситуации , рассматриваемой здесь, является результатом случайных ошибок округления, так что U T я Д Ь значений все должны быть примерно той же величина. Слагаемые с меньшими значениями σ я внесет большой вклад в ошибку, в то время как члены с большими значениями сг я не будет способствовать много. В зависимости от спектра, это может быть намного меньше, чем предел наихудшего случая.Δb UTiΔb σi σi
источник
?getrs
Т.Л., д - р Они сообщили в число обусловленности, но не обязательно правильное число обусловленности для матрицы, потому что есть разница.
*getrs
For your example, I took a pseudospectral differential operator for a similar problem withn=128 , and there is in fact a big difference between ∥|A−1||A|∥ and κ∞(A) , I computed 7×103 and 2.6×107 , which is enough to explain the observation that this happens for all right hand sides, because the orders of magnitudes roughly match what is seen in Table 3.1 (3-4 orders better errors). This doesn't work when I try the same for just a random ill-conditioned matrix, so it has to be a property of A .
An explicit example for which the two condition numbers don't match, which I took from Higham (7.17, p.124), due to Kahan is
[1:10]
with randomMatrixDepot.jl
and some other ill-conditioned matrices also produce this type of result, liketriw
andmoler
.Essentially, what's going on is that when you analyze the stability of solving linear systems with respect to perturbations, you first have to specify which perturbations you are considering. When solving linear systems with LAPACK, this error bound considers component-wise perturbations inA , but no perturbation in b . So this is different from the usual κ(A)=∥A−1∥∥A∥ , which considers normwise perturbations in both A and b .
Consider (as a counterexample) also what would happen if you don't make the distinction. We know that using iterative refinement with double precision (see link above) we can get the best possible forward relative error ofO(u) for those matrices with κ(A)≪1/u . So if we consider the idea that linear systems can't be solved to accuracy better than κ(A)u , how would refining solutions possibly work?
P.S. It matters thatE in A , but no perturbation in b . Things would be different if perturbations were allowed in b .
?getrs
says the computed solution is the true solution of(A + E)x = b
with a perturbationEdit To show this working more directly, in code, that this is not a fluke or a matter of luck, but rather the (unusual) consequence of two condition numbers being very different for some specific matrices, i.e.,
Edit 2 Here is another example of the same phenomenon where the different conditions numbers unexpectedly differ by a lot. This time,
Average case (almost 9 orders of magnitude better error):
Worst case (a=1,…,12 ):
Edit 3 Another example is the Forsythe matrix, which is a perturbed Jordan block of any size of the form
Edit 4 Kahan matrices are also like this, withcond(A)≪κ(A) :
источник