Метод прогонки

Автор работы: Пользователь скрыл имя, 23 Февраля 2011 в 17:09, реферат

Описание работы

Прогонкой называется модификация метода Гаусса для решения систем линейных алгебраических уравнений с трехдиагональной матрицей. Если матрица системы обладает определенными свойствами, то метод прогонки является численно устойчивым и очень эффективным методом, который позволяет практически мгновенно решать одномерные краевые задачи, одну из которых мы рассмотрели в предыдущем разделе. Большинство корректно поставленных физических задач приводит к системе уравнений с хорошей матрицей, и в этих случаях метод прогонки проявляет слабую чувствительность как к погрешностям задания начальных условий, так и к погрешностям вычислительного характера.

Содержание работы

Введение………………………………………………………………………..3

1.Суть метода прогонки…………………………………………………..4
2.Теоретическая часть.................................................................................5
3.Виды прогонки…………………………………………………………..7
4.Теорема о корректности и устойчивости прогонки…………………..10
5.Решение системы методом прогонки. Код, реализующий метод прогонки…………………………………………………………………..12
6.Трёхдиагональная матрица (матрица Якоби)…………………………15
Заключение……………………………………………………………………..19

Список литературы…………………………………………………………….20

Файлы: 4 файла

progonkaРЕФЕРАТ.doc

— 250.50 Кб (Скачать файл)

Содержание: 

    Введение………………………………………………………………………..3

  1. Суть метода прогонки…………………………………………………..4
  2. Теоретическая часть.................................................................................5
  3. Виды прогонки…………………………………………………………..7
  4. Теорема о корректности и устойчивости прогонки…………………..10
  5. Решение системы методом прогонки. Код, реализующий метод прогонки…………………………………………………………………..12
  6. Трёхдиагональная матрица (матрица Якоби)…………………………15

Заключение……………………………………………………………………..19

    Список литературы…………………………………………………………….20 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

ВВЕДЕНИЕ

    Прогонкой называется модификация метода Гаусса для решения систем линейных алгебраических уравнений с трехдиагональной матрицей. Если матрица системы обладает определенными  свойствами, то метод прогонки является численно устойчивым и очень эффективным методом, который позволяет практически мгновенно решать одномерные краевые задачи, одну из которых мы рассмотрели в предыдущем разделе. Большинство корректно поставленных физических задач приводит к системе уравнений с хорошей матрицей, и в этих случаях метод прогонки проявляет слабую чувствительность как к погрешностям задания начальных условий, так и к погрешностям вычислительного характера. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

1. Суть метода прогонки

    Суть  метода прогонки заключается в том, что, используя специфику структуры матрицы системы уравнений (наличие трех диагоналей), удается получить рекуррентные формулы для вычисления последовательности коэффициентов прогонки, которые позволяют на обратном ходу вычислить значения функции в узлах сетки. Рассматривая конечно-разностное уравнение для первой тройки узлов:

b1U1+c1U2=-a1U0,

видим, что оно связывает между собой два соседних значения U1, и U2. Перепишем его в виде:

d1U2+e=U1, (1)

где d1 и е1вычисляются по известным значениям. Наблюдательный читатель заметит, что это справедливо только для задач первого рода. Чуть позже мы получим общее решение. Теперь мы можем исключить £/, из уравнения для следующей тройки узлов:

a2U1+b2U2+c2U2=f2,

подставив значение U1 из уравнения (8). После этой процедуры последнее уравнение также может быть приведено к виду:

d3U3+e2=U2,

Подстановки можно продолжать и дальше, но для  получения рекуррентного соотношения, достаточно рассмотреть одну из них  для произвольного индекса i. Подставив

di-1Ui+ei-1=Ui-1,

в уравнение

aiUi-1+biUi+ciUi+1=fi,

получим:

Ui=-[CiUi+1/(aidi-1+bi)]+[fi-ai+1*ei+1/(aidi-1+bi)] (2)

Это соотношение  дает две рекуррентные формулы для  коэффициентов:

di=-Ci/(ai*di-1+bi) (3) 

ei=(fi-ai*ei-1)/(aidi-1+bi) (4)

    Цикл  вычисления последовательности коэффициентов в соответствии с этими формулами носит название прямого хода прогонки.  
 

do=yo, eo=бo,

    Цикл  прямого хода повторяется N-1 раз. Последними будут вычислены коэффициенты dN-1 и eN-1, которые связывают функции в двух узлах вблизи правой границы:

Un-1=dn-1Un+en-1 (5)

    Если  на правой границе задано условие  первого рода Un = с, то уже можно вычислить Un-1 и далее продолжать обратный ход прогонки при I = N - 1,..., 1, 0. Если условие более сложное, то надо рассмотреть уравнение (6), определяющее граничное условие на правой границе. Напомним его:

Un=ynUn-1+бn (6)

    Соотношения (6) и (5) составляют систему из двух уравнений с двумя неизвестными. Используя определители, запишем ее решение.

Un-1=(en-1+бndn-1)/(1-yndn-1) (7)

Un=(бn+ynen-1)/(1-yndn-1)

    Таким образом, мы нашли значения в двух узлах, лежащих вблизи правой границы расчетной области. Теперь, используя формулу (2) и уменьшая индекс i от N= 2 до 0, можно вычислить все неизвестные £/.. Этот процесс носит название обратного хода прогонки. Почему-то в голову приходит лозунг нашего времени: «Цели ясны, задачи определены.  
 

2. Теоретическая часть

    Пусть Ax=b, где A – трехдиагональная матрица. Матрица A=[aij] называется (2m+1) – диагональной, если aij=0 при |i-j|>m.

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

    Получаем  , используем метод прогонки, исходя из следующего рекуррентного соотношения: ,(2) получаем:

                      

                      

Эти формулы  представляют собой прямой проход метода. Обратный проход:

Остальные xi находим из формулы (2).

Для применимости метода прогонки достаточно, чтобы  матрица A была с диагональным преобладанием.

Алгоритм:

1.     Вводим str/stlb – количество строк/столбцов, A – элементы расширенной матрицы

2.     Проверяем матрицу на диагональное преобладание

3.     Если матрица с диагональным преобладанием тогда п.4, иначе п.8

4.     Выполняем прямой ход метода (формулы (3), (4)): c[1]:=A[1,2]/A[1,1]; d[1]:=A[1,stlb]/A[1,1];

c[i]:= (-A[i,i+1])/(A[i,i-1]*c[i-1]+A[i,i]);

d[i]:= (A[i,stlb]-A[i,i-1]*d[i-1])/(A[i,i-1]*c[i-1]+A[i,i])

5.     Далее обратный ход (формулы (2),(5)):

x[str]:=(A[str,stlb]-A[str,str-1]*d[str-1])/(A[str,str]+A[str,str-1]*c[str-1]);

x[i]:=c[i]*x[i+1]+d[i];

6.     Выводим x;

7.     Проверки на невязку;

8.     Заканчиваем алгоритм.

В программе: A[i,i+1] = Bi, A[i,i] = Ci, A[i,i-1] = Ai, A[i,stlb] = bi, d[i] = ?i, c[i] = ?i, str = n.

Описание входной информации: Str (Stlb) – количество строк (столбцов) в расширенной матрице, A [i, j] – матрица A (i – строки, j – столбцы) 

    3. Виды прогонки

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

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

                       bixi-1+cixi+dixi=ri      (1) 

где i=1,2,...,n; b1=0, dn=0. Такие уравнения называются трехточечными разностными уравнениями второго порядка. Система (1) имеет трёхдиагональную структуру, что хорошо видно из следующего, эквивалентного (1), векторно-матричного представления: 

   c1 d1 0 0 ...  0 0 0                   x1                    r1

                  b2 c2 d2 0 ...  0 0  0                   x2                    r2 

                  0 b3 c3 d3 ...  0   0 0                   x3                            r3        

                  .   .   .    .    ...   .   .   .            *       ...          =        ...    

                  0  0  0  0    ...  bn-1cn-1 dn-1                  xn-1                            rn-1

                  0  0  0  0    ...  0   b cn                         xn                             rn 

    Как и в решении СЛАУ методом Гаусса, цель избавится от ненулевых элементов  в поддиаганальной части матрицы  системы, предположим, что существуют такие наборы чисел δi и λi (i=1,2,...,n), при которых  

                        xi= δixi+1+ λi      (2) 

    т.е. трехточечное уравнение второго порядка (1) преобразуется в двухточечное уравнение первого порядка (2). Уменьшим в связи (2) индекс на единицу и полученое выражение xi-1= δi-1xi+ λi-1 подставим в данное уравнение (1): 

                        biδi-1 xi+ bi λi-1+ cixi+ dixi+1= ri      

откуда

                        xi= -((di /( ci+ biδi-1)) xi-1+(ri - bi λi-1)/( ci - bi δi-1)). 

Последнее равенство имеет вид (2) и будет  точно с ним совпадать, иначе  говоря, представление (2) будет иметь  место, если при всех i=1,2,…,n выполняются рекуррентные соотношения  

                  δi = - di /( ci+ biδi-1) ,   λ i=(ri - bi λi-1)/( ci - bi δi-1)  (3) 

     Легко видеть, что, в силу условия b1=0, процесс вычисления δi , λi может быть начат со значений 

                        δ1 = - d1/ c1λ1 = r1/ c1 

и продолжен  далее по формулам (3) последовательно  при i=2,3,...,n, причем при i=n, в силу dn=0, получим δn=0.Следовательно, полагая в (2) i=n,будем иметь 

                        xn = λn = (rnbn λn-1)/( cnbn δn-1) 

(где  λn-1 , δn-1уже известные с предыдущего шага числа). Далее по формулам (2) последовательно находятся xn-1 , xn-2 ,…, x1 при i=n-1, n-2,...,1 соответственно.

    Таким образом, решение уравнений вида (1) описываем способом, называемым методом прогонки, сводится к вычислениям по трём простым формулам: нахождение так называемых прогоночных коэффициентов δi , λ по формулам (3) при i=1,2,…,n (прямая прогонка) и затем неизвестных xi по формуле (2) при i=n-1, n-2,...,1 (обратная прогонка).

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

~$ogonkaРЕФЕРАТ.doc

— 162 байт (Просмотреть файл, Скачать файл)

Метод прогонки.ppt

— 61.50 Кб (Просмотреть файл, Скачать файл)

Федеральное агентство по образованию.doc

— 24.50 Кб (Просмотреть файл, Скачать файл)

Информация о работе Метод прогонки