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

Автор работы: Пользователь скрыл имя, 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) не обращаются в нуль, и устойчивой, если |δi|<1 при всех i€{1,2,...,n }.

      Приведем  простые достаточные условия корректности и устойчивости прогонки, которые во многих приложениях метода автоматически выполняются. 

        4. Теорема о корректности и устойчивости прогонки

    Пусть коэффициенты bi и di  уравнения (1) при i=2,3,...,n-1 отличны от нуля и пусть

                      |ci|>|bi|+|di|  i=1,2,…,n.    (4) 

    Тогда прогонка (3), (2) корректна и устойчива (т.е. сi+biδi-10,i|<1). 

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

    При i=1, в силу (4), имеем: 

          |c1|>|d1|≥0 

- неравенство нулю первой пары прогоночных коэффициентов, а так же 

                        1|=|- d1/ c1|<1     

    Предположим, что знаменатель (i-1)-x прогоночных коэффициентов не равен нулю и что i-1|<1. Тогда, используя свойства модулей, условия теоремы и индукционные предположения, получаем: 

            |сi+biδi-1|≥|ci| - |biδi-1|>|bi|+|di| - |bi|*|δi-1|= |di|+|bi|(1 - | δi-1|)> |di|>0

а с учетом этого 

                        |δi|=|- di/ сi+biδi-1|=|δi|/| сi+biδi-1|<|δi|/|δi|=1     

Следовательно, сi+biδi-1 0 и i|<1 при всех i€{1,2,...,n }, т.е. имеет место утверждаемая в данных условиях корректность и устойчивость прогонки. Теорема доказана.

      Пусть А – матрица коэффициентов  данной системы (1), удовлетворяющих  условиям теоремы, и пусть  

              δ1= - d1/ c1  ,  δi=|- di/ ci+biδi-1    (i=2,3,...,n-1),   δn=0

    - прогоночные коэффициенты, определяемые  первой из формул (3), а 

                        i= сi+biδi-1  (i=2,3,...,n)

    - знаменатели этих коэффициентов  (отличные от нуля согласно  утверждению теоремы). Непосредственной  проверкой легко убедится, что  имеет место представление A=LU, где  
 

   c 0 0  0  ...  0   0  0              

                  b2 2 0  0  ...  0   0   0                  

               L= 0  b3 3 0  ...  0  0   0                  

                  …………………………      

                  0 0 0 0    ...  bn-1 n-1 0              

                  0   0 0   0    ...  0   b n                      

                        1  -δ1 0   0  ...  0    0    0              

                  0   δ2  0  ... 0    0    0                  

               U= 0  0   1   δ3  ...  0    0    0                  

                  …………………………      

                  0   0   0   0  ... 0   1  -δn-1      

                  0   0 0   0  ...  0   0     1                    
 

      Единственное  в силу утверждение теоремы LU-разложения матриц. Как видим, LU-разложение трехдиагональной матрицы А может быть выполнено очень простым алгоритмом, вычисляющем i δi при возрастающих значениях i. При необходимости попутно может быть вычислен

                                                n

              det A = c1i .

                               i=2 

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

      5. Решение системы методом прогонки. Код, реализующий метод прогонки

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

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

Поделив первую строку матрицы, приведенной  выше, на -b1 очевидно, что:

и можно вывести  формулу для прямого хода:

    Затем необходимо выполнить обратный ход - найти вектор X, из последней строки преобразованной матрицы следует, что xn= Qn.

В тоже время остальные элементы вектора считаются по формуле:

    Следует заметить, что метод устойчив если(следует из диагонального преобладания матрицы А):

и корректен, если(иначе формулы прямого хода не имеют смысла):

    Ниже  представлен код, реализующий метод  прогонки, принимает трехдиагональную матрицу a размерности N*N, и вектор правых частей b размерности N, результат возвращается в b:

void sweep(double a[N][N],double b[N])

{

int i;

double znam;

b[0]/=a[0][0];//Q1

a[0][1]/=-a[0][0];//P1

for(i=1;i < N-1;i++)

{

  znam=-a[i][i]-a[i][i-1]*a[i-1][i]; //общий знаменатель для формул нахождения Pi, Qi

  a[i][i+1]/=znam; //Pi

  b[i]=(a[i][i-1]*b[i-1]-b[i])/znam; //Qi

}

//строка ниже для вычисления QN

b[N-1]=(a[N-1][N-2]*b[N-2]-b[N-1])/(-a[N-1][N-1]-a[N-1][N-2]*a[N-2][N-1]);

 

//обратный ход

 for(i=N-2;i > -1;i--)

{

  b[i]+=b[i+1]*a[i][i+1];

}

return;

}

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

Преобразуем первое уравнение системы к виду , где ,

Подставим полученное выражение во второе уравнение  системы и преобразуем его  к виду и т.д. На i-ом шаге уравнение преобразуется к виду , где , . На m-ом шаге подстановка в последнее уравнение выражения дает возможность определить значение :

. Значения остальных неизвестных  находятся по формулам: , i = m-1, m-2, ..., 1.

Пример 4. Решение системы уравнений методом прогонки.

Прямой  ход прогонки. Вычислим прогоночные коэффициенты:

, ,

,   

, ,

,

Обратный  ход прогонки. Находим значения неизвестных:

, , ,

Ответ:       .

    Прямые (или точные) методы, позволяют найти  решение за определённое количество шагов. Итерационные методы, основаны на использовании повторяющегося процесса и позволяют получить решение  в результате последовательных приближений. 

    6. Трёхдиагональная матрица (матрица Якоби)

    Трёхдиагональной  матрицей или матрицей Якоби называют матрицу следующего вида:

    .

    Системы линейных алгебраических уравнений с такими матрицами встречаются при решении многих задач математики и физики. Краевые условия x1 и xn, которые берутся из контекста задачи, задают первую и последнюю строки. Так краевое условие первого рода F(x = x1) = F1 определит первую строку в виде C1 = 1, B1 = 0, а условие второго рода dF / dx(x = x1) = F1 будет соответствовать значениям C1 = − 1, B1 = 1.

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

Для решения  систем вида или, что то же самое,

                                                                      (1)

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

         , где                     (2)

Используя это  соотношение, выразим xi-1 и xi через xi+1 и подставим в уравнение (1):

    ,

где Fi — правая часть i-го уравнения. Это соотношение будет выполняться независимо от решения, если потребовать

Отсюда следует:

Из первого  уравнения получим:

    После нахождения прогоночных коэффициентов  α и β, используя уравнение (2), получим решение системы. При этом,

         

    Другим  способом объяснения существа метода прогонки, более близким к терминологии конечно-разностных методов и объясняющим  происхождение его названия, является следующий: преобразуем уравнение (1) к эквивалентному ему уравнению

                        (1')

c надиагональной  матрицей

    .

    Вычисления  проводятся в два этапа. На первом этапе вычисляются компоненты матрицы  и вектора , начиная с     до    

      

и

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

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

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

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

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

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

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