2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Норма невязки
Сообщение07.04.2020, 21:25 


07/10/15

2400
При итеративном уточнении обратной матрицы методом Шульца
$$B^{-1}_{k+1}=B^{-1}_{k}(2E-B\cdot B^{-1}_{k})$$
рано или поздно, а на практике - уже через 2-3 итерации, достигается предельная точность, с смысле нормы невязки
$$\delta =||E-B\cdot B^{-1}_{k}||$$

Так как объективно, в исходных данных для расчёта имеется лишь матрица $B$ и eps, разумно предположить, что именно они и определяют эту остаточную невязку. Причём, у меня возникает предположение, что
$$\delta \to ||B||\cdot eps $$

Верно ли это предположение?

 Профиль  
                  
 
 Re: Норма невязки
Сообщение08.04.2020, 12:05 


07/10/15

2400
В общем, возникли такие соображения:
$$(B+\Delta_B)(B^{-1}_k+\Delta_{IB})=E+\Delta$$
Раскрываем скобки
$$ B\cdot B^{-1}_k+\Delta_B \cdot B^{-1}_k+B\cdot\Delta_{IB}+\Delta_{IB}\Delta_{B}=E+\Delta$$,
упрощаем, учитывая, что произведение $\Delta_{IB}\Delta_{B}$ пренебрежимо мало
$$ \Delta=\Delta_B \cdot B^{-1}_k+B\cdot\Delta_{IB}$$.

Предположим, что
$$||\Delta_B ||\leqslant ||B||\cdot eps$$ и $$||\Delta_{IB} ||\leqslant ||IB||\cdot eps$$
тогда, получается
$$ ||\Delta||\leqslant 2\cdot cond(B) \cdot eps$$

Для проверки, я вычислял следующее отношение $$\frac{||\Delta||}{2\cdot cond(B)} $$ для разных матриц после установления итеративного процесса.
В результате, получились значения, лежащие в диапазоне $1,555\cdot 10^{-17}...3,1920\cdot 10^{-17}$, т.е. максимально различающиеся всего в 2 раза.
Смущает только одно. Эти значения примерно в 8 раз меньше чем eps для чисел double, которое, если мне не изменяет память равно $eps=2,22\cdot 10^{-16}$.

Возникает интуитивное чувство, что в вышеприведённой формуле, вместо коэффициента 2 должен быть коэффициент 1/4.

Нет ли в моих рассуждениях ошибок?

 Профиль  
                  
 
 Re: Норма невязки
Сообщение08.04.2020, 22:55 
Заслуженный участник


18/01/15
3231
Andrey_Kireew

Бывают три разных оценки для ошибки: (а) теоретически доказуемая оценка, (б) результат какой-то
прикидки на пальцах, неизвестно из каких соображений, и (в) результат численного эксперимента. И они совпадать совсем не обязаны. Это не только для невязки при вычислении обратной матрицы по Шульцу, а и во всяких других ситуациях.

Теоретически, обратную матрицу можно вычислить с невязкой порядка $Cn^2\operatorname{cond}(A) \varepsilon$ (емнип). А практически всегда получается лучше (например из-за того, что в ходе вычисления возможные ошибки округления между собой сокращаются случайным образом). От результатов численного
эксперимента, как видите, "дистанция огромного размера" (в $\sim n^2$ раз).

Я когда-то тоже размышлял, как можно поточнее вычислять обратную матрицу. Не помню уж, чем там
размышления кончились. Главная философия насчет обратной матрицы, согласно книжкам, такая: почти всё, для чего её можно использовать, быстрее и проще делается без вычисления обратной матрицы. Например, когда решаем систему $Ax=b$, там же обратную матрицу $A^{-1}$ не вычисляем, не так ли ?

Про "остаточную невязку", строго говоря, говорить нельзя. Разве что про оценку для нее. Потому что
сначала результат итерации Шульца приближается к обратной матрице, потом попадает в некоторую ея
окрестность, и потом уже в этой окрестности топчется до бесконечности туда-сюда-и-в-стороны.
(Сам я никогда экспериментов такого рода так не делал (оно мне и не надо), но из общих соображений
должно быть именно так.) Если бы все вычисления делались точно, то, понятно, точность бы нарастала. Но в реальных вычислениях с плавающей точкой такого, ясно, быть не может.

 Профиль  
                  
 
 Re: Норма невязки
Сообщение08.04.2020, 23:26 


07/10/15

2400
vpb в сообщении #1452931 писал(а):
обратную матрицу можно вычислить с невязкой порядка $Cn^2\operatorname{cond}(A) \varepsilon$ (емнип)

уточните пожалуйста, что означает в этой формуле n? размер матрицы?

-- 09.04.2020, 00:31 --

vpb в сообщении #1452931 писал(а):
Я когда-то тоже размышлял, как можно поточнее вычислять обратную матрицу

У меня проблема не в этом, просто нужно определить надёжный критерий останова итераций. Всё как Вы пишите, сначала невязка уменьшается, а затем начинает "плясать" возле некоторого предела. Вот этот предел мне оценить и нужно.

Что касается точности вычислений, то на мой взгляд - это лучший метод, особенно, если уже есть хорошее начальное приближение. У меня он сходится за 1-2 итерации.

-- 09.04.2020, 00:35 --

vpb в сообщении #1452931 писал(а):
Главная философия насчет обратной матрицы, согласно книжкам, такая: почти всё, для чего её можно использовать, быстрее и проще делается без вычисления обратной матрицы.

Ну это всего лишь философия, если было бы так, то наверное темы я бы не создавал. Всё же, в некоторых приложениях от обратной матрицы отказаться сложнее, чем мириться с её вычислением

 Профиль  
                  
 
 Re: Норма невязки
Сообщение09.04.2020, 00:05 
Заслуженный участник


18/01/15
3231
Andrey_Kireew в сообщении #1452938 писал(а):
размер матрицы?
Именно так.
Andrey_Kireew в сообщении #1452938 писал(а):
Вот этот предел мне оценить и нужно.

Это я, увы, не могу сказать, как сделать. Возможно, есть работы, в которых даются соответствующие оценки (типа " при любых начальных условиях начиная с некоторого момента невязка не превосходит $n\operatorname{cond}(A)\varepsilon$". Тут я фантазирую, как на самом деле, не знаю (и есть ли такие работы вообще). ) Могу подсказать, как их можно поискать. Найдите хоть какую статью про итерацию Шульца, из нее извлеките ссылку на исходную работу Шульца, потом вбейте её в гугл сколар и посмотрите, в каких статьях на нее ссылаются. Или решайте, когда оборвать итерации, чисто интуитивно, по тому, что численные эксперименты подсказывают.

 Профиль  
                  
 
 Re: Норма невязки
Сообщение09.04.2020, 00:12 


07/10/15

2400
vpb в сообщении #1452951 писал(а):
Именно так

что то мне подсказывает, размер в этой формуле фигурировать никак не должен. Для прямых методов - возможно, но не для итеративных. Размер конечно влияет, но лишь опосредовано, через число обусловленности.

vpb а что Вы можете сказать на счёт вышеприведённых формул? На Ваш взгляд они справедливы, или ошибочны?
кстати, может быть я неудачно выбрал нормы матриц? Сейчас у меня вычисляются максимальные суммы модулей в столбцах, просто потому, что их вычислить проще всего

 Профиль  
                  
 
 Re: Норма невязки
Сообщение09.04.2020, 00:42 
Заслуженный участник


18/01/15
3231
Andrey_Kireew в сообщении #1452956 писал(а):
что то мне подсказывает, размер в этой формуле фигурировать никак не должен. Для прямых методов - возможно, но не для итеративных.
Этого не может быть. Дело в том, что уже при умножении матрицы на вектор в оценке ошибки фигурирует размер.
Andrey_Kireew в сообщении #1452956 писал(а):
а что Вы можете сказать на счёт вышеприведённых формул? На Ваш взгляд они справедливы, или ошибочны?

Вы имеете в виду формулу $\|\Delta\|\leq 2\varepsilon \operatorname{cond}(B)$, вероятно. По результатам численного эксперимента --- вероятно, справедлива. А в строгом смысле скорее всего нет.
Andrey_Kireew в сообщении #1452956 писал(а):
кстати, может быть я неудачно выбрал нормы матриц? Сейчас у меня вычисляются максимальные суммы модулей в столбцах, просто потому, что их вычислить проще всего
Я имел в виду спектральную норму ... или как она называется? Короче, индуцированную обычной евклидовой нормой на векторах. Та, о которой Вы писали ---тоже индуцированная, но другой нормой на векторах (то ли 1-нормой, то ли $\infty$-нормой, сейчас не соображу).

 Профиль  
                  
 
 Re: Норма невязки
Сообщение09.04.2020, 01:03 


07/10/15

2400
vpb в сообщении #1452965 писал(а):
По результатам численного эксперимента --- вероятно, справедлива. А в строгом смысле скорее всего нет

Так весь и вопрос то в этом. В каком месте моих рассуждений закралась ошибка? я и сам подозреваю, что где то она есть ...

А на счёт размеров, я категорически несогласен. Число обусловленности с увеличением размеров, да - растёт (где то даже встречал формулу), но оно уже заложено в формуле. Или Вы сомневаетесь в том, что норма ошибки округление матрицы?
$$||\Delta_B||\leqslant ||B||\cdot eps $$
ведь размеры могут всплыть только в этом месте.

Признаться, я и сам сомневаюсь в этой формуле, но пока не знаю в чём загвоздка.

 Профиль  
                  
 
 Re: Норма невязки
Сообщение12.04.2020, 20:45 


07/10/15

2400
Проверил всё ещё раз, оказалось, что формула
$$||\Delta||\leqslant 2\cdot cond(B)\cdot eps$$
совершенно верная, и в теории, и тем более на практике. Если подумать, то 8 кратное различие здесь ничему не противоречит, ведь это верхняя граница и она гарантированно не превышается. Наверное, можно найти примеры, для которых это различие будет другим, но не один из них не сможет превысить этой границы.

По поводу размеров - я тоже разобрался. Действительно, размеры матрицы входят в оценки точности решения СЛАУ прямыми методами, причём, в зависимости от конкретного метода, входят по разному. В случае итерационных методов, размеры матрицы, как я и предполагал, непосредственно не влияют на предельную точность решения, только - посредством возрастания числа обусловленности. Именно поэтому, в случае больших матриц прямые методы сильно уступают итерационным по точности, и практически не применяются.

 Профиль  
                  
 
 Re: Норма невязки
Сообщение13.04.2020, 22:36 
Заслуженный участник


18/01/15
3231
Пусть $B$ --- невырожденная матрица, элементы которой --- числа с плавающей точкой, $B^{-1}$ --- обратная матрица (точная), и $C$ --- матрица, полученная из $B^{-1}$ поэлементным округлением. Тогда, несомненно, $\|C-B^{-1}\|\leq\varepsilon\|B^{-1}\|$. Отсюда $\|BC-E\|\leq\varepsilon\|B\|\|B^{-1}\|=\varepsilon\operatorname{cond}(B)$. Но, в результате процесса Шульца матрица $C$ отнюдь не получается. И вообще, какова оценка для $\|\widehat C-B^{-1}\|$, где $\widehat C$ --- матрица, получающаяся после более-менее долгого применения процесса Шульца, непонятно.

-- 13.04.2020, 21:43 --

vpb в сообщении #1454302 писал(а):
долгого применения процесса Шульца, непонятно.

Уточню. Я когда-то размышлял, у меня получилось в уме и на пальцах оценка типа $n^2\varepsilon\|B^{-1}\|$, не помню подробности. Что в литературе по этому поводу написано, не знаю. Т.е. может быть в науке оно и известно.

 Профиль  
                  
 
 Re: Норма невязки
Сообщение19.04.2020, 17:21 


07/10/15

2400
vpb в сообщении #1454302 писал(а):
Но, в результате процесса Шульца матрица $C$ отнюдь не получается

Да, мои представления исходят из того, что результирующая обратная матрица, в конце концов, отличается от истинной лишь на величину ошибки округления. Двойка в формуле возникла из-за того, что и прямая матрица предполагалась заданной с погрешностью. Возможно, эту двойку можно и убрать. Тогда различия уменьшатся.

В общем, действительно, эта формула оценивает минимальную остаточную невязку, которая будет присутствовать в самом худшем случае, из-за ошибок округления. Будет ли она гарантированно достигнута в результате процесса Шульца, собственно и есть главный вопрос. Вернее - вопрос в том, какая невязка будет гарантированно достигнута. Лично я не вижу причин, почему не будет. Хотя это лишь интуитивное предположение, подкреплённое численным экспериментом. Но и Ваше утверждение точно такое же голословное.
А формула с квадратом размеров меня просто удручает. Я проводил вычисления с разными матрицами, в основном большими - до нескольких тысяч. Да, предельная невязка, оцениваемая по моей формуле получается в 8 раз (а если убрать двойку, то в 4 раза) больше, того что наблюдается. Какой либо заметной зависимости от размеров я не обнаружил.
Но оценки, полученные по Вашей формуле отличаются от действительности на много порядков. Спрашивается, какой толк от таких оценок? У меня такое подозрение, что они просто напросто неверны.

 Профиль  
                  
 
 Re: Норма невязки
Сообщение21.04.2020, 14:09 
Заслуженный участник


18/01/15
3231
Да, действительно, разрыв между теоретически доказуемой оценкой и той, которая обнаруживается экспериментально, довольно большой. Но в вычислительной математике это дело обычное, се ля ви. Я когда-то потратил некоторое (небольшое, впрочем) количество усилий, думая, нельзя ли получить лучшую оценку, чем с $n^2$, типа того. Не преуспел, и желания возвращаться к этим размышлениям как-то нет.
Andrey_Kireew в сообщении #1456079 писал(а):
У меня такое подозрение, что они просто напросто неверны.

Неверны они быть не могут, так как они доказаны. А того, что оне неулучшаемы, я не утверждал.

Могу рекомендовать кой-какие источники. Именно, про численное обращение матриц кое-что написано в таких двух фундаментальных книгах, как Уилкинсон, Алгебраическая проблема собственных значений, и Higham, Accuracy and stability of numerical algorithms. Во второй целая глава посвящена.

 Профиль  
                  
 
 Re: Норма невязки
Сообщение21.04.2020, 21:48 


07/10/15

2400
Видимо я не корректно выразился, действительно, неверны они быть не могут, ведь они в $n^2$ больше. Вернее сказать - они недостаточно хороши.

Тем не менее, в книге Амосов А.А и др. Вычислительные методы для инженеров приводится оценка погрешности прямых методов решения СЛАУ
$$\delta < f(n)cond(B) eps$$
В случае QR разложения f(n)=6n, для метода Гауса в выбором ведущего элемента - теоретически больше, но сказано, что еще не обнаружено такой матрицы, для которой f(n)>n. Так, что погрешность растёт не с квадратом размера, а линейно. И это для прямых методов. Понятное дело, что итеративные методы всегда точнее. Поэтому я только укрепляюсь в своей уверенности, что погрешность у них от размера матрицы практически не зависит.

Уточните пожалуйста, Ваша оценка действительно получена применительно к итеративным методам?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group