Численные методы. Методические указания к выполнению лабораторных работ
.pdf
Разделив коэффициенты первого уравнения системы (3) на ведущий эле-
мент 22(1) , получим
|
|
|
+ (1) |
= (1) |
, |
(4) |
|||||
|
|
|
2 |
23 |
3 |
24 |
|
|
|||
где |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1) |
|
|
|
|
|
|
|
|
(1) |
|
|
2 |
|
|
|
|
|
||
|
2 |
|
= |
|
|
|
(j= 3, 4). |
|
|
||
|
|
(1) |
|
|
|
||||||
|
|
|
|
|
22 |
|
|
|
|
|
|
Исключая 2 |
таким же образом, каким было исключено 1, будем иметь |
||||||||||
|
(2) = (2) , |
|
|
(5) |
|||||||
|
|
33 |
3 |
|
|
34 |
|
|
|
||
где |
|
|
|
|
|
|
|
|
|
|
|
|
(2) |
|
= (1) |
− (1) |
∙ (1) |
( = 3,4) . |
|||||
|
3 |
|
|
|
3 |
|
32 |
2 |
|
|
|
Тогда
(2)
3 = 34(2) = 34(2). (6)
33
Остальные неизвестные определяются из уравнений (4) и (2):
2 = 24(1) − 23(1) ∙ 3
1 = 14 − 13 3 − 12 2 .
Таким образом, процесс решения системы уравнений по методу Гаусса сводится к построению эквивалентной системы (2), (4), (6), имеющей треуголь-
ную матрицу. Необходимым и достаточным условием применимости метода является неравенство нулю всех ведущих элементов. Процесс нахождения ко-
эффициентов треугольной системы называется прямым ходом, процесс по-
лучения значений неизвестных – обратным.
При большом числе неизвестных системы схема метода Гаусса становит-
ся сложной. В этих случаях можно воспользоваться приближенными числен-
ными методами. Рассмотрим один из них.
21
Метод итерации
Пусть дана линейная система
|
+ + + = , |
|
|||
|
11 1 |
12 2 |
1 |
1 |
|
{ |
+ + + = , |
(7) |
|||
21 1 |
22 2 |
2 |
2 |
||
|
− − − − − − − − − − − − − − − |
|
|||
|
+ + + = . |
|
|||
|
1 1 |
2 2 |
|
|
|
Предполагая, что диагональные коэффициенты |
|
|
|||
|
|
≠ 0, |
( = 1,2, … , ), |
|
|
|
|
|
|
|
|
разрешим первое уравнение системы (7) относительно 1, второе – относительно 2, и т. д. В результате получим эквивалентную систему уравнений
|
|
+ + … + , |
|
|
||||||||||
|
|
|
1= |
1 |
|
12 |
2 |
13 |
3 |
1 |
|
|
||
|
|
+ + … + , |
|
|
||||||||||
{ |
|
|
2= |
2 |
|
21 |
1 |
23 |
3 |
2 |
|
(8) |
||
|
− − − − − − − − − − − − − − − |
|
||||||||||||
|
|
|
|
|||||||||||
|
|
+ + … + |
|
. |
|
|||||||||
|
= |
|
|
|
1 |
1 |
2 |
2 |
|
( −1) −1 |
|
|
||
где |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
= |
|
|
, |
|
= − |
|
при |
i≠ |
(i, j=1,2, …, n). |
|||||
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
||||
Вводя в рассмотрение матрицы |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
11 |
12 |
1 |
1 |
|
||||
|
|
|
|
= | 21 |
22 |
2 | и = | |
| |
|||||||
|
|
|
|
|
|
1 |
2 |
|
|
2 |
|
|||
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
систему (8), можно записать в матричной форме |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
= + |
|
|
(9) |
||
Если за нулевое приближение принять столбец свободных членов и подставить его в правую часть уравнения (9), то получим первое приближение
1 = + 0.
Аналогично 2 = + 1. Любое (n + 1) приближение вычисляется по формуле +1 = + . Процесс итерации продолжается до тех пор, пока не будет выполнено условие | +1 − | ≤ .
Блок-схема алгоритма решения систем линейных алгебраических уравнений методом итерации приведена на рис. 12. Исходными данными являются: N – порядок системы, ε – заданная точность расчета; ( , ) – элементы матрицы коэффициентов при неизвестных; ( ) – вектор свободных членов; ( ) – начальное приближение к решению; X( )– рабочий массив.
22
Начало |
Ввод |
N,E,Y(N) |
= 0 |
a |
= 1 |
( ) = ( ) |
= 1 |
д |
= |
нет |
( ) = ( ) − ( , ) |
= + 1 |
д |
≤ |
нет |
( ) |
( ) = ( , ) |
= + 1 |
д |
≤ |
нет |
= 1 |
нет |
|( ) − ( )| |
д |
= 1 |
( ) = ( ) |
= + 1 |
д |
≤ |
нет |
нет |
= + 1 |
a |
= + 1 |
д
≤
нет
Вывод
X(I), S
Конец
Рис.12. Блок - схема алгоритма метода итераций
23
2. Задание
Решить систему линейных уравнений = методом Гаусса.
11 1 + 12 2 + 13 3 = 1 , { 21 1 + 22 2 + 23 3 = 2 ,31 1 + 32 2 + 33 3 = 3 .
3.Порядок выполнения лабораторной работы
1.Изучить свой вариант задания (см. с.27).
2.Разработать блок-схему алгоритма решения задачи.
3.Составить программу решения задачи.
Исходными данными являются:
Порядок уравнения системы ;
Массив коэффициентов при неизвестных ( ; + 1). 4. Составить отчет по лабораторной работе.
Алгоритм решения системы n линейных уравнений методом Гаусса
Блок–схема алгоритма решения систем линейных уравнений приведена на рис.13. Алгоритм состоит из следующих основных этапов.
1. Представление исходных данных в виде массива – прямоугольной матрицы вида
|
11 |
12 |
1 |
1, +1 |
|
|
21 |
22 |
2 |
2, +1 |
|
= | |
|
|
|
|, |
|
|
|
|
|
|
|
|
1 |
2 |
|
, +1 |
|
где |
|
|
|
|
|
|
= , |
= … , |
= . |
||
1, +1 |
1 |
2, +1 |
2, |
, +1 |
|
2.Первая строка матрицы делится на 11, затем умножается на
,1( = 2,3, … , )
и вычитается из к-й строки (последовательно из 2-,3-,…, n-й строк); эле-
менты первого столбца матрицы, начиная с 21 и до 1, становятся нулями:
24
Начало
Ввод n,
A(n,n+1)
Цикл
= 1, − 1
= ,
Цикл
= 1, + 1
, = ,/
Конец цикла по J
Цикл
= + 1,
Цикл
= 1, + 1
, = , − , ,
Конец цикла по L
Конец цикла по K
Конец цикла по I
= , +1/,
Цикл
= − 1, − 1
= 0
Цикл
= + 1,
= + ,
Конец цикла по J
= , +1 −
Конец цикла по K
Вывод ( )
Конец
Рис.13. Блок - схема алгоритма метода Гаусса
25
|
1 |
12 |
1 |
1, +1 |
|
|
1 |
0 |
22 |
2 |
2, +1 |
|
|
= | |
|
|
|
|
| , |
|
|
|
|
2 |
|
|
|
|
|
|
|
, +1 |
|
|
где обозначение 1 принято для преобразованной матрицы.
3.Вторая строка матрицы 1 делится на 22, затем умножается на 2 и
вычитается из всех строк = 3,4, … , .
4.Действия, аналогичные перечисленным в п.3, повторяются до тех пор,
пока подобная процедура не будет проделана с (n-i)-й строкой матрицы; матри-
ца будет приведена к виду
1 |
12 13 |
1 |
1, +1 |
|
|||
0 |
1 23 |
2 |
2, +1 |
|
|||
−1 = |
|
. |
|||||
| 0 |
0 |
0 |
1 |
|
|
−1, +1 |
| |
|
|
|
|
−1, |
|
|
|
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
, |
|
, +1 |
|
5. Элементы последней строки полученной матрицы позволяют вычис-
лить значение
= , +1.
,
6. Значение корня используется для отыскания |
|
при подстановке |
|||||||
|
|
|
|
|
|
|
|
−1 |
|
в (n-i)-ю строку треугольной матрицы |
|
−1 |
, |
а затем вычисляются остальные |
|||||
|
|
|
|
|
|
|
|
|
|
корни |
, … , по формуле |
|
|
|
|
|
|
|
|
−2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
= |
− |
∑ |
|
. |
|
|
|
|
|
, +1 |
|
|
|
|
|
|
|
= +1
4.Контрольные вопросы
1.Объяснить последовательность вычисления корней методом Гаусса.
2.Назвать необходимые и достаточные условия применимости метода Гаусса.
3.Какие этапы называются прямым и обратным ходом решения?
4.В чем заключается преимущество метода Гаусса перед методом итера-
ции?
5.Объяснить последовательность вычисления корней методом итерации.
26
6.Объяснить сущность метода Гаусса с выбором главного элемента.
7.Как производится оценка погрешности в методе итерации?
8.Написать формулу первого приближения методом итераций.
9.Написать формулу вычисления корня методом Гаусса.
27
|
|
|
|
5. |
Варианты заданий |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
||||
№ |
Матрица |
|
Вектор |
|
№ |
|
Матрица |
|
Вектор |
||||
вари- |
коэффициентов |
|
|
вари- |
коэффициентов |
||||||||
|
B |
|
B |
||||||||||
анта |
|
|
A |
|
|
|
анта |
|
|
A |
|
||
|
|
|
|
|
|
|
|
|
|
||||
1 |
|
|
2 |
|
|
3 |
|
4 |
|
|
5 |
|
6 |
|
9 |
5 |
4 |
7 |
|
0 |
|
|
2 |
1 |
5 |
2 |
1 |
1 |
4 |
6 |
8 |
7 |
|
6 |
|
8 |
5 |
2 |
2 |
6 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
5 |
8 |
7 |
6 |
|
3 |
|
|
2 |
2 |
1 |
2 |
0 |
|
5 |
6 |
8 |
7 |
|
7 |
|
|
1 |
3 |
3 |
1 |
2 |
|
9 |
5 |
3 |
8 |
|
3 |
|
|
7 |
6 |
2 |
7 |
3 |
2 |
4 |
6 |
7 |
4 |
|
8 |
|
9 |
4 |
9 |
5 |
5 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
2 |
3 |
5 |
3 |
|
1 |
|
|
2 |
3 |
4 |
9 |
0 |
|
4 |
8 |
3 |
7 |
|
7 |
|
|
1 |
5 |
6 |
9 |
2 |
|
1 |
4 |
2 |
5 |
|
3 |
|
|
3 |
6 |
5 |
7 |
3 |
|
4 |
4 |
5 |
3 |
|
8 |
|
|
4 |
6 |
3 |
5 |
0 |
3 |
1 |
2 |
6 |
8 |
|
1 |
|
10 |
2 |
3 |
2 |
6 |
4 |
|
|
|
|
||||||||||
|
3 |
7 |
3 |
2 |
|
7 |
|
|
2 |
4 |
3 |
6 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
3 |
5 |
2 |
|
3 |
|
|
9 |
5 |
4 |
7 |
0 |
|
5 |
2 |
7 |
5 |
|
2 |
|
|
4 |
6 |
8 |
7 |
6 |
4 |
4 |
2 |
1 |
7 |
|
3 |
|
11 |
5 |
8 |
7 |
6 |
3 |
|
|
|
|
||||||||||
|
7 |
5 |
4 |
1 |
|
2 |
|
|
5 |
6 |
8 |
7 |
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
6 |
3 |
8 |
|
3 |
|
|
9 |
6 |
3 |
8 |
3 |
|
4 |
6 |
7 |
4 |
|
1 |
|
|
4 |
6 |
7 |
4 |
1 |
5 |
2 |
3 |
5 |
3 |
|
4 |
|
12 |
2 |
3 |
5 |
3 |
4 |
|
|
|
|
||||||||||
|
4 |
8 |
3 |
7 |
|
2 |
|
|
4 |
8 |
3 |
7 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
4 |
7 |
4 |
|
2 |
|
|
2 |
3 |
5 |
2 |
3 |
|
4 |
1 |
6 |
2 |
|
0 |
|
|
5 |
2 |
7 |
5 |
2 |
6 |
8 |
3 |
6 |
7 |
|
3 |
|
13 |
4 |
2 |
1 |
7 |
3 |
|
|
|
|
||||||||||
|
6 |
3 |
5 |
7 |
|
1 |
|
|
7 |
5 |
4 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
3 |
4 |
5 |
|
1 |
|
|
1 |
4 |
2 |
5 |
3 |
|
|
|
|
|
|
|
|
|
|
||||
|
2 |
6 |
4 |
6 |
|
4 |
|
|
4 |
4 |
5 |
3 |
8 |
7 |
3 |
4 |
5 |
5 |
|
0 |
|
14 |
1 |
2 |
6 |
8 |
1 |
|
|
|
|
||||||||||
|
1 |
9 |
3 |
6 |
|
3 |
|
|
3 |
7 |
3 |
2 |
7 |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
|
|
|
|
|
|
Лабораторная работа №4
Решение систем обыкновенных дифференциальных уравнений
методом Рунге-Кутта
|
|
1. Методические указания к выполнению работы |
|
|||
|
|
Пусть дано дифференциальное уравнение |
|
|||
|
|
|
′ = ( , ), |
(10) |
||
|
|
удовлетворяющее начальному условию ( 0) = 0. Требуется найти ре- |
||||
шение этого уравнения на интервале [ |
, ] |
c заданной точностью. Интервал |
||||
|
|
|
0 |
|
|
|
[ |
, |
] разбивается на n равных частей c помощью точек |
|
|||
0 |
|
|
|
|
|
|
|
|
|
= + ( = 0,1,2, … ). |
|
||
|
|
|
0 |
|
|
|
Решение уравнения (10) находится не для всех точек интервала, а лишь для дискретных значений
( = 0,1,2, … , ).
В методе Рунге-Кутта для определения значения функции необходимо
четырежды вычислить производную и результат усреднить. Погрешность этого
метода пропорциональна |
5. |
|
|
|
|
|
|
|
|
При этом для каждой точки рассчитываются следующие коэффициенты: |
|||||||||
|
|
|
= ∙ ( , ); |
|
|
|
|||
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
= ∙ ( + |
|
, + |
1 |
) ; |
|||
|
2 |
|
|||||||
|
2 |
|
|
|
2 |
|
|
||
|
|
|
|
|
|
|
|
||
|
|
= ∙ ( + |
|
, + |
2 |
) ; |
|||
|
2 |
|
|||||||
|
3 |
|
|
|
2 |
|
|
||
|
= ∙ ( + , + ), |
||||||||
|
4 |
|
|
|
3 |
|
|
||
а затем значение функции по формуле |
|
|
|
||||||
|
= + ( + 2 |
+ 2 |
+ )/6. |
||||||
+1 |
|
|
1 |
2 |
3 |
4 |
|||
Эффективная оценка погрешности метода Рунге-Кутта затруднена. По-
этому для проверки правильности выбора шага h используют двойной пересчет значений в каждой точке; один раз с шагом h, другой – с шагом h/2.
29
Если условие
| − /2| |
≤ |
(11) |
|
15 |
|
||
|
|
|
|
выполняется, то шаг h выбран правильно, и переходят к расчету в следу-
ющей точке. В противном случае шаг уменьшается вдвое и расчеты повторя-
ются. В формуле (11): , /2 значения функции, рассчитанные с шагом h и h/2 соответственно.
Блок - схема алгоритма метода Рунге–Кутта приведена на рис.14.
2. Задание
Найти решение дифференциального уравнения в интервале [0, ] с точностью = 10−3.
3.Порядок выполнения лабораторной работы
1.Изучить свой вариант задания (см. с. 30).
2.Разработать блок-схему алгоритма решения задачи.
3.Составить программу решения задачи.
Исходными данными являются:
Начало и конец интервала интегрирования – 0, ;
Начальное значение функции 0;
Точность расчета ε; H – шаг интегрирования;
вспомогательный массив (3).
4.Составить отчет по лабораторной работе.
4.Варианты заданий
Номер |
Уравнение |
у |
х0 |
хn |
|
Варианта |
|||||
|
|
|
|
||
1 |
у' = 1/у + х |
1 |
0 |
0,5 |
|
|
|
|
|
|
|
2 |
у' = х + у |
1 |
0 |
1 |
|
|
|
|
|
|
|
3 |
у' = 2ху + ху2 |
0,5 |
0 |
0,5 |
|
|
|
|
|
|
|
|
30 |
|
|
|
