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

1692

.pdf
Скачиваний:
6
Добавлен:
07.01.2021
Размер:
1.57 Mб
Скачать

Федеральное агентство по образованию ГОУ ВПО «Сибирская государственная автомобильно-дорожная

академия (СибАДИ)»

М.Я. Епифанцева

ПРАКТИКУМ ПО КУРСУ

«ВЫЧИСЛИТЕЛЬНАЯ МАТЕМАТИКА»

для студентов факультета ИСУ

Омск

СибАДИ

2009

1

УДК 519.6 ББК 22.19 Е 67

Рецензенты: д-р техн. наук, проф. Ю.А. Бурьян (ОМГТУ), канд. пед .наук, доц. Е.В. Морарь (ОмГИС)

Работа одобрена редакционно-издательским советом академии в качестве учебного пособия для студентов факультета ИСУ.

Епифанцева М.Я.

Е 67 Практикум по курсу «Вычислительная математика» для студентов факультета ИСУ. – Омск: СибАДИ, 2009. – 80 с.

Рассматриваются наиболее распространенные методы численного анализа: метод простой итерации и метод Зайделя для решения систем линейных алгебраических уравнений, численные методы нахождения корней трансцендентных уравнений, формула Лагранжа, широко применяемый на практике метод наименьших квадратов. В каждой лабораторной работе выводятся рабочие формулы, используемые для последующей их реализации на компьютере. Рассмотренные алгоритмы иллюстрируются примерами. В каждой лабораторной работе приведено около 80 вариантов индивидуальных заданий и контрольные примеры.

Практикум адресован студентам факультета ИСУ для изучения курса «Вычислительная математика», но может быть использован студентами других специальностей.

Табл. 4. Ил.16. Библиогр.: 11 назв.

© ГОУ «СибАДИ», 2009

2

Лабораторная работа №1

ИТЕРАЦИОННЫЕ МЕТОДЫ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ

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

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

1.Изучить теоретический материал.

2.Решить заданный вариант контрольного задания (см. п. 6).

3.Составить отчет.

4.Ответить на контрольные вопросы.

5.Защитить лабораторную работу.

1.Постановка задачи

Пусть дана система n линейных уравнений с n неизвестными:

a11x1 a12x2

... a1nxn

b1,

 

 

 

x

a

 

x

 

... a

 

x

 

b ,

 

a

 

 

 

2n

n

(1)

 

21

1

 

22

 

2

 

 

2

. . . . . . . . . . .

 

a

n1

x

a

n2

x

2

... a

nn

x

n

b .

 

 

1

 

 

 

 

n

 

Обозначим через А матрицу из коэффициентов системы (1):

 

a

a

...

a

 

 

 

11

12

 

1n

 

 

A

a21

a22

...

a2n

,

 

 

.

. .

 

 

. . . .

 

 

 

 

an2

...

 

 

 

 

an1

ann

 

столбец свободных членов системы (1) через вектор b:

b1

b .b.2. .bn

Решение системы уравнений (искомый вектор) обозначим через столбец неизвестных x:

3

x1

x2

x... .xn

Если матрица А неособенная, то система (1) имеет единственное решение (см. приложение 1).

Совокупность чисел x1, x2, ..., xn (т.е. вектор x), обращающих систему (1) в тождество, называется решением этой системы, а сами числа xi – ее корнями.

В реальных условиях вычисления на ЭВМ практически всегда сопровождаются погрешностями. Они обусловлены погрешностями исходных данных, погрешностями округления, погрешностями перевода чисел из десятичной системы счисления в двоичную при записи информации в память ЭВМ и погрешностями, связанными с ограниченностью разрядной сетки.

Способы решения систем линейных уравнений разделяются на две группы: точные и итерационные методы.

2. Классификация методов решения систем линейных алгебраических уравнений

2.1. Точные методы (прямые методы)

Эти методы представляют собой конечные алгоритмы для вычисления корней системы. Они дают решение после выполнения заранее известного числа операций, например, правило Крамера, метод Гаусса, метод квадратных корней и др. [1]. Эти методы сравнительно просты и наиболее универсальны, т.е. пригодны для решения широкого класса линейных систем.

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

2.2. Итерационные методы

Они позволяют получать корни системы с заданной точностью путем сходящихся процессов, например, метод простой итерации, ме-

тод Зейделя, метод релаксации и др.

4

В этих методах необходимо задать некоторое приближенное решение – начальное приближение. После этого с помощью алгоритма проводится один цикл вычислений, называемый итерацией. В результате итерации находят новое приближение. Итерации проводятся до получения решения с требуемой точностью. Алгоритмы решения линейных систем с использованием итерационных методов обычно более сложные по сравнению с прямыми методами. Объем вычислений заранее определить точно не удается.

Эффективное применение итерационных методов существенно зависит от удачного выбора начального приближения и быстроты сходимости процесса.

Итерационные методы применяют для решения систем большой размерности (при n>200), когда использование прямых методов невозможно из-за ограничений оперативной памяти ЭВМ. Большие системы уравнений, возникающие в приложениях, как правило, являются разряженными, поэтому использование точных методов является не эффективным, так как независимо от того равен нулю элемент или нет, его необходимо хранить в памяти. В итерационных же методах матрица остается разряженной.

Эти методы применяются и для уточнения корней, полученных точными методами.

3. Метод простой итерации (метод Якоби)

Метод простой итерации [2], [5] рассмотрим на примере системы трех линейных алгебраических уравнений:

a11x1 a12x2 a13x3 b1,

 

 

 

 

 

 

 

a23x3

b2,

(2)

a21x1 a22x2

a x a

32

x

2

a

33

x b ,

 

 

31

1

 

 

3

3

 

которую коротко можно записать в виде матричного уравнения:

Ах=b.

В исходной системе выделим диагональные коэффициенты аii 0 (где i =1, 2, 3).Предположим, что диагональные коэффициенты удовлетворяют условиям:

 

 

a12

 

 

 

a13

 

 

1,

 

 

a21

 

 

 

a23

 

 

1,

 

 

a31

 

 

 

a32

 

 

1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a11

 

 

 

 

 

 

a22

 

 

 

 

 

 

a33

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

Если хотя бы одно из этих условий не выполняется, то следует провести элементарные преобразования матрицы (см. п.4).

Разрешим первое уравнение системы (2) относительно х1, второе – относительно х2, третье – относительно х3.

x1 (a12 /( a11))x2 (a13 /( a11))x3 b1 /( a11),

x2 (a21 /( a22))x1 (a23 /( a22))x3 b2 /( a22),x3 (a31 /( a33))x1 (a32 /( a33))x2 b3 /( a33).

В результате получим эквивалентную систему:

x1 12x2 13x3 1,

 

 

 

 

22x2

23x3

2,

(3)

x1

x

 

32

x

2

 

33

x

3

 

3

 

 

 

1

 

 

 

 

 

 

 

где i bi /aii, ij aij /aii приi j (i, j=1,2,…,n).

Систему (3) можем записать в матричной форме:x x . Систему (3) будем решать методом простой итерации. В качестве

нулевого приближения x(0) примем элементы столбца свободных членов:

x(0)= , т.е. x1(0)= 1, x2(0)= 2, x3(0)= 3.

Далее, находим первое приближение х(1), подставляя найденные значения нулевого приближения в систему (3):

x (1)

 

12

x

(0)

 

13

x

(0)

 

 

 

1

 

 

 

2

 

3

1,

 

(1)

 

 

 

 

(0)

 

 

 

(0)

2,

x2

21x1

23x3

x (1)

 

 

 

x (0)

 

 

x (0)

,

 

3

 

 

31

 

1

 

32

 

2

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Подставляя значения приближения х(1) в правую часть системы (3), получим:

x (2)

 

12

x

(1)

 

13

x

(1)

 

 

 

 

1

 

 

 

2

 

3

1,

 

 

(2)

 

 

 

 

(1)

 

 

 

(1)

2,

– второе приближе-

x2

21x1

23x3

x (2)

 

 

 

x (1)

 

 

x (1)

,

 

 

3

 

 

31

 

1

 

33

 

2

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ние.

Продолжая этот процесс далее, получим последовательность х(0), x(1), x(2),…, x(k),... приближений, вычисляемых по рабочим формулам:

6

x (k 1)

 

12

x

(k)

 

x

(k)

 

 

 

1

 

 

2

 

13

3

1,

 

(k 1)

 

 

 

(k)

 

 

 

(k)

2,

x2

21x1

23x3

x (k 1)

x (k) x (k) .

 

3

 

31

1

 

32

 

2

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В общем виде рабочие формулы для системы n-уравнений:

x

(k 1)

 

 

 

x

(k)

 

 

x

(k)

...

 

 

 

x

 

(k)

 

 

 

 

 

1

 

12

 

2

 

13

 

3

 

1n

 

 

n

 

 

1,

 

 

 

x

(k 1)

 

 

x (k)

 

 

 

x

(k)

...

 

 

 

x

(k)

 

 

,

 

(4)

 

2

 

 

21

1

 

23

3

 

 

2n

 

 

n

 

 

 

2

 

 

. . . . . . . . . . . . . . . . . .

 

 

 

x

(k 1)

 

 

x (k)

 

n2

x

(k)

...

n,n

1

x

 

(k)

 

n

.

 

n

 

 

n1 1

 

 

2

 

 

 

 

n 1

 

 

 

Если последовательность приближений имеет предел:

x lim x(k), k

то этот предел является решением системы. Таким образом, с увеличением числа итераций растет точность получаемых корней. Однако можно не производить огромное количество итераций, а задать определенную точность решения, при достижении которой итерационный процесс завершается. Условие окончания итерационного процесса можно записать в виде:

xi(k 1)

xi(k)

, где i= 1,2,3,…, n.

Пример № 1. Методом простой итерации решить систему с точностью = =10-3.

20,9x1 1,2x2

2,1x3

0,9x4

21,70,

 

 

21,2x2

1,5x3

2,5x4

 

27,46,

1,2x1

 

2,1x

1,5x

2

19,8x

1,3x

4

28,76,

 

1

 

 

3

 

 

 

0,9x1 2,5x2 1,3x3 32,1x4 49,72.

Решение.

1. Приведем систему к виду (3) . Для этого необходимо все диагональные элементы системы оставить в левой части уравнения, а остальные элементы перенести с противоположным знаком в правую часть. Разделим каждое из уравнений системы на соответствующий коэффициент, стоящий в левой части уравнения:

7

x1 1/20,9(21,70 1,2x2 2,1x3 0,9x4),

x2 1/21,2(27,46 1,2x1 1,5x3 2,5x4),

x3 1/19,8(28,76 2,1x1 1,5x2 1,3x4),

x4 1/32,1(49,72 0,9x1 2,5x2 1,3x3).

2. В качестве начального вектора x(0) возьмем элементы столбца свободных членов, округлив их значения до двух знаков после запятой:

 

 

 

1,04

 

 

 

 

 

 

x

(0)

 

1,30

 

 

.

 

 

 

1,45

 

 

 

 

 

 

 

 

 

1,55

 

3. Вычисления будем вести до тех пор, пока не будет выполнено условие

xi(k 1) xi(k)

,

где = 10-3, i = 1,2,3,4.

Последовательно вычисляем: при k = 1:

x (1)

1/20,9(21,70 1,2 1,30 2,1 1,45 0,9 1,55) 0,75,

1

(1)

 

x2

1/21,2(27,46 1,2 1,04 1,5 1,45 2,5 1,55) 0,95,

 

(1)

1/19,8(28,76 2,1 1,04 1,5 1,30 1,3 1,55) 1,14,

x

3

 

 

 

(1)

1/32,1(49,72 0,9 1,04 2,5 1,30 1,3 1,45) 1,36.

x4

Сравнивая полученные xi(1) с xi(0) , видим, что условия сходимости невыполняются. При k = 2:

x1(2) 16,942/20,9 0,8106,

x2(2) 21,450/21,2 1,0118,

x3(2) 23,992/19,8 1,2117,

x4(2) 45,188/32,1 1,4077.

Сравнивая полученные xi(2) с xi(1), видим, что условия сходимости не выполняются. При k = 3

8

x1(3) 16,67434/20,9 0,7978,

x2(3) 21,15048/21,2 0,9977,

x3(3) 23,71003/19,8 1,1975,

x4(3) 44,88575/32,1 1,3983.

Сравнивая полученные xi(3) с xi(2) видим, что условия сходимости не выполняются. При k = 4:

x1(4) 16,7295/20,9 0,8004,

x2(4) 21,2106/21,2 1,0005,

x3(4) 23,7703/19,8 1,2005,

x4(4) 44,9510/32,1 1,4003.

Для сравнения xi(4) с xi(3), найдем модули разностей значений

xi(4) xi(3) :

 

 

x

(4)

x

(3)

 

 

0,0026,

 

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

(4)

 

(3)

 

0,0028,

 

 

 

 

 

x2

x2

 

 

 

x

(4)

x

(3)

 

 

0,0030,

 

 

 

 

 

 

3

3

 

 

 

 

 

(4)

 

(3)

 

 

 

 

x

x

 

0,0020,

 

 

 

4

 

4

 

 

 

Так как все найденные значения модулей больше заданного числа= 10-3, продолжаем итерации. Получаем при k = 5:

x1(5) 16,71808/20,9 0,7999,

x2(5) 21,19802/21,2 0,9999,

x3(5) 23,75802/19,8 1,1999,

x4(5) 44,93774/32,1 1,3999.

9

Находим модули разностей значений

x (5)

x

(4)

:

 

 

 

 

 

 

 

 

 

 

i

i

 

 

 

x

(5)

x

(4)

 

 

 

0,0005,

 

 

 

 

 

 

 

 

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5)

 

(4)

 

0,0006,

 

 

 

 

 

 

 

 

 

x2

x2

 

 

 

 

 

x

(5)

x

(4)

 

 

0,0006,

 

 

 

 

 

 

 

 

 

 

3

3

 

 

 

 

 

 

 

 

 

 

(5)

 

(4)

 

 

 

 

 

 

 

 

x

x

 

0,0004,

 

 

 

 

 

4

 

4

 

 

 

 

 

 

 

 

Они меньше заданного числа , поэтому в качестве решения возь-

мем: x1 = 0,7999, x2 = 0,9999, x3 = 1,1999, x4 = 1,3999.

4. Условия сходимости и элементарные преобразования матрицы

Теорема. Если для приведенной системы (3) выполнено, по меньшей мере, одно из условий:

n

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

ij

1,

j 1,n или

 

 

ij

1,

i 1,n,

i 1

 

 

 

 

 

j 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Следствие. Для системы

n

 

 

x

 

b , (i = 1, 2, ..., n),

 

ij

j

j 1

 

 

i

метод итерации сходится, если выполнены неравенства:

a

 

 

 

a

 

, (i = 1, 2, ..., n),

ij

 

i j

 

 

ij

 

 

 

 

т.е. если модули диагональных коэффициентов для каждого уравнения системы больше суммы модулей всех остальных коэффициентов (не считая свободных членов).

Элементарными преобразованиями матрицы называются следую-

щие ее преобразования:

транспонирование, т.е. замена каждой строки столбцом с тем же номером;

перестановка двух строк или двух столбцов;

умножение всех элементов строки или столбца на любое число c, отличное от нуля;

–прибавление ко всем элементам строки или столбца соответствующих элементов параллельного ряда, умноженных на одно и то же число.

10

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