Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_Ch_M.doc
Скачиваний:
30
Добавлен:
28.04.2019
Размер:
2.89 Mб
Скачать

48 Метод правой прогонки.

И дея метода прогонки: разностное уравнение второго порядка разбивается на три разностные уравнения первого порядка.

Решить задачу – найти значение у в узлах. Будем искать значение уi через значение yi+1 с коэффициентами:

yi=i+1yi+1+i+1(11)

Рассмотрим равенство (9), подставим вместо уi-1 выражение (11)

yi-1=iyi+i

Ai(iyi+i)-Ciyi+Biyi+1=-Fi (Aii-Ci)yi+Biyi+1+(Aii+Fi)=0 сделаем замену: yi по (11):

(Aii-Ci)(i+1yi+1+i+1)+Biyi+1+(Aii+Fi)=0 yi+1[(Aii-Ci)i+1+Bi]+[AiBi+Fi+(Aii-Ci)i+1]=0

(AiI-Ci)i+1+Bi=0 (12) AiBi+Fi+(Aii-Ci)i+1 (13) i+1= (14) i+1= (15)

формулы (11), (14), (15) – разностные уравнения первого порядка. Причем (11) – линейное, а (14) и (15) – линейные относительно i и i. Чтобы найти i, i, надо решить разностную задачу Коши. Найдем 1 и 1 – начальные значения, для чего воспользуемся формулой (9).

Выпишем равенство (11) при i=0:

Осуществим прогонку вправо в (14) и (15) и определим все коэффициенты n, n. Выпишем формулу (11) при i=n-1:

yn=2(nyn+1)+2 (1-2n)yn=2n+2

По (11) возвращаемся справа налево и находить уi в узлах.

Метод сходится, если трехдиагональная матрица есть матрица с диагональным преобладанием (если на диагонали будут стоять коэффициенты: |Ci||Ai|+|Bi|), кроме первой и последней строки. Для последней строки: |1|1, |2|1 |1|+|2|<2. эти условия обеспечивают однозначную разрешимость системы.

Также существует метод встречной прогонки, а также метод левой прогонки, когда уi+1 выражается через yi.

49. Метод левой прогонки.

(9)-(10) – это система линейных алгебраических уравнений.

=

yi=i-1yi-1+i-1

Aiyi-1-Ciyi+Bi(yii+i)=-Fi

Aiyi-1-Ciyi+Biyii+Bii+Fi=0

Aiyi-1+(-Ci+Bii)yi+Bii+Fi=0

сделаем замену yi

Aiyi-1+(-Ci+Bii)( i-1yi-1+i-1) +Bii+Fi=0

yi-1[Ai+(-Ci+ii)i-1]+[iBi+Fi+(iBi-Ci)i-1]=0

Ai+(-Ci+ii)i-1=0

iBi+Fi+(iBi-Ci)i-1=0

i-1=

i-1=

Выпишем равенство при i=1:

y1=0y0+0

при i=n:

yn=yn-1n-1+n-1

Осуществим прогонку влево, определим все коэффициенты n, n.

y0=1(0y0+0)+1 (1-10)y0=10+1

51 Метод Либмана.

Рассмотрим уравнение эллиптического типа – уравнение Пуассона:

U=f (1)

+ =f(y,x), x,y

Г= U|Г = (2)

Рассмотрим задачу Дирихле (1)-(2): В качестве области  рассмотрим прямоугольную область:

Рассмотрим в области  сетку по ОХ: разобьем на n частей отрезок [a,b] с шагом h1= , узлы будут вычисляться по хi=a+ih1, .

Рассмотрим в области  сетку по ОY: разобьем на m частей отрезок [c,d] с шагом h2= , узлы будут вычисляться по yj=c+jh2, .

U(xi,yj)=Ux j F(xi,yj)=fij 1о)=1 о 2о)=2 о 1(xi)=1 I 2(xi)=2 i

Найдем вторую производную по х. Разложим функцию в ряд Тейлора по первому иетоду:

U(xih1,yj)=U(xi,yj) h1Ux(x,y) Uxx(x,y) Uxxx(x,y)+O(h14)

Сложим два ряда: U(x+h1,y)+ U(x-h1,y)=2U(x,y)+h12Uxx(x,y)+O(h14)

Uxx(x,y)= +O(h14)

(xi,yj)

Аналогично можно сделать по у: (xi,yj)

В итоге мы получили, что наши д.у. во внутренних точках заменяются следующими уравнением:

+ =fi j (3) ,

В этой форме участвуют пять точек. Получился следующий пяти-точечный шаблон:

Ч тобы решить нашу задачу, надо решить СЛАУ относительно функции U в узлах сеточной области. Всего уравнений столько, сколько узлов в области (n+1)x(m+1).

Из равенства (3) выразим значение функции в центральной точке шаблона, т.е. Ui j:

h22( )+h12( )=fi jh12h22

Ui j(2h22+2h12)=(h22Ui-1, j+h22Ui+1, j)+h12Ui j-1+ h12Ui j+1 - fi jh12h22

Uij= (h22Ui-1 j+h22Ui+1 j+h12Ui j-1+h12Ui j+1- fi jh12h22) (4)

(4) – основная формула метода.

Рассмотрим случай, когда h1=h2 (это можно добиться, если число шагов укладывается в область).

h1=h2=h

Uij= (Ui-1j+Ui+1j+Uij-1+Uij+1-h2fij ) (5)

Если f=0:

Uij= ( Ui-1j+Ui+1j+Uij-1+Uij+1) (6)

Итак, мы показали, что на основе формулы (4) можно построить итерационный процесс, который называется процессом Либмана, он имеет вид:

= (h22 +h22 +h12 +h12 - fi jh12h22) (7)

Процесс (7) сходится с любым начальным приближением (значит область можно заполнить любым начальным значением).

i,j | - |

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

Гармоничная функция принимает максимум и минимум на границе.

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

Замечание: можно поступить для ускорения сходимости аналогично методу Зейделя.

= (h22 +h22 +h12 +h12 - fi jh12h22) (8)

условие выхода: | - |

(8) – модифицированный метод Либмана (эта формула для точки, у которой известны значения слева и снизу на (к+1) шаге, а справа и сверху значение неизвестно).

52 Метод прогонки для решения задач параболического типа.

(4) умножим на h12. (Uij-Uij-1)S=Ui-1j-2Uij+Ui+1j

 S= =

Ui-1j-(S+2)Uij+Ui+1j+SUij-1=0 (7)

Решение будем искать в виде: Uij=aij(bij+Ui+1j), где a,b const Uij.

Подставим представление (8) в формулу (7) вместо первого члена:

ai-1j(bi-1j+Uij)-(S+2)Uij+Ui+1j+SUij-1=0

Uij(ai-1j-S-2)+Ui+1j+SUij-1+ai-1jbi-1j=0

Uij= [(SUij-1+ai-1jbi-1j)+Ui+1j]

При сравнении с (8) получаем: aij= bij= SUij-1+ai-1jbi-1j

При i=1 с одной стороны по (8): U1j=a1j(b1j+U2j)

С другой стороны по (7): U0j-(S+2)U1j+U2j+SU1j-1=0

U0j=1j

U1j= ([1j+SU1j-1]+U2j)

Тогда при сравнении с (8): a1j= (9)

b1j=1j+SU1j-1 (10)

При j=1 a11=

b11=11+SU10=11+S1 Итак: Uij =aij(bij+Ui-1j)

aij= bij= SUij-1+ai+1jbi+1j

Начальные значения: anj= , bn1=21+Sn-1

Т.о., зная начальные значения коэффициентов a и b на каждом слое по формулам (9) и (10), мы можем пройти слева направо и подсчитать значения коэффициентов a и b во всех внутренних точках сетки на уровне j. А по известному значению и на правой границе. По найденным a и b можно осуществить обратный ход метода по (8) и получить на j-м временном фоне значения функции.

Аналогичная процедура повторяется для слоя j+1.

Можно построить метод и левой прогонки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]