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

303208

.pdf
Скачиваний:
2
Добавлен:
15.11.2022
Размер:
778.13 Кб
Скачать

Разделив коэффициенты первого уравнения системы (3) на ведущий эле-

мент (1)22 , получим

 

 

+ (1)

= (1)

,

(4)

 

2

 

23

 

3

24

 

 

где

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1)

 

 

 

 

 

 

 

2(1) =

 

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)

 

(2)

 

 

 

 

 

=

 

34

 

= .

 

(6)

 

 

 

(2)

 

 

3

 

 

 

 

34

 

 

33

Остальные неизвестные определяются из уравнений (4) и (2):

2 = 24(1) 23(1) 3

1 = 14 13 3 12 2 .

Таким образом, процесс решения системы уравнений по методу Гаусса сводится к построению эквивалентной системы (2), (4), (6), имеющей треугольную матрицу. Необходимым и достаточным условием применимости метода является неравенство нулю всех ведущих элементов. Процесс нахождения ко-

эффициентов треугольной системы называется прямым ходом, процесс по-

лучения значений неизвестных – обратным.

При большом числе неизвестных системы схема метода Гаусса становится сложной. В этих случаях можно воспользоваться приближенными численными методами. Рассмотрим один из них.

Метод итерации

Пусть дана линейная система

21

 

 

+

 

+ +

1

= ,

 

 

 

 

11 1

12

2

 

1

 

{

 

+

 

+ +

 

= ,

(7)

 

 

21 1

22

2

2

 

2

 

− − − − − − − − − − − − − − −

 

 

 

+

2

+ +

 

= .

 

 

 

1 1

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 | и = |

|

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

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

= ,

2, +1

= … ,

, +1

= .

 

1

 

2,

 

 

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

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

 

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.Назвать необходимые и достаточные условия применимости метода Гаусса.

26

3.Какие этапы называются прямым и обратным ходом решения?

4.В чем заключается преимущество метода Гаусса перед методом итерации?

5.Объяснить последовательность вычисления корней методом итерации.

6.Объяснить сущность метода Гаусса с выбором главного элемента.

7.Как производится оценка погрешности в методе итерации?

8.Написать формулу первого приближения методом итераций.

9.Написать формулу вычисления корня методом Гаусса.

5.Варианты заданий

Матрица

 

 

Матрица

 

коэффициен-

Вектор

 

коэффициен-

Вектор

вари-

 

вари-

 

тов

 

B

 

 

тов

 

B

анта

 

 

 

анта

 

 

 

 

A

 

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

3

 

4

 

 

5

 

6

 

9

5

4

7

0

 

 

2

1

5

2

1

 

4

6

8

7

6

 

 

5

2

2

6

3

1

5

8

7

6

3

 

8

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

 

4

6

7

4

8

 

 

4

9

5

5

2

2

2

3

5

3

1

 

9

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

27

 

 

 

 

 

1

 

 

2

 

3

4

 

 

5

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

Лабораторная работа №4 Решение систем обыкновенных дифференциальных уравнений

методом Рунге-Кутта

 

1. Методические указания к выполнению работы

 

Пусть дано дифференциальное уравнение

 

= ( , ),

(10)

удовлетворяющее начальному условию ( 0) = 0. Требуется найти решение

этого

уравнения на интервале

[

0

,

 

]

c заданной точностью. Интервал

 

 

 

 

 

 

 

[

,

] разбивается на n равных частей c помощью точек

0

 

 

 

 

 

 

 

 

= 0 + ( = 0,1,2,… ).

Решение уравнения (10) находится не для всех точек интервала, а лишь для дискретных значений

( = 0,1,2,… , ).

28

В методе Рунге-Кутта для определения значения функции необходимо четырежды вычислить производную и результат усреднить. Погрешность этого

метода пропорциональна

5.

 

 

 

 

 

 

 

 

При этом для каждой точки рассчитываются следующие коэффициенты:

 

 

 

= ∙ ( , );

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= ∙ ( +

, +

1

);

 

2

 

 

 

2

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

= ∙ ( +

, +

2

);

 

2

 

 

3

 

 

 

2

 

 

 

= ∙ ( + , + ),

 

 

4

 

 

 

3

 

 

а затем значение функции по формуле

 

 

 

 

 

 

 

 

= + ( + 2

+ 2

+ )/6.

+1

 

 

1

2

3

4

Эффективная оценка погрешности метода Рунге-Кутта затруднена. Поэтому для проверки правильности выбора шага h используют двойной пересчет значений в каждой точке; один раз с шагом h, другой – с шагом h/2.

Если условие

| − /2|

(11)

15

 

 

 

 

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

формуле (11): , /2 значения функции, рассчитанные с шагом h и h/2 соот-

ветственно.

Блок - схема алгоритма метода Рунге–Кутта приведена на рис.14.

2. Задание

Найти решение дифференциального уравнения в интервале [ 0, ] с точностью = 10−3.

3.Порядок выполнения лабораторной работы

1.Изучить свой вариант задания (см. с. 30).

29

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

 

 

 

 

 

4

у' = х2у2 – 1

1

0

1

 

 

 

 

 

5

у' = у2х2

1

0

0,5

 

 

 

 

 

6

у' = (1 – х2)/у + 1

1

0

1

 

 

 

 

 

7

у' = 1 + х + у

1

1

2

 

 

 

 

 

8

у' = 1+ ху/3

1

0

1

 

 

 

 

 

9

у' = х + у + 1

1

0,5

1,5

 

 

 

 

 

10

у' = 1/5ху

1

0,5

1,5

 

 

 

 

 

11

у' = х2 + 1/24у2

0

0,3

1,3

 

 

 

 

 

12

у' = 1 + ху2

0

0

0,5

 

 

 

 

 

13

у' = х2 –1/5у2

0

0

0,5

 

 

 

 

 

14

у'= –0.5у2 + 0,1/(х + у)2

2

1

2

 

 

 

 

 

15

у' = 1 + ху

1

0

1

 

 

 

 

 

 

30

 

 

 

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