П16
.pdfМЕТОД ПРОГОНКИ
-c |
b 0 |
|
|
0 a |
СЛАУ ИМЕЕТ ВИД:
− c x + b x |
|
= f |
|
||
|
1 1 |
1 |
2 |
|
1 |
ai xi −1 − ci xi |
+ bi xi +1 = fi , i = 2,..., n −1 |
||||
|
|
− cn xn |
= fn |
||
an xn −1 |
РЕШЕНИЕ ОТЫСКИВАЕТСЯ В ВИДЕ:
xi = αi +1 xi +1 + βi +1 , i = 1,2,...n −1
αi, βi –ПРОГОНОЧНЫЕ КОЭФФИЦИЕНТЫ
МЕТОД ПРОГОНКИ
2 ЭТАПА
•ПРЯМОЙ: ИЩЕМ ПРОГОНОЧНЫЕ КОЭФФИЦИЕНТЫ
•ОБРАТНЫЙ: ИЩЕМ РЕШЕНИЕ
ПРЯМОЙ ЭТАП (ИЩЕМ ПРОГОНОЧНЫЕ КОЭФ-ТЫ)
ИЗ ПЕРВОГО УР-ИЯ: |
|
− c1 x1 + b1 x2 = f1 |
||||
x = |
b1 |
x |
|
− |
f1 |
|
|
2 |
|
|
|||
1 |
c1 |
|
|
c1 |
||
|
|
|
|
СРАВНИМ С ФОРМУЛОЙ: x1 = α 2 x2 + β2
α |
|
= |
b1 |
, |
β |
|
= − |
f1 |
|
2 |
c1 |
2 |
c1 |
||||||
|
|
|
|
|
|||||
|
|
|
|
|
|
|
МЕТОД ПРОГОНКИ
ПОДСТАВИМ ПРОГОНОЧНОЕ СООТНОШЕНИЕ:
xi −1 = αi xi + βi , i = 2,3,...n
В СИСТЕМУ:
ai xi −1 − ci xi + bi xi +1 = fi , i = 2,..., n −1
ai (α i xi + βi )− ci xi + bi xi +1 = fi (aiα i − ci )xi + ai βi + bi xi +1 = fi
ВЫРАЗИМ ИЗ ЭТОГО УРАВНЕНИЯ xi :
МЕТОД ПРОГОНКИ
xi |
= |
|
bi |
|
xi +1 |
− |
|
fi |
− ai βi |
|
|
ci − aiαi |
|
ci − aiαi |
|||||||||
|
|
|
|
|
|||||||
|
Сравним с формулой: |
|
|
||||||||
xi |
= αi +1 xi +1 + βi +1 , |
|
i = 2,3,...n −1 |
||||||||
αi +1 = |
|
bi |
, |
βi +1 |
= − |
fi − ai βi |
|||||
|
ci − aiαi |
ci − aiαi |
|||||||||
|
|
|
|
|
|
|
|
ПО ЭТИМ ФОРМУЛАМ ВЫЧИСЛЯЮТ ВСЕ ПРОГОНОЧНЫЕ КОЭФФИЦИЕНТЫ
αi , β i , i = 2,..., n
МЕТОД ПРОГОНКИ
ОБРАТНЫЙ ЭТАП: НАХОДИМ РЕШЕНИЕ
ПОСЛЕДНЕЕ УРАВНЕНИЕ: an xn−1 − cn xn = fn
ПРОГОНОЧНОЕ СООТНОШЕНИЕ: xn−1 = α n xn + βn
НАХОДИМ xn: |
an (αn xn + β n ) − cn xn = fn |
|||
xn |
= − |
fn − an β n |
|
|
cn − anαn |
||||
|
|
ОСТАЛЬНЫЕ НЕИЗВЕСТНЫЕ НАХОДИМ ИЗ ПРОГОНОЧНОГО СООТНОШЕНИЯ:
xi −1 = αi xi + βi , i = n, n − 1,...,2
МЕТОД ПРОГОНКИ
ПРЯМОЙ ЭТАП: НАХОДИМ КОЭФФИЦИЕНТЫ
|
|
|
α |
|
= |
b1 |
|
, |
β |
|
= − |
f1 |
|
|
||||
|
|
2 |
c1 |
2 |
c1 |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
α |
|
= |
|
|
bi |
|
, |
|
β |
|
|
= − |
fi − ai β i |
, i = 2,3,..., n − 1 |
||||
i +1 |
|
|
|
|
|
|
i +1 |
|
||||||||||
|
|
ci |
− aiαi |
|
|
|
|
ci − aiαi |
||||||||||
|
|
|
|
|
|
|
|
|
ОБРАТНЫЙ ЭТАП: НАХОДИМ РЕШЕНИЕ
xn |
= − |
f n − an βn |
|
|
cn − anα n |
||||
|
|
|||
xi −1 = αi xi |
+ βi , i = n, n −1,...,2 |
МЕТОД ПРОГОНКИ
ПРЯМОЙ ЭТАП: НАХОДИМ КОЭФФИЦИЕНТЫ
|
|
|
α = |
BB0 |
= |
|
k2 |
|
, β = − |
FF0 |
= − |
Aτ |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
1 |
|
CC0 |
k2 − k1τ |
|
1 |
|
CC0 |
( k2 − k1τ ) |
||||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||||
α |
|
= |
|
|
BBi |
|
, β |
|
|
= |
AAi βi − FFi |
, |
i = 1,2,...,M − 1 |
|||||||||
i +1 |
|
|
|
|
|
|
|
i +1 |
|
|
||||||||||||
|
|
CCi − αi AAi |
|
CCi − αi AAi |
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
ОБРАТНЫЙ ЭТАП: НАХОДИМ РЕШЕНИЕ |
||||||||||||||||||
|
|
y |
|
= |
AAM βM − FFM |
|
= |
l2 β M + Bτ |
|
|||||||||||||
|
|
M |
|
|
l2 + τ l1 − l2αM |
|||||||||||||||||
|
|
|
|
|
|
CCM |
− AAM αM |
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
yi −1 = αi yi + βi , |
|
i = M ,M − 1,...1 |
ЛАБОРАТОРНАЯ РАБОТА:
1. Решить тестовую задачу
y′′ + tg(t) y′ + cos2 (t ) y = 0, t [0,1], y(0) = 1, y(1) = 10,
Точное решение :
u(t) = cos(sin(t)) + C1 sin(sin(t)), C1=(10 - cos(sin(1)))/sin(sin(1)).
Сравнить приближенные решения, полученные на различных сетках, с точным. решением.
Найти максимальную погрешность при каждом M. Приготовить для отчета Таблицу:
M |
Max погрешность |u(ti) – yi| |
|
|
На основании анализа погрешности сделать
вывод о порядке точности метода |
18 |
|
Алгоритм решения
•Входными данными в ПФ служат начало и конец отрезка и число шагов (a,b,M)
•Найти шаг сетки и сформировать в цикле массив аргумента (X – массив из M+1 элементов)
•Сформировать массивы AA, BB, CC и FF на основе
коэффициентов ОДУ
•Найти первые прогоночные коэффициенты (alpha0 и beta0)
•В цикле вычислить остальные прогоночные коэффициенты по формулам прогонки
•Найти значение искомой функции в последней точке yM
•В цикле найти все остальные значения функции
•В качестве выходных параметров передать массив аргумента и функции
ЛАБОРАТОРНАЯ РАБОТА:
t0 := 0 |
tk := 1 |
y0 := 1 |
yk := 10 |
|
p(t) := tan (t) |
q(t) := cos (t)2 |
r(t) := 0 |
||
C1 := |
10 − cos (sin(1)) |
= 12.518 |
|
|
|
|
|||
|
sin(sin( |
1)) |
|
|
yt (t) := cos (sin |
(t)) + C1 sin(sin(t)) |
|