2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Неизвестный итерационный метод
Сообщение04.04.2010, 23:35 
Аватара пользователя


05/02/06
387
Здравствуйте, помогите пожалуйста опознать итерационный метод для решения СЛАУ.
Несмотря на то, что метод простой, его описания в литературе я не нашел. Соответствующая глава в книгах как правило начинается с метода Якоби или Гаусса-Зейделя, которые используют сумму матриц L и U. В рассматриваемом методе эти матрицы не нужны, зато нужна новая переменная $y$, которая при увеличении номера итерации стремится к нулю. Пусть имеется некоторая система уравнений с квадратной матрицей коэффициентов:
\[
\begin{gathered}
\left[ {\begin{array}{*{20}c}
   {a_{11}} & {a_{12}} & \dots & {a_{1n}}  \\
   {a_{21}} & {a_{22}} & \dots & {a_{2n} }  \\
   \vdots & \vdots & \ddots & \vdots  \\
   {a_{n1}} & {a_{n2}} & \dots & {a_{nn}}  \\

 \end{array} } \right] \times \left[ {\begin{array}{*{20}c}
   {x_1}\\
   {x_2}\\
   \vdots\\
   {x_n}\\

 \end{array} } \right] = \left[ {\begin{array}{*{20}c}
   {b_1}\\
   {b_2}\\
   \vdots\\
   {b_n}\\

\end{array} } \right] \\ 
\end{gathered} 
\]
Выберем какую-либо строку $a_{j1},\dots, a_{jn}$, $1\leqslant j \leqslant n$ и составим для нее матрицу следующего вида:
\[
\begin{gathered}
\left[ {\begin{array}{*{20}c}
   1 & 0 & 0 & \dots & 0 & {a_{j1}s_1}  \\
   0 & 1 & 0 & \dots & 0 & {a_{j2}s_2} \\
   0 & 0 & 1 & \dots & 0 & {a_{j3}s_3} \\
   \vdots & \vdots & \vdots & \ddots & \vdots & \vdots  \\
   0 & 0 & 0 & \dots & 1 & a_{jn}{s_n} \\
   {a_{j1}} & {a_{j2}} & {a_{j3}} & \dots & {a_{jn}} & 0  \\

\end{array} } \right] \\ 
\end{gathered} 
\]
где $s_1,\dots,s_n$- произвольные константы. Для итерации $i=0,1,\dots,n$ можно записать:
\[
\begin{gathered}
\left[ {\begin{array}{*{20}c}
   1 & 0 & 0 & \dots & 0 & {a_{(j+i)1}s_1}  \\
   0 & 1 & 0 & \dots & 0 & {a_{(j+i)2}s_2} \\
   0 & 0 & 1 & \dots & 0 & {a_{(j+i)3}s_3} \\
   \vdots & \vdots & \vdots & \ddots & \vdots & \vdots  \\
   0 & 0 & 0 & \dots & 1 & a_{(j+i)n}{s_n} \\
   {a_{(j+i)1}} & {a_{(j+i)2}} & {a_{(j+i)3}} & \dots & {a_{(j+i)n}} & 0  \\

 \end{array} } \right] \times \left[ {\begin{array}{*{20}c}
   {x_1^{i + 1} }  \\
   {x_2^{i + 1} }  \\
   {x_3^{i + 1} }  \\
   \vdots  \\
   {x_n^{i + 1} }  \\
   {y^{i + 1} }  \\

 \end{array} } \right] = \left[ {\begin{array}{*{20}c}
   {x_1^i }  \\
   {x_2^i }  \\
   {x_3^i }  \\
   \vdots  \\
   {x_n^i }  \\
   {b_{j+i} }  \\

\end{array} } \right] \\ 
\end{gathered} 
\]
где $b_{j+i}$ - соответствующий свободный член из правой части исходной системы.
Решая эту систему одним из точных методов, найдем значения ${x_1^{i + 1},\dots,{x_n^{i + 1}$ и подставим их как ${x_1^i },\dots,{x_n^i }$ в следующую итерацию. Очевидно, что индекс $j+i$ может превысить $n$, поэтому if $(j+i)>n$ then $i=0$
Таким образом, каждое уравнение из исходной системы используется для составления новой системы, которая на каждой итерации решается точным методом. Поскольку название метода мне не известно, доказательство его сходимости я также не нашел.

 Профиль  
                  
 
 Re: Неизвестный итерационный метод
Сообщение05.04.2010, 15:08 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Извините, а из чего следует, что он вообще работает когда-либо?
(вопрос о его практичности второй - решение точным методом это кубическая сложность, вообще говоря, а одна итерация это n "точных решений" - и хотя структура матрицы позволит много выиграть в упрощении расчётов, решительно не очевидно, что по скорости, буде даже она даст результат, метод выиграет перед куда более известными).

 Профиль  
                  
 
 Re: Неизвестный итерационный метод
Сообщение05.04.2010, 23:17 
Аватара пользователя


05/02/06
387
То, что метод работает могу продемонстрировать на примерах, а вот почему он работает - это и есть мой вопрос. Что касается сравнения по скорости сходимости с другими методами - наверняка Вы правы и этот метод медленный. Только вот скорость тут совсем не важна, поскольку я рассматриваю некоторый физический процесс где каждая диагональная система решается сама собой когда наступает равновесие.
Спасибо за комментарий. Жду хоть каких-нибудь намеков как доказать сходимость.

 Профиль  
                  
 
 Re: Неизвестный итерационный метод
Сообщение06.04.2010, 13:20 
Заслуженный участник
Аватара пользователя


01/08/06
3128
Уфа
Не совсем понятно, что это за переменная $y$ (является ли она известной или неизвестной). И совсем непонятно, что это за $s_k$, являются ли они также неизвестными? Может, "произвольные константы" означает, что 2-я система должна иметь одно и то же решение для любого набора $s_k$? :roll:

Вообще, любой линейный одношаговый итерационный процесс (такой ли у Вас?) принято записывать в виде:$$B_n\frac{x^n-x^{n-1}}{\tau_n}+Ax^{n-1}=f,$$где $B_n$ --- некоторые матрицы, возможно, "похожие на $A$", но обращение которых легче, чем обращение $A$, $\tau_n$ --- параметры (скаляры), уменьшение которых, вероятно, позволяет достичь сходимости, однако эту же самую сходимость замедляющее. Получится ли Ваш метод так записать? Если да, то здесь достаточное условие сходимости таково: матрицы перехода $S_n=I-\tau_nB_n^{-1}A$ должны быть по какой-нибудь матричной норме не больше фиксированного числа $q<1$.

 Профиль  
                  
 
 Re: Неизвестный итерационный метод
Сообщение06.04.2010, 13:28 


13/11/09
166
Глупая мысль:

(Оффтоп)

а метод не является точным? Просто на первый взгляд это какая-то модификация метода Гаусса.

А совет такой - возьмите матрицу 2x2 и получите явные формулы. Запишите в каноническом виде (одношаг, двухшаг... не видно сразу, какой это тип метода). Если удастся, то есть соотв результаты из итерационных методов(оно же разностные схемы)

 Профиль  
                  
 
 Re: Неизвестный итерационный метод
Сообщение06.04.2010, 19:08 
Аватара пользователя


05/02/06
387
To worm2:
Переменная $y^{(i)}$ такая же неизвестная как и любой из $x_k^{(i)}$, однако в отличие от них она не подставляется в следующую итерацию.
"Произвольные константы" означает:
1) что количество констант $s_k$ в точности равно $n$
2) они задаются один раз в начале и никогда не меняются

По поводу сходимости линейного одношагового итерационного процесса:
1) Я совсем не уверен, что этот процесс одношаговый, ведь "новых" систем $n$ штук, соответственно и различных шагов $n$
2) Помимо указанного достаточного условия, что норма каждой матрицы перехода должна быть меньше единицы есть еще и необходимое условие
3) В методе Якоби достаточное условие - это диагонально-доминирующая матрица
(см. например http://www.mathpages.com/home/kmath175/kmath175.htm)
Думаю, что рассматриваемый метод будет работать с любой матрицей, вот только как это доказать...

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


11/05/08
32166
Alik в сообщении #307006 писал(а):
рассматриваемый метод будет работать с любой матрицей,

метода не знаю, но так просто не бывает...

 Профиль  
                  
 
 Re: Неизвестный итерационный метод
Сообщение07.04.2010, 15:40 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Что-то наводящее на мысль о покоординатной релаксации. Но очень смутную.

 Профиль  
                  
 
 Re: Неизвестный итерационный метод
Сообщение07.04.2010, 22:28 
Аватара пользователя


05/02/06
387
Евгений, похоже Вы попали в точку. Я решил пойти историческим путем и вспомнить кто первым придумал приближенные методы, им конечно оказался гер Гаусс. В современных терминах и на английском его метод в оригинале есть в книге J-L. Chabert et al, "A history of algorithms: from the pebble to the microchip", которую можно найти на http://books.google.com
Гаусс делал последовательные приближения для каждого $x_k^{(i)}$ отдельно. Потом стали искать как увеличить скорость сходимости и в результате пришли к итерационным методам, которые мы имеем в современных книгах. Однако, была другая ветка эволюции его метода - покоординатная релаксация.
Сейчас пытаюсь найти что-нибудь по этой теме, где на каждом шаге используется точный метод, скажем правило Крамера.

 Профиль  
                  
 
 Re: Неизвестный итерационный метод
Сообщение07.04.2010, 23:07 
Заслуженный участник


11/05/08
32166
Alik в сообщении #307506 писал(а):
где на каждом шаге используется точный метод, скажем правило Крамера.

Оно нигде в численных расчётах не используется. Изо всех мыслимых способов решения систем этот -- чемпион по неэффективности.

 Профиль  
                  
 
 Re: Неизвестный итерационный метод
Сообщение08.04.2010, 01:49 
Аватара пользователя


05/02/06
387
ewert в сообщении #307530 писал(а):
Оно нигде в численных расчётах не используется. Изо всех мыслимых способов решения систем этот -- чемпион по неэффективности.

Это еще нужно доказать, желательно строго и для всех мыслимых способов решения.
Кстати про эффективность - многие думают, что метод Гаусса-Зейделя сходится быстрее чем Якоби во всех случаях, но это не так.

 Профиль  
                  
 
 Re: Неизвестный итерационный метод
Сообщение08.04.2010, 16:59 


25/03/10
4
Нестрогое доказательство неприменимости метода Крамера к численному решению СЛАУ выглядит примерно так:

Для вычисления определителя порядка m требуется не менее m! операций сложения (перемножения пока не считаем).

Тактовая частота процессора, допустим, 1ГГц. За такт - 4 операции.

Определитель 20-го порядка только по сложению будем считать на этом процессоре 608225502 секунд = 10137091 минуту =
= 168951,52 часа = 7039,64 суток = 234,65 месяца = 19,5 лет.

А надо их двадцать один посчитать...

 Профиль  
                  
 
 Re: Неизвестный итерационный метод
Сообщение08.04.2010, 18:30 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Ну, ещё можно вместо вычисления определителя "по определению" воспользоваться тем, что он - произведение ведущих элементов в методе Гаусса. И тогда по Крамеру будет всего в n раз медленнее.
Но вообще - метод Крамера он для доказательства, а не для решения. Скажем, для обоснования того, что в транспортной задаче решение будет целочисленным, используется тот факт, что определитель равен +/- 1 (абсолютно унимодулярен).

 Профиль  
                  
 
 Re: Неизвестный итерационный метод
Сообщение08.04.2010, 18:37 
Заслуженный участник


11/05/08
32166
Евгений Машеров в сообщении #307761 писал(а):
Ну, ещё можно вместо вычисления определителя "по определению" воспользоваться тем, что он - произведение ведущих элементов в методе Гаусса.

Нельзя.

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

При этом объём вычислений окажется не намного больше -- и всего-то в эн раз меньше...

(ну ладно, ладно, не в эн, а всего лишь где-то в две трети эн или типа того, точно не помню...)

 Профиль  
                  
 
 Re: Неизвестный итерационный метод
Сообщение09.04.2010, 13:53 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Не почему же нельзя? Можно. Не нужно, но можно.
Разумеется, это отчасти напоминает цивилизованного дикаря, который пользуется вилкой, для чего рукой вылавливает мясо в кипящем котле - но вилкой-то он пользуется! В данном случае речь о том, что наидешевейший способ использовать для вычислений правило Крамера - это (n+1) раз воспользоваться методом Гаусса. Но правило Крамера будет использовано. Или ещё можно найти собственные значения и перемножить, получая определитель. Сложность также получается всего эн-в-четвёртой, что драматически превосходит эн-факториал при "определителе по определению определителя", но, разумеется, практического значения не имеет, благо Гаусс кубичен по сложности.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.

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



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

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


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

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