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
10215
Москва
Извините, а из чего следует, что он вообще работает когда-либо?
(вопрос о его практичности второй - решение точным методом это кубическая сложность, вообще говоря, а одна итерация это n "точных решений" - и хотя структура матрицы позволит много выиграть в упрощении расчётов, решительно не очевидно, что по скорости, буде даже она даст результат, метод выиграет перед куда более известными).

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


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

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


01/08/06
3158
Уфа
Не совсем понятно, что это за переменная $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
10215
Москва
Что-то наводящее на мысль о покоординатной релаксации. Но очень смутную.

 Профиль  
                  
 
 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
10215
Москва
Ну, ещё можно вместо вычисления определителя "по определению" воспользоваться тем, что он - произведение ведущих элементов в методе Гаусса. И тогда по Крамеру будет всего в n раз медленнее.
Но вообще - метод Крамера он для доказательства, а не для решения. Скажем, для обоснования того, что в транспортной задаче решение будет целочисленным, используется тот факт, что определитель равен +/- 1 (абсолютно унимодулярен).

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


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

Нельзя.

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

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

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

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


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

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

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



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

Сейчас этот форум просматривают: Dmitriy40


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

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