Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методические указания к выполнению лабораторных работ по дисциплине Численные методы. Часть 2

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
11
мы (6.1) к треугольному виду, при помощи которой достаточно просто найти
)(3nO
011a
11
a
11
11
)1(
a
aa
aa
ji
ijij
11
11
)1(
a
ba
bb
i
ii
nji ,...,3,2,
)1(
22
)1(
2
)1(
2
)1()2(
a
aa
aa
ji
ijij
)1(
22
)1(
2
)1(
2
)1()2(
a
ba
bb
i
ii
nji ,...,3,
1n
11212111
... bxaxaxa
nn
2
)1(
22
)1(
22
... bxaxa
nn
nn
n
nn
bxa
)1(
)1(
)1()1(
)1()(
k
kk
k
kj
k
ik
k
ij
k
ij
a
aa
aa
)1(
)1()1(
)1()(
k
kk
k
k
k
ik
k
i
k
i
a
ba
bb
1,...,1 nk
nkji ,...,1,
ijij
aa
)0(
ii
bb
)0(
n
x
 
 
n
kj
j
k
kj
k
k
k
kk
k
xab
a
x
1
)1()1(
)1(
1
1,...,1, nnk
)1( k
kk
a
||max||
ik
ki
lk
aa
1,...,1 nk
1
Для
1,...,2,1 nk
,
7
kk
kik
ii
a
babb
,
решение. Требуемое число операций в методе Гаусса будет порядка
Рассмотрим одну из его реализаций – метод Гаусса-Жордана. Пусть
стоящие под коэффициентом
. Исключим из матрицы А коэффициенты в первом столбце,
:
,
,
.
На втором шаге делаем то же самое, но уже с подсистемой, получающей-
ся исключением первого уравнения из системы (6.1):
Применяя этот процесс
,
раз, система (6.1) преобразуется в систему с тре-
,
.
угольной матрицей:
……………………………….
,
.
где
,
,
,
,
, (6.5)
.
Совокупность вычислений по формулам (6.5) называют прямым ходом
метода Гаусса. Из полученной треугольной системы, начиная с
, последо-
вательно находим решение системы (6.1). Этот этап вычислений называется обратным ходом метода Гаусса:
Числа
,
называются главными (ведущими) элементами.
. (6.6)
Чтобы уменьшить влияние ошибок округлений и исключить деление на
нуль, на каждом шаге прямого хода осуществляется поиск максимального ко­эффициента в столбце подсистемы и переставления строки с этим коэффици­ентом со строкой, первой в этой подсистеме. Таким образом, на каждом шаге ищется такой номер строки l, что
,
.
Приведем алгоритм метода Гаусса с постолбцовым выбором главного
элемента:
12
2
Для
:,...,nkl
8
Для
:,....,1 nkj
3
Если
||max||
ik
ki
lk
aa
, то
9
kk
kjik
ijij
a
aaaa
.
4
liki
aa
,
lk
bb
.
10
nnnn
abx
5
Если
0
lk
a
, то остано-
вить работу алгоритма.
11
Для
1,2,...,1nk
6
Для
:,....,1 nki
12
 
 
nkj
jkjk
kk
k
xab
a
x
1
1
nn
LUPA
PbLy
yUx
1
][,ii
P
,0,
ji
P
][ij
]1[1
by
]2[2121
byyl
][1211
...
nnnn
byylyl
]1[1
by
121]2[2
ylby
i
y
),...,2( ni 
1
1
][
i
j
jijii
ylby
i
x
n
x
Другой схемой реализации метода Гаусса является схема так называемо-
го LUP-разложения. LUP-разложение состоит в следующем: создаются три матрицы размера
: L, U и P, где L – это нижнетреугольная матрица, ее
главная диагональ заполнена единицами, U – верхнетреугольная матрица, P – матрица перестановок, причем
. При помощи этих матриц можно
свести (6.2) к решению двух систем с треугольными матрицами:
, (6.7)
, (6.8)
где y – вспомогательное решение. Уравнение (6.7) называют "прямой" под­становкой, а уравнение (6.8) – обратной подстановкой. Матрица P состоит из
строк единичной матрицы, расставленных в соответствии с постолбцовым выбором главных элементов в методе Гаусса. Поэтому матрицу P при реали­зации на ЭВМ можно представить в виде массива чисел, обозначающих но­мера переставленных строк. Если  – это указанная перестановка, то
,
.
В результате система (6.7) будет иметь такой вид:
……………………………
Из (6.9) следует, что
ние (6.9), получим ний
Так как матрица U верхнетреугольная, то последовательность вычисле-
ния
нужно проводить, начиная с
(6.9)
. Подставляя это решение во второе уравне-
и т.д. Запишем общую формулу вычисле-
:
. (6.10)
. В общем случае имеем:
13
ii
n
ij
jijii
uxuyx
 
 
1
,
),...,1( ni
LUP
.,
,,
jiu
jil
a
ij
ij
ij
LUP
1
Для
:,...,2,1 ni
10
ikki
aa
.
2
.][ ii
11
Для
:,....,1 nki
3
Для
:,...,2,1 nk
12
kk
ik
ik
a
a
a
,
4
,0p
13
Для
:,....,1 nkj
5
Для
:,...,nki
14
kjikijij
aaaa
.
6
Если
paik||
, то
||ikap
,
ik
.
15
Для
:,....,1 ni
7
Если
0p
, то остановить работу
алгоритма.
16
1
1
][
i
j
jijii
yaby
.
8
].[][ kk
17
Для
:1,...,1, nni
9
Для
:,....,1 ni
18
ii
n
ij
jijii
axayx
 
 
1
.
cBxx
. (6.11)
Матрица U получается из матрицы A при прямом ходе метода Гаусса.
Матрица L – это матрица, состоящая из множителей, участвовавших в про­цессе исключения неизвестных.
При осуществлении реализации алгоритма
-разложения нет смысла
создавать отдельно матрицы U и L, так как после выполнения прямого хода метода Гаусса будем иметь
Алгоритм схемы
-разложения:
6.2. Итерационные методы
Привлекательным в итерационных методах является возможность поша-
гово контролировать точность вычислений, а также их простота реализации на ЭВМ.
Для применения итерационных методов систему (6.1)-(6.2) необходимо
преобразовать к эквивалентной системе вида
, (6.12)
где B и c – новые матрица и вектор соответственно.
Рассмотрим сначала метод простых итераций.
6.2.1. Метод простых итераций
Будем решать систему (6.12) методом последовательных приближений.
14
Примем за нулевое приближение, например, столбец свободных членов
cx
)0(
cBxx
)0()1(
1n
cBxx
nn )()1(
....,1,0n
n
xxx ...,,,
21
i
x
ii
i
i
a
b
c
 
 
.,...,1,,0
,,,...,1,,
niji
jinji
a
a
B
ii
ij
ij
B
B
1|||| B
|||| B
)0(
x
||max||||
1jnjxx
 
 
n
j
ij
ni
aA
1
1
||max||||
n
j
j
xx
1
1
||||||
 
 
n
i
ij
nj
aA
1
1
1
||max||||
n
j
j
xx
1
2
2
||||
i
AA
nj
T
A
1
2
max||||
i
AA
T
AA
T
||||||||)(
1
AAAcond
)(Acond
)(Acond
||||
||||1
||||
||||
)1()()(*
kkk
xx
B
B
xx
. Тогда
. Тогда (
)-ое приближение вычисляют по
формуле
,
(6.13)
Чтобы привести систему (6.2) к виду (6.12) можно, например, выразить
неизвестные
последовательно из уравнений системы (6.1), произ-
водя деление каждого уравнения на диагональные элементы системы и пере­нося в i-ом уравнении все слагаемые, не содержащие неизвестное
, в пра-
вую часть уравнения. В результате получим следующие выражения для эле­ментов матрицы B и вектора c:
,
Достаточное условие сходимости метода простых итераций: если какая-
либо норма
матрицы B системы (6.12) меньше единицы, то метод про-
стых итераций сходится к решению СЛАУ при любом начальном приближе­нии (со скоростью геометрической прогрессии со знаменателем
), т.е. дос-
таточно, чтобы норма матрицы B
для
и
. (6.14)
Укажем способы вычисления норм в пространстве векторов и матриц.
Наиболее употребительны следующие нормы:
1)
2)
3)
где
собственные числа матрицы
, и согласовнная ей норма матриц
,
,
;
,
.
;
Для исследования погрешностей, возникающих в системе (6.2), вводят
понятие числа обусловленности матрицы ца A будет особенной, то число
будет очень большим (во много раз
. Если матри-
больше 1). В этом случае говорят, что матрица плохо обусловлена. Чем ближе
к единице, тем матрица лучше обусловлена.
Известны оценки погрешности для метода простой итерации:
, (6.15)
15
||||
||||1
||||
||||
)0()1()(*
xx
B
B
xx
k
k
. (6.16)
cx
)0(
cBBxxx
)0()0()1(
||||
||||1
||||
||||
1
)(*
c
B
B
xx
k
k
||||
||||1
||||
)1()(
B
B
xx
kk
||||lg
||)||1lg(||||lglg
1
B
Bc
n
GDA
bxGD )(
bDGxDx
11
GDB1
bDc1
n
ji
j
ijii
aa
1
||||
ni ,...,1
A
1||||
A
)1( k
i
x
)1( k
1i
)1( k
1
)(
1
)(
111
)1(
1
... cxbxbx
k
nn
kk
i
k
nin
k
iii
k
iii
k
i
k
i
cxbxbxbxbx
)()(
,
)1(
11,
)1(
11
)1(
......
ni ,...,2
cxQxPx
kkk
)()1()1(
Если
, то
, тогда
. (6.17)
Итерационный процесс (6.13) принято останавливать, как только выпол-
нится неравенство
, (6.18)
где  – заданная точность решения системы.
Априорная оценка числа итераций при заданной погрешности :
. (6.19)
Укажем общий способ получения системы (6.12). Чтобы привести систе-
му (6.2) к виду (6.12) можно, например, положить:
, 
, тогда
,
Если матрица A имеет диагональное преобладание, т.е.
,
, (6.20)
.
то в качестве матрицы D можно выбрать нижне-треугольную часть матрицы
. Очевидно, что при диагональном преобладании элементов матрицы A
число
, следовательно, итерационный процесс (6.13) будет сходя-
щимся.
6.2.2. Метод Зейделя
Метод простых итераций обычно очень медленно сходится. Для его ус-
корения существует метод Зейделя, в котором для вычисления компоненты
вектора неизвестных на
ные первые
компоненты x на этой итерации. Значения остальных ком-
понент x берутся из предыдущей итерации. Метод Зейделя для вычисления
-го приближения к решению системы (6.12) будет иметь следующий
вид:
Систему (6.21) можно переписать в матричном виде:
, (6.22)
-й итерации используются уже вычислен-
,
,
(6.21)
16
0
...
0
0
...
............
0...0
0...00
1,21
21
nnnn
bbb
b
P
,
nn
n
n
b
bb
bbb
Q
...00
............
...0
...
222
11211
fxFx
kk )()1(
....2,1,0k
QPEF
1)(
cPEf
1)(
||||
||||1
||||
)1()(
Q
F
xx
kk
,
1
1
)1(
1
)()1(
ii
i
j
n
jij
n
ij
n
jiji
n
i
axaxabx
 
 
ni ,...,1
AA
T
32
321
xxx
1253
321
xxx
0104
321
xxx
0104,436,537
32132121
xxxxxxxx
.
Таким образом, метод Зейделя эквивалентен некоторому методу простой
итерации:
где
,
,
(6.23)
. Поэтому условия сходимости для метода
Зейделя будут те же, что и для метода простой итерации.
Для оценки погрешности метода Зейделя можно использовать выражение
. (6.24)
Метод Зейделя сходится также в случае, если матрица A системы (6.2)
является симметричной положительно определенной матрицей.
Если матрица A невырожденная и невелика, то систему (6.2) всегда при помощи элементарных преобразований строк можно привести к матрице с диагональным преобладанием, для которой рассмотренные методы итераций сходятся. Например, исходную матрицу A можно привести к матрице с диа­гональным преобладанием, если сделать следующее преобразование: разде­лить элементы матрицы на достаточно большое число (например, ее норму) и вычесть эту матрицу из единичной матрицы.
Пусть матрица A обладает диагональным преобладанием, тогда метод Зейделя примет следующий вид:
. (6.25)
Существует более простой способ приведения произвольной невырож­денной матрицы A к виду, при котором метод Зейделя будет сходиться. Для этого нужно нормализовать матрицу СЛАУ. Нормальную матрицу можно по­лучить, если, например, домножить слева матрицу A системы (6.2) на транс-
понированную к ней матрицу, так что матрица
будет симметричной и
положительно определенной. Однако этот способ ухудшает обусловленность матрицы СЛАУ.
Пример. Решим систему:
,
,
методами простой итерации и Зейделя.
В последнем уравнении есть преобладание диагонального элемента сис­темы. Добьемся этого преобладания в остальных уравнениях: умножим пер­вое уравнение на 2 и прибавим к нему второе, а из второго уравнения вычтем первое уравнение, тогда получим
, 
17
2
1
3
3
1
221
5
2
10
,
3
2
26
,
7
5
7
3
x
x
x
x
x
xxx
.
T
cx 0,32,75
)0(
05/210/1
2/106/1
07/30
B
2/1,6/4,7/3max||||
B
3/2
7/5||max||||
i
i
cc
001.0
001.0||||
||||1
||||
||||
1
)(*
c
B
B
xx
k
k
5
7
3
1
001.0
3
2
1
 
 
k
15
7
lg3
3
2
lg)1( k
9.181k
18k
Метод простых итераций
Метод Зейделя
k
1
x
2
x
3
x
k
1
x
2
x
3
x
0
–0.714285
0.666666
0
0 –0.714285
0.666666
0 1 –1
0.785714
0.338095
1
–1
0.833333
0.433333
2
–1.051020
1.00238
0.414285
3 –1.169387
1.127517
0.567945
3
–1.1438775
1.048979
0.506054
… … …
… … … … …
10
–1.212100
1.161599
0.585850
17
–1.212100
1.161587
0.585834
11
–1.212114
1.161610
0.585855
18
–1.212109
1.161600
0.585845
...212121.1
33
40
1
x
...161616.1
99
115
2
x
...585858.0
99
58
3
x
вар
Матрица
Правая
часть
вар
Матрица
Правая
часть
Пусть
,
=
,
.
Вычислим приближенно число итераций, дающее ответ с точностью
:
.
Сведем все вычисления в таблицу:
Точное решение, полученное методом Гаусса, будет следующим:
,
,
6.3. Задание на лабораторную работу № 5: Численное решение систем линейных уравнений
1. Решить систему линейных уравнений с матрицей и правой частью, приве-
денными в таблице (см. вариант), методами:
а) Гаусса с точностью 0.001 (четные номера вариантов – алгоритм Гаусса-
Жордана, нечетные – алгоритм LUP-разложения);
б) простой итерации или Зейделя с точностью 0,001, приведя предваритель­но систему к виду, удобному для итераций (вручную сделать пять итера­ций).
2. Сравнить результаты.
18
1
1,7 1,8 0,8
1,8 1 2,6
0,8 2,6 3,2
 

 


2,2
0,8
0,7
  


15
0,2 0,3 0,8
1,1 0,8 0,6
0,7 0,4 0,4
 
 

1,1 0,5
0,8
  


2
1,1 0,8 1,6
1 2,1 0,9
2,5 6,8 2,2
  


4,2
0,9
2,1
  
 
16
2,7 1,2 3,2
1,1 0,8 2,2
0,8 1,3 0,7
 
  
2,2
1,2
3,2
 
  
3
3,1 2,8 1,9 1,9 3,1 2,1 7,5 3,8 4,8
  
 
0,2
2,1
5,6
  
 
17
2,7 3,3 1,3 3,5 1,7 2,8
4,1 5,8 1,7
 
 

2,1 1,7 0,8
  
 
4
9,1 5,6 7,8
3,8 5,1 2,8
4,1 5,7 1,2
  


9,8
6,7
5,8
  
 
18
3,1 2,8 1,9 1,9 3,1 2,1 0,8 3,8 4,8
  
 
0,2
2,1
5,6
  
 
5
3,3 2,1 2,8
4,1 3,7 4,8
2,7 1,8 1,1
  


0,8 5,7
3,2
  


19
3,6 1,8 4,7 2,7 3,6 1,9 1,5 4,5 3,3
 
  
3,8
0,4
1,6
  


6
5,3 1,7 3,6 1,5 2,4 0,5
1,8 1,2 3,5
 
 

4,1
5
0,2
  
 
20
2,7 0,9 2,1
4,3 2,6 7,1
4,1 2,7 1,4
 
 

3,2
2,3
0,2
  


7
3,2 2,5 3,7 0,5 0,4 1,7 1,6 2,3 1,5
  


6,5
0,2
4,3
 
  
21
3,6 6,7 2,1 5,4 1,2 3,7 2,4 4,5 2,9
 
 

5,1
2,9
0,8
  


8
5,4 2,3 3,4 4,2 1,7 2,3 3,4 2,4 7,4
 
  
3,5 2,7 1,9
  
 
22
4,6 2,1 3,5 3,2 2,1 1,5 1,8 2,6 4,7
 
  
1,6 3,5 2,2
  
 
9
3,6 1,8 4,7 2,7 3,6 1,9 1,5 4,5 3,3
 
  
3,8 0,4
1,6
  


23
4,5 1,8 3,6
3,1 2,3 1,2
1,8 2,5 4,6
 
  
1,7 3,6 2,2
  
 
10
9,9 7 0,1
1,1 2,5 4
0,5 1,1 6,2
  
 
7 2,5 6,2
  
 
24
7,4 2,2 3,1 1,6 4,8 8,5 4,7 7,1 6,1
 
 

0,7 2,4 6,6
  
 
11
2,7 0,9 1,5
4,5 2,8 6,7
5,1 3,7 1,4
 
 

3,5 2,6
0,1
  


25
7,1 8,2 4,4 3,2 1,5 2,9 4,5 6,7 1,3
  
 
1,1
5,4
9,8
  


12
4,5 3,5 7,5
3,1 0,6 2,3
0,8 7,4 0,5
 

 

2,5
1,5
6,4
 
  
26
4,3 1,5 0,7
1,4 1,7 1,9
0,7 1,9 2,1
 

 

1,4 2,7
0,6
  


19
13
3,8 6,7 1,2
3,9 6,8 1,1 2,4 4,5 3,5
 
 

5,2 3,8
0,5
  


27
0,5 0,7 1,9
0,7 0,8 1,2
2,1 1,2 2,5
 

 

0,7
1
1,4
  
 
14
5,4 6,2 0,5 3,4 2,3 0,8 2,4 1,1 3,8

  


0,5
0,8
1,8
 
  
28
2,2 1,8 0,4
3,1 2,4 1,1
2,5 1,1 7,3
 
 

1,2 0,2
0,8
  
 
),( yxf
dx
dy
00
)( yxy
],[0bx
],[ ba
10
xxa
bxN...
hxx
nn1
Nn ,...,0
)(xy
)(nxy
n
x
hxyhxyy ))()((
)(xy
n
x
0
0
x
1
x
h
y
0
y
3
x
2
x
)(xy
ломаная Эйлера
))((
000
xxxyyy
7. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
Рассмотрим основные численные методы решения обыкновенных диф-
ференциальных уравнений (ОДУ) первого порядка с заданным начальным ус­ловием (задача Коши)
,
. (7.1)
Будем считать, что выполняются условия существования и единственно-
сти решения задачи Коши (7.1) на отрезке
.
Основная задача численных методов решения ОДУ состоит в отыскании только одного частного решения, так как эти методы ищут искомую функцию не аналитически (в виде формул), а численно, в виде набора значений этой функции на некотором множестве точек. Это достигается при помощи дис­кретизации исходной задачи.
Дискретизация задачи (7.1) делается следующим образом: на заданном промежутке
. Если сетка равномерная, то
ние
ищется в виде сеточной функции, т.е. набора значений
выбирается сетка (множество точек):
,
. Тогда реше-
в узлах
выбранной сетки. Эти значения в общем случае ищутся приближенно.
7.1. Метод Эйлера
Этот метод является одношаго-
вым методом решения дифференци­альных уравнений при помощи ко­нечных разностей первого порядка.
Если производную в (7.1) заме-
нить аппроксимирующей формулой:
, то, применяя эту формулу для решения зи произвольного узла формулу Эйлера:
вбли-
, получим
20
),(
1 nnnn
yxfhyy
, (7.2)
nn
yxy )(
nhxx
n
0
Nn ,...,0
)(xy
)(xy
],[
0
bxa
],[0xx
x
x
dttytfxyxy
0
))(,()()(
0
)))((,()(
010001
xxxyxfyxy
1n
x
)))((,()(
11 nnnnnn
xxxyxfyxy
],[
1nn
xx
),(),(
2
)(
1111
nnnnnnn
yxfyxf
h
yyxy
1n
y
),(,(),(
2
11 nnnnnnnn
yxfhyxfyxf
h
yy
1n
y
),(),(
2
)1(
11
)( 1
k
nnnnn
k
n
yxfyxf
h
yy
),(
)0( 1 nnnn
yxfhyy
)1(
1
)( 1
k
n
k
n
yy
где
График решения
,
,
.
задачи Коши (7.1) по методу Эйлера представляет
собой ломаную линию, составленную из отрезков касательных, проведенных в узлах сетки. Метод Эйлера является одношаговым методом, так как для отыскания последующего значения функции
необходимо знать одно
предыдущее ее значение в предшествующем узле сетки. На каждом шаге чис­ленного интегрирования метод Эйлера имеет второй порядок точности. Но на всем отрезке
порядок точности метода Эйлера совпадает с поряд-
ком аппроксимации производной и имеет первый порядок точности.
7.2. Модифицированный метод Эйлера (метод Эйлера-Коши)
Проинтегрируем уравнение (7.1) на отрезке
ние задачи Коши в виде следующего интегрального уравнения:
. (7.3)
Интеграл в правой части уравнения (7.3) можно взять численно по одно-
му из методов численного интегрирования.
Если применить метод левых прямоугольников, то получим:
, что в общем случае, для
, тогда получим реше-
, приводит к
формуле Эйлера:
.
Если интеграл в (7.3) вычислить с помощью метода трапеций, тогда для
отрезка
получим:
. (7.4)
Если значение для
в правой части уравнения (7.4) вычислять по методу
Эйлера, то получим модифицированный метод Эйлера:
. (7.5)
Можно достичь большей точности, если делать несколько итераций по
модифицированному методу Эйлера для значения
:
, (7.6)
где
, делая оценку выражения
.
Так как метод трапеций имеет второй порядок точности, то и модифици-
рованный метод Эйлера также имеет второй порядок точности на всем интер­вале интегрирования.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]