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

CKT_l.r.01_SLAU_1 / Решение СЛАУ

.pdf
Скачиваний:
10
Добавлен:
29.02.2016
Размер:
275.56 Кб
Скачать
то дану систему рівнянь (2.1) можна представити в матричному вигляді:
A × X = B . (2.2).
При дослідженні (розв’язанні) системи лінійних алгебраїчних рівнянь пер-
шочерговим питанням є питання сумісності системи. Якщо система лінійних ал-
гебраїчних рівнянь не має жодного розв'язку, то така система називається несу-
місною. Якщо система має хоча б один розв'язок, то вона є сумісною. В випадку несумісної системи для дослідника може бути корисним, наприклад, визначити вектор Х, що мінімізує значення похибки r = A × X - B . Нагадаємо, що для сумі-
сної системи таким вектором Х є її розв'язок, причому за визначенням розв'язку

6

2. Розв’язання систем лінійних алгебраїчних рівнянь

При дослідженні різноманітних процесів доволі часто виникає необхідність розв'язання систем лінійних алгебраїчних рівнянь. Так, математичними моделями багатьох простих технічних, економічних, наукових, соціальних процесів безпосе-

редньо є системи лінійних алгебраїчних рівнянь. Крім того, часто системи ліній-

них алгебраїчних рівнянь стають проміжним етапом розв'язання багатьох склад-

них задач за допомогою розроблених чисельних методів. Це обумовлено тим, що система лінійних алгебраїчних рівнянь вважається найбільш простим математич-

ним об'єктом з добре розробленою теоретичною базою.

Система m лінійних алгебраїчних рівнянь з n невідомими має вигляд:

a

11

x

1

+ a

12

x

2

+ ... + a

1n

x

n

= b

 

 

 

 

 

 

 

 

 

 

 

1

 

a

21x1 + a 22x2 + ... + a 2n xn

 

= b2

 

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

 

 

 

 

(2.1).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

m1

x

1

+ a

m2

x

2

+ ... + a

mn

x

n

= b

m

 

 

 

 

 

 

 

 

 

 

 

Якщо сформувати:

·матрицю А – з коефіцієнтів при невідомих даної системи;

·вектор B – з вільних членів;

·вектор Х – із шуканих невідомих,

тобто

a

11

a

12

a

13

...

a

1n

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

a21

a22

a23

...

a2n

 

 

B =

b2

 

 

A =

...

...

... ... ...

.

;

 

...

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

am2

am3

...

amn

 

 

 

 

 

 

 

am1

 

 

 

bm

 

 

x

 

 

 

 

 

1

 

X =

x 2

 

 

...

,

 

 

 

 

 

 

 

 

 

 

 

 

x n

 

7

системи маємо значення похибки r = 0 . Критерій сумісності систем розглядається в підрозділі 2.3.

Сумісні системи можуть мати або єдиний розв'язок, або нескінченну кіль-

кість розв'язків. Сумісна система рівнянь, що має єдиний розв'язок, називається визначеною. Невизначена система рівнянь має нескінченну кількість розв'язків.

Можливі наступні три випадки співвідношень між кількістю рівнянь m та кількістю невідомих n : m < n , m = n , m > n .

1). Співвідношення m < n (кількість рівнянь менше за кількість невідомих).

Сумісна система m лінійних алгебраїчних рівнянь з n невідомими ( m < n )

завжди має нескінченну кількість розв'язків, тобто є невизначеною. Підходи до розв'язання невизначених систем розглядається в підрозділі 2.3.

2). Співвідношення m = n (кількість рівнянь дорівнює кількості невідомих).

Сумісна система n лінійних алгебраїчних рівнянь з n невідомими, тобто сис-

тема з квадратною матрицею, може бути як визначеною, так і невизначеною.

Така система є визначеною, тобто має єдиний розв'язок, якщо визначник квадратної матриці A цієї системи не дорівнює нулю: D = A ¹ 0 . Для розв'язан-

ня визначених систем з квадратною матрицею розроблено велику кількість ме-

тодів. Їх класифікація, а також технологія розв'язання таких систем в Mathcad

наведена в підрозділі 2.1.

Сумісна система з квадратною матрицею є невизначеною, тобто має нескінчен-

ну кількість розв'язків, якщо визначник квадратної матриці A цієї системи дорівнює нулю: D = A = 0 . Технологія розв'язання таких систем засобами Mathcad наве-

дена в підрозділі 2.3.

Слід зауважити, що цей критерій визначеності сумісної системи (тобто по-

рівняння визначника D = A з нулем) спрацьовує тільки для систем з квадратни-

ми матрицями. В підрозділі 2.3 наведено інший критерій визначеності сумісної системи, який можна використовувати для систем, що мають довільні прямоку-

тні матриці.

3). Співвідношення m > n (кількість рівнянь більше за кількість невідомих).

Сумісна система m лінійних алгебраїчних рівнянь з n невідомими, тобто сис-

тема з прямокутною матрицею, може бути як визначеною, так і невизначеною.

Технологія розв'язання засобами Mathcad визначених сумісних систем з прямокутною матрицею наведена в підрозділі 2.2, невизначених сумісних систем з прямокутною матрицею – в підрозділі 2.3.

8

2.1. Визначені системи n лінійних алгебраїчних рівнянь з n невідомими

Методи розв'язання визначених систем лінійних алгебраїчних рівнянь з квадратною матрицею можна умовно поділити на дві групи.

Першу групу складають так звані точні або прямі методи, які дозволяють одержати розв'язок системи за скінчене число арифметичних дій. До них відносяться: метод Крамера (отримання розв'язку за допомогою визначників), матричний метод (отримання розв'язку за допомогою оберненої матриці), метод прогонки (використовується для розв'язання важливого класу спеціальних систем з тридіагональною матрицею, які часто виникають у багатьох прикладних задачах), метод Гауса (має декілька модифікацій) тощо.

Другу групу складають наближені методи, які реалізуються за наступною схемою: на 1-му кроці обчислювального процесу задається набір "грубих" значень шуканих невідомих (так зване початкове наближення); на 2-му кроці за допомогою різних підходів одержуються нові "поліпшені" наближені значення невідомих; далі, якщо це необхідно, ці значення шуканих невідомих ще "поліпшують". До наближених методів відносяться ітераційні методи розв'язання систем лінійних алгебраїчних рівнянь: метод послідовних наближень (простої ітерації), метод Зейделя – модифікація метода простої ітерації тощо.

Проте слід підкреслити, що на практиці всі результати розрахунків на ком- п'ютері завжди можна вважати наближеними, навіть якщо використовуються точні методи розв'язання систем рівнянь. Це пов'язано з тим, що будь-яке число запа- м'ятовується в пам'яті комп'ютера з обмеженою кількістю значущих цифр, тобто після кожної операції з числами з'являється так звана похибка округлення. В ході обчислювального процесу похибки округлення, що виникають на кожному кроці, накопичуються. В результаті будемо мати сумарну похибку округлення, величина якої залежить від кількості арифметичних операцій, виконуваних при розв'язанні системи. Таким чином, при достатньо великій кількості арифметичних операцій сумарна похибка округлення може суттєво вплинути на результати розрахунків. Цей фактор обмежує максимальний порядок систем, які можна без утрати точності розв'язувати за допомогою того чи іншого метода. Так, метод Крамера можна використовувати для розв'язанні систем, порядок яких не перевищує десятків, матричний метод – не перевищує сотень, метод Гауса – не перевищує тисяч.

Дуже цінну властивість при розв'язанні систем мають ітераційні методи − їх сумарна похибка округлення в процесі розрахунків не накопичується, що дозволяє з даною точністю розв'язувати системи рівнянь, порядок яких може перевищувати мільйон.

9

При розв'язанні систем лінійних алгебраїчних рівнянь за тим чи іншим методом важливим фактором є також фактор витрат комп'ютерного часу, який також залежать від виконуваної при цьому кількості арифметичних операцій.

Слід зазначити, що навіть потужність сучасних комп'ютерів не знімають проблем витрат часу при розв'язанні систем лінійних алгебраїчних рівнянь високих порядків. Існують так звані "критичні за часом" задачі, що зводяться до розв'язання систем лінійних алгебраїчних рівнянь надвисоких порядків, для реалізації яких фактор витрат часу змушує підбирати навіть на надпотужних комп'ютерах більш економічні за кількістю виконуваних арифметичних операцій методи розв'язання систем.

Системи ж малих порядків можна розв'язувати на сучасних комп'ютерах з використанням будь-якого з вищенаведених методів, хоча можна відмітити, що в комп'ютерних розрахунках вважається найменш економічним метод Крамера.

Слід зазначити, що не зважаючи на умовний характер меж використання наведених методів, пов'язаних з кількістю виконуваних арифметичних операцій, ці межі все ж таки існують.

Перейдемо до розв'язання визначених систем лінійних алгебраїчних рівнянь, у яких кількість рівнянь і невідомих співпадає. Виходячи з (2.1), таку систему у загальному вигляді можна записати так:

a11x1 + a12 x 2 +K+ a1n x n = b1;

 

 

 

;

a 21x1 + a 22 x 2 +K+ a 2n x n = b

2

 

 

(2.3)

L L L L L L L

 

 

a n1x1 + a n 2 x 2 +K+ a nn x n = bn ,

де n – кількість рівнянь або невідомих.

Якщо матрицю, що складається з коефіцієнтів при невідомих, позначити через A; стовпчик, що складається із невідомих x1 , x 2 ,Kx n , – через X; стовп-

чик, що складається із вільних членів b1 , b2 ,Kbn , – через B, тобто

a

11

a

12

Ka

1n

 

 

 

 

 

 

 

a

21 a 22 Ka 2n

 

;

A =

L L L

 

 

 

 

 

 

 

 

K a nn

 

 

a n1 a n2

 

 

x

1

 

 

 

 

 

x

2

 

;

X =

 

 

L

 

 

 

 

 

 

x n

 

 

то систему (2.3) можна записати в матричній формі:

A × X = B .

b

 

 

1

 

 

b2

 

,

B =

 

L

 

 

 

 

 

bn

 

(2.4)

Наведемо коротку теоретичну довідку про вищезгадані методи розв'язання систем лінійних алгебраїчних рівнянь.

Матричний метод. З курсу математики відомо: якщо визначник матриці A

відмінний від нуля (D = A = det(A) ¹ 0) , тобто якщо матриця А є невиродженою,

10

тоді для матриці A існує обернена матриця A−1 , для якої виконується умова: A−1 × A = A × A−1 = E , де E – одинична матриця, у якої елементи головної діагоналі дорівнюють одиниці, а всі інші – нулю.

Якщо помножити ліворуч обидві частини матричного рівняння (2.4) на обернену матрицю A−1 , то отримаємо A−1 × A × X = A−1 × B. Тоді розв'язок системи лінійних алгебраїчних рівнянь (2.4) можна обчислити за формулою

X = A−1 × B

(2.5)

Метод Крамера. Якщо визначник матриці системи лінійних алгебраїчних рівнянь A × X = B відмінний від нуля (D = A = det(A) ¹ 0) , то її розв’язок можна обчислити за формулою Крамера:

x j =

j

, j =

 

(2.6)

1, n

D

 

 

 

 

де j – визначник матриці, побудованої з матриці A заміною її j-го стовпчика стовп-

чиком вільних членів B.

В середовищі Mathcad при розв'язанні визначених систем з квадратною мат-

рицею за допомогою метода Крамера можна використати вбудовану функцію lsolve, в якій цей метод реалізовано, а також можливості вбудованої системи про-

грамування.

Метод Гауса. Якщо визначник системи не дорівнює нулю (|A| ¹0), то її розв’язок можна одержати за методом Гауса, який складається з двох етапів: 1-й етап – Зведення системи до верхнє-трикутного вигляду (прямий хід).

2-й етап – Поступове визначення невідомих, починаючи з останнього (зворотній хід). Прямий хід метода Гауса складається з послідовності елементарних пере-

творень над рядками розширеної матриці системи Ar , після чого вона отримає наступний вигляд:

a

 

a

 

...

a

 

b

 

 

 

1

c

 

...

c

 

d

 

 

 

11

a

12

...

a

1n

b

1

 

 

0

 

12

...

c

1n

d

1

 

a

 

 

 

 

 

 

1

 

 

 

A r =

21

 

22

...

 

2 n

 

2

 

 

...

...

 

2 n

 

2

.

...

...

...

...

 

...

...

...

 

 

 

a n 2

...

a nn

b n

 

 

0

0

...

1

d n

 

a n1

 

 

 

Підставляючи значення останнього невідомого x n в попереднє рівняння,

знаходимо значення xn −1 і, здійснюючи цю операцію аж до x1 , одержуємо всі невідомі x1, x 2 ,...xn . Послідовність цих дій складає зворотній хід метода Гауса.

11

В середовищі Mathcad при розв'язанні визначених систем з квадратною матри-

цею за допомогою метода Гауса можна використати вбудовану функцію rref, в якій

цей метод реалізовано, а також можливості вбудованої системи програмування. Метод простих ітерацій. В процесі реалізації метода система A × X = B

перетворюється до вигляду X = C × X + D , де за умови, що елементи головної

діагоналі матриці A не дорівнюють нулю, тобто aii

¹ 0 , i =

 

 

, елементи мат-

1, n

риці С і вектора D обчислюються за формулами:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,

 

 

i = j;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cij =

 

aij

 

 

di =

 

i

,

( i

= 1, n ;

j = 1, n ).

 

 

 

 

 

 

 

 

-

 

 

 

,

i ¹ j,

aii

 

 

 

 

 

 

 

 

 

 

 

 

 

 

aii

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ітераційний процес будується за формулою:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X(0) = D ,

X(k ) = C × X(k −1) + D , k = 1, 2, 3,... ,

 

де X(0) – початкове наближення (нульова ітерація) точного розв’язку, X(k )

k -та

ітерація точного розв’язку.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ітераційний процес слід продовжувати до тих пір, доки не буде виконана

умова:

 

X(k ) - X(k −1)

 

< e , де ε – точність розрахунку.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Достатньою умовою збіжності метода простих ітерацій є:

 

· відносно коефіцієнтів cij системи X = C × X + D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cij

< 1 "i =

1, n

 

або

cij

< 1

" j =

1, n

;

(2.7)

 

 

 

 

 

j=1

 

 

 

 

 

 

 

 

i =1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

·відносно коефіцієнтів aij системи A × X = B

n

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

a ij

<

a ii

,

i =

1, n

або

a ij

<

a jj

,

j =

1, n

. (2.8)

j=1

 

 

 

 

 

 

 

i=1

 

 

 

 

 

 

 

j¹ i

 

 

 

 

 

 

i¹ j

 

 

 

 

 

 

Слід зауважити, що умови збіжності (2.7), (2.8) не є необхідними, тобто іс-

нують системи, для яких ці умови не виконуються, але все одно ітераційний процес для цих систем збігається.

Якщо під час визначення елементу xi(k ) ітерації X(k ) використовувати вже обчислені значення попередніх елементів x1(k ) , x(2k ) ,... xi(k1) , то процес наближен-

ня до шуканого розв’язку прискориться. Така модифікація метода простих іте-

рацій має назву метода Зейделя. Умови збіжності метода Зейделя ті ж самі, що і для метода простих ітерацій.

Таким чином, розв’язок визначеної системи лінійних алгебраїчних рівнянь

(випадок m = n ) в середовищі Mathcad можна знайти:

12

1)За допомогою матричного методу, що базується на використанні оберненої матриці.

2)З використанням вбудованої функції lsolve, в якій реалізовано метод Крамера.

3)З використанням вбудованої функції rref, в якій реалізовано метод Гауса.

4)За допомогою блокової структури Given – Find, що базується на одному з градієнтних методів. Попереду блокової структури має стояти початкове значення аргументу функції Find.

5)За допомогою вбудованої системи програмування Mathcad.

Нижче наведено приклади розв’язання таких систем за допомогою вище-

згаданих можливостей Mathcad.

Задача 1. Знайти розв’язок системи лінійних алгебраїчних рівнянь

6 x

1 + x

2

+ 2 x 3

=

225

 

1 + 8 x

2 + 2 x 3

= 340

3 x

 

+ 2 x

 

+ 9 x 3

=

430

x 1

2

за допомогою матричного метода.

Розв’язання задачі

Задача 2. Розв’язати систему лінійних алгебраїчних рівнянь

 

20 x 1 − x 2

− x 3 = 165

 

− 2 x 1 + 10 x 2 − 2 x 3 = 150

 

 

− x 1 − x 2

+ 15 x 3 = 195

 

за допомогою вбудованої функції lsolve.

13

Розв’язання задачі

Задача 3. Знайти розв’язок системи лінійних алгебраїчних рівнянь

 

20 x 1 − x 2

− x 3 = 255

 

− 2 x 1 + 15 x 2 − 2 x 3 = 305

 

 

− x 1 − x 2

+ 25 x 3 = 460

 

за допомогою метода Гауса.

Розв’язання задачі

14

Задача 4. Розв’язати систему лінійних алгебраїчних рівнянь

 

7 x

1 − x 2

+ 2 x 3

= 160

 

− 3 x 1 + 10 x 2 − 2 x 3 = 280

 

 

 

− 2 x 2

+ 6 x 3

= 120

x 1

за допомогою блокової структури Given – Find.

Розв’язання задачі

Задача 5. Знайти розв’язок системи лінійних алгебраїчних рівнянь за допомогою метода простих ітерацій з точністю до 0,001.

15 x 1 + x 2 + x 3

= 137

 

+ 5 x 2 + x 3 = 69

x 1

 

+ x 2 + 20 x 3

= 139

x 1

Розв’язання задачі

15

Задача 6. Розв’язати систему лінійних алгебраїчних рівнянь методом Зейделя з точністю до 0,001 за допомогою програми-функції користувача ZEIDEL.

10 x 1 − x 2 − x 3 = 33

 

− x 1

+ 15 x 2 − x 3

= 138

 

 

− x 1

− x 2 + 35 x 3

= 230

 

Розв’язання задачі

Соседние файлы в папке CKT_l.r.01_SLAU_1