logo search
Шпоры ALL

23.2 Алгоритм «прогонка» для решения системы линейных уравнений с диагональным преобладанием.

Рассмотрим для определенности систему линейных уравнений для непериодического сплайна:

2M1+M2=C1

aM1+2M2 +b2M3=C2

...

an-1 ∙Mn-2+2Mn-1+bn-1 ∙Mn=Cn-1

Mn-1+2Mn=Cn

Разрешим 1-ое уравнение относительно M1:

M1=p1M2+q1 p1= q1=

Подставим M1 во 2-ое уравнение и выразим M2:

M2= M3+

p2= q2=

M2= p2 M3+q2

Продолжая процесс исключения и подставляя Mi-1= pi-1 Mi+qi-1 в уравнение

ai Mi-1+2Mi+bi Mi+1=Ci получим:

Mi = Mi+1 + , т.е. pi и qi равны:

pi= -рекуррентные формулы для p и q. (1)

qi=

Продолжая этот процесс, получим для последнего уравнения:

Mn-1= pn-1 Mn+qn-1

Mn-1= -2Mn+Cn

Можно последовательно вычислить:

Mn= (2)

Далее можно последовательно вычислить:

Mn-1= pn-1 Mn+qn-1

Mn-2= pn-2 Mn-1+qn-2 (3)

и т. д.

Т.о. алгоритм «прогонка» состоит из двух частей: прямой и обратный ход.

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

Обратный ход: сначала по формуле (2) вычисляем Mn , а затем по формулам (3) вычисляют Mn-1, Mn-2, …, M1.

Оказывается, метод «прогонка» не приводит к накоплению ошибок округления при вычислении. Такие методы называются численно устойчивыми.

Сформируем систему для случая периодического сплайна:

Из формул

M1=Mn

ai ∙Mi-1+2Mi+bi ∙Mi+1=Ci , i=2,3,…,h-1.

Mn+1= M2 (hn=h1)

при i=2, M1=Mn получим:

2M2+b2M3+ a2 Mn=C2

a3 M2+2M3+ b3 Mn=C3

… (4)

an-1 Mn-2+2Mn-1+ bn-1 Mn=Cn-1

bn ∙Mn-2+an Mn-1+ 2 Mn=Cn

Эти уравнения аналогичны рассмотренному выше приему и их можно переписать:

Mi= pi∙Mi+1 +ri∙Mn+qi , i=2,3,…,n-1 (5)

Прогоночные коэффициенты опять вычисляются по (1) при условии, что pi= qi=0:

ri = ,r1=1 (6)

Полагая Mi=Ui∙Mn+Vi , i=2,3,…,n-1.

Ui=pi∙Ui+1+ri

Vi=pi∙Vi+1+qi

Un=1 Vn=0

Mn=