Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЧМ / Вычислительные методы и компьютерная алгебра.pdf
Скачиваний:
77
Добавлен:
05.06.2015
Размер:
665.99 Кб
Скачать

Таблица 1.2 Функции двух переменных для индивидуальных заданий

№ ва-

 

 

№ ва-

 

ри-

Функции

ри-

Функции

анта

 

 

анта

 

 

 

 

 

 

 

 

1

 

2

 

3

 

4

 

 

 

 

 

 

 

z1 = sin(x +1) y 1,2

z1 = sin y + 2x 2

 

 

z2 = 2x + cos y 2

 

 

z2 = y +cos(x 1) 0,7

 

 

 

 

 

 

 

z1 = cos(x 1) + y 0,5

z1 = cos y + x 1,5

 

 

z2 = x cos y 3

 

 

z2 = 2 y sin( x 0,5) 1

 

 

 

 

 

 

 

z1 = sin x + 2 y 2

z1 = sin( y + 0,5) x 1

 

 

z2 = cos( y 1) + x 0,7

 

 

z2 = y +cos(x 2)

 

 

 

 

 

 

 

z1 = cos x + y 1,5

z1 = cos( y +0,5) + x 0,8

 

 

z2 = 2x sin( y 0,5) 1

 

 

z2 = −2 y +sin x 1,6

 

 

 

 

 

 

 

z1 = sin( x + 0,5) y 1

z1 = sin( y 1) + x 1,3

 

 

z2 = x + cos( y 2)

 

 

z2 = y sin(x +1) 0,8

 

 

 

 

 

 

 

z1 = cos(x + 0,5) + y 0,8

z1 = 2x cos( y +1)

 

 

z2 = −2x +sin y 1,6

 

 

z2 = y +sinx +0,4

 

 

 

 

 

 

 

z1 = sin(x 1) + y 1,3

z1 = cos( y + 0,5) x 2

 

 

z2 = x sin( y +1) 0,8

 

 

z2 = sin x 2 y 1

 

 

 

 

 

 

 

z1 = −cos(x +1) + 2 y

z1 = sin( y + 2) x 1,5

 

 

z2 = x +sin y + 0,4

 

 

z2 = y + cos(x 2) 0,5

 

 

 

 

 

 

 

z1 = cos(x +0,5) y 2

z1 = sin( x +1) y 1

 

 

z2 = −2x +sin y 1

 

 

z2 = 2x + cos y 2

 

 

 

 

 

 

 

 

 

 

 

 

 

Окончание табл. 1.2

1

 

2

 

3

 

4

 

 

 

 

 

 

 

10а

z1 = sin(x + 2) y 1,5

 

z2 = x + cos( y 2) 0,5

 

 

11а

z1 = sin( y +1) x 1,2

 

z2 = 2 y + cos x 2

 

 

12а

z1 = cos( y 1) + x 0,5

 

z2 = y cos x 3

 

 

13а

z1 = cos( y 1) + x 0,5

 

z2 = ln y cos x 3

 

 

14а

z1 = cos 2x + y 0,8

 

z2 = −2x +sin y 1,6

 

 

15а

z1 = x sin x + 2 y 1,6

 

z2 = x + cos( y 1) 1

 

 

10б

z1 = cos(x 1) + y 0,8

 

z2 = x cos y 2

 

 

11б

z1 = sin x + 2 y 1,6

 

z2 = x + cos( y 1) 1

 

 

12б

z1 = cos x + y 1,2

 

z2 = 2x sin( y 0,5) 2

 

 

13б

z1 = sin(x + 2) y 1,5

 

z2 = e0,1x + cos( y 2) 0,5

 

 

14б

z1 = x cos 2x + y 0,8

 

z2 = −2x + y sin y 1,6

 

 

15б

z1 = sin( y +1) y x 1

 

z2 = 2 y + cos x 2

 

 

ЛАБОРАТОРНАЯ РАБОТА № 2. Решение систем линейных алгебраических уравнений

2.1.Цель работы

2.1.1.Изучение методов решения систем линейных алгебраических уравнений (СЛАУ).

2.1.2.Приобретение навыков программирования методов Гаусса и Гаусса– Зейделя.

2.1.3.Приобретение навыков использования стандартных средств системы Matlab для решения СЛАУ.

2.2.Теоретические положения

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

Системой линейных алгебраических уравнений (СЛАУ) называется следующая система равенств

 

a x

 

+ a x

2

+ a x

3

 

 

+ a

 

 

 

x

n

 

= b ,

 

 

 

 

11 1

 

12

 

 

13

 

 

 

 

 

1n

 

 

1

 

 

 

 

a

x

 

+ a

22

x

2

+ a

23

x

3

+ a

2n

x

n

= b

2

,

(2.1)

 

 

 

21

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Κ Κ

 

Κ Κ

 

 

 

Κ

 

Κ

 

 

 

 

 

 

 

 

 

 

 

a

 

x

 

+ a

n2

x

2

+Κ + a

n n

x

n

 

= b

n

,

 

 

 

 

 

 

 

 

 

 

n1 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

которая при некоторых значениях переменных x2 , x2 ,..., xn

превращается в сис-

тему тождеств. Решить данную систему – это значит по известным коэффици-

ентам системы ai, j , i, j =1,n , и правым частям bi , i =1, n найти значения пе-

ременных x2 , x2 ,..., xn , при которых эти равенства превращаются в тождества.

Часто систему (2.1) записывают в векторно-матричной форме. Для этого вводят в рассмотрение квадратную ( n ×n )-матрицу коэффициентов системы

A = (ai, j ), i, j =

 

, и векторы-столбцы неизвестных X = (x j ) ,

j =

 

, и правой

1,n

1,n

части системы B = (bi ) ,

i =

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

a

Λ a

 

 

 

 

 

x

 

 

 

 

b

 

 

 

1,1

1,2

 

1,n

 

 

 

 

 

 

1

 

 

 

 

 

1

 

A =

a2,1

a2,2

Λ

a2,n

 

,

X = (x

j

) =

x2

 

,

B = (b ) =

b2

.

 

 

Μ

Μ Μ

 

Μ

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

Μ

 

 

 

 

Μ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

an,2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

an,1

Λ an,n

 

 

 

 

xn

 

 

 

 

bn

 

Тогда система уравнений (2.1) записывается в виде

AX = B . (2.2)

Эта запись совпадает по форме с линейным уравнением ax = b , решением ко-

торого является x = ab = a1b . Аналогичную простую формулу можно записать

и для решения векторно-матричного уравнения (2.2). Если определитель det(A) =| A |0, то система имеет единственное решение

X = A1B ,

(2.3)

где A1 – матрица, обратная матрице A. Известно также правило Крамера для решения СЛАУ (2.1), в соответствии с которым неизвестные определяются по формуле

x

=

i

, i =

 

,

(2.4)

1, n

 

i

 

 

где = det(A) – определитель матрицы A, а i

– определитель матрицы A, в

которую вместо коэффициентов ai, j при x j подставлены свободные члены bi .

Однако решение СЛАУ с помощью обратной матрицы (2.3) или с помощью правила Крамера (2.4) является достаточно трудоемким. Известны более рациональные численные методы решения СЛАУ, рассмотренные ниже. Вообще все методы решения СЛАУ можно разделить на конечные и итерационные. Конечные методы позволяют получить решение с определенной точностью за известное заранее конечное число операций. В итерационных методах число операций заранее не определено. Оно зависит от точности, с которой необходимо

xn1

получить решение. К конечным методам решения СЛАУ относится метод исключения Гаусса, а к итерационным – метод Гаусса–Зейделя.

2.2.2. Метод Гаусса для решения СЛАУ

Метод Гаусса в решении СЛАУ (2.1) состоит из двух этапов: исключение переменных (прямой ход) и нахождение решения (обратный ход).

Прямой ход состоит из n 1 шагов. На первом шаге исключается неизвестная x1 из всех уравнений, начиная со второго. На втором шаге исключается x2

из всех уравнений, начиная с третьего. На k -м шаге исключается xk из всех уравнений, начиная с k +1 уравнения. На последнем ( n 1)-м шаге исключается из последнего уравнения. В результате выполнения прямого хода мы по-

лучаем систему уравнений с так называемой верхней треугольной матрицей коэффициентов.

Обратный ход позволяет последовательно получить неизвестные системы уравнений. Сначала определяют xn из последнего n -го уравнения. Затем это значение подставляют в ( n 1)-е уравнение и определяют xn1, и т.д. до опре-

деления x1 из первого уравнения.

Опишем более подробно шаги прямого хода. На первом шаге i -е уравнение, начиная с i = 2 , преобразуется следующим образом. Вводится коэффициент

m

 

ai1

 

 

 

=

, i = 2, n ,

 

i

 

a11

 

 

 

 

 

 

 

 

и из i -го уравнения вычитается 1-е уравнение, умноженное на этот коэффициент. Результирующее уравнение записывается на место i -го. В результате из i - го уравнения исключается переменная x1 . После этого шага система уравнений примет следующий вид:

a1,1x1 + a1,2 x2 + a1,3x3 +Κ + a1,n xn = b1 , a2(1,2) x2 + a2(1,3) x3 +Κ + a2(1,n) xn = b2(1) , a3(1,2) x2 + a3(1,3) x3 +Κ + a3(1,n) xn = b3(1) ,

Κ Κ Κ Κ Κ Κ Κ Κ Κ Κ Κ Κ Κ

an(1,2) x2 + an(1,3) x3 +Κ + an(1,)n xn = bn(1) ,

где ai(,1j) , bi(1) – коэффициенты, полученные на первом шаге прямого хода. Они определяются следующими выражениями:

ai(,1j) =ai, j mia1, j ,

bi(1) = bi mi b1 .

На втором шаге i -е уравнение, начиная с i = 3, преобразуется следующим образом. Вводится коэффициент

a(1)

mi(1) = ai(,12) , i = 3, n , 2,2

и из i -го уравнения вычитается 2-е уравнение, умноженное на этот коэффициент. Результирующее уравнение записывается на место i -го. В результате из i - го уравнения исключается переменная x2 . После второго шага система уравне-

ний примет следующий вид:

a1,1x1 + a1,2 x2 + a1,3x3 +Κ + a1,n xn = b1 , a2(1,2) x2 + a2(1,3) x3 +Κ + a2(1,n) xn = b2(1) ,

a3(,23) x3 +Κ + a3(,2n) xn = b3(2) ,

Κ Κ Κ Κ Κ Κ Κ Κ Κ Κ

an(2,3) x3 +Κ + a2(2,n) xn = bn(2) ,

где ai(,2j) ,bi(2) – коэффициенты, полученные на втором шаге прямого хода. Они определяются выражениями

ai(,2j) =ai(,1j) mi(1)a2(1,)j ,

bi(2) = bi(1) mi(1) b2(1) .

Вообще, на k -м шаге i -е уравнение, начиная с i = k +1, преобразуется следующим образом. Вводится коэффициент

a(k 1)

mi(k 1) = i,k, i = k +1,n , (2.5)

ak(k,k 1)

и из i -го уравнения вычитается k -е уравнение, умноженное на этот коэффициент. Результирующее уравнение записывается на место i -го. В результате из i - го уравнения исключается переменная xk . Коэффициенты системы уравнений на k -м шаге пересчитываются по формулам:

ai(,kj)

=ai(,kj1)

mi(k 1) ak(k, j1) ;

 

(2.6)

b(k ) = b(k 1)

m(k 1)

b(k 1)

,

(2.7)

i

i

i

k

 

 

i = k +1, n, j = k, n, k =1, n 1.

При k = n 1 происходит исключение xn 1 из последнего уравнения и оконча-

тельная верхняя треугольная система записывается следующим образом:

a1,1x1 + a1,2 x2 + a1,3x3 +Κ + a1,n xn = b1 , a2(1,2) x2 + a2(1,3) x3 +Κ + a2(1,n) xn = b2(1) ,

a3(,23) x3 +Κ + a3(,2n) xn = b3(2) ,

Κ Κ Κ Κ Κ Κ

an(n,n1) xn = bn(n1) ,

Теперь выполняется обратный ход. Видно, что из последнего уравнения можно сразу определить xn ,

b(n1) xn = n .

an(n,n 1)

Подставляя это значение в предпоследнее уравнение, находим xn 1 :

(n1) . n,n

 

 

 

 

b(n 2)

a(n2) x

n

 

 

 

xn1

=

n1

 

n1,n

.

 

 

 

(n 2)

 

 

 

 

 

an1,n1

 

 

Для нахождения любой переменной x j применяется формула

x j =

b(j j 1)

a(j,jn1) xn ... a(j,jj+1)1x j +1

, j = n 1,n 2,...,1.

 

a(j,jj1)

 

 

 

 

 

 

 

 

 

 

 

Замечание. В процессе решения СЛАУ легко может быть получен определитель системы det (A) . Он равен произведению диагональных элементов мат-

рицы верхней треугольной системы:

det ( A) = a1,1a2(1,2) a3(,23) Κ a

Метод исключения Гаусса требует приблизительно n 2 ячеек памяти и вы-

полнения приблизительно 23 n3 арифметических операций.

Метод Гаусса реализуется по схеме, приведенной на рис. 2.1, в случае, когда блок № 5 “Выбор главного элемента” пропускается.

2.2.3. Метод Гаусса с выбором главного элемента

Основные вычисления в методе исключений Гаусса выполняются по формулам (2.6), (2.7). Эти формулы позволяют проследить накопление погрешностей в процессе вычислений.

Обозначим δi, j относительную погрешность, содержащуюся в коэффициен-

те ai(,kj1) , α, β,γ – относительные погрешности округления соответственно при делении, умножении и вычитании. Тогда для относительной погрешности δi(,kj)

вычисления коэффициента ai(,kj) можно получить следующее выражение:

 

m(k 1)a(k 1)

 

a(k 1)

 

(k )

 

δi(,kj) = (δi,k δk,k +α +δk, j + β)

i

k, j

+δi, j

i, j

+γ =

i, j

,

 

ai(,kj)

ai(,kj)

ai(,kj)

 

 

 

 

 

откуда получаем формулу для оценки абсолютной погрешности (i,kj) :

| (i,kj) |(|δi,k | + |δk,k | + |α | + |δk, j | + | β |) | mi(k1) | | ak(k, j1) | +

+ | δi, j | | ai(,kj1) | + | γ | | ai(,kj) |.

Если предположить, что погрешности δi, j , α, β,γ не превышают некоторой ве-

личины С, то получим следующую формулу для оценки погрешности:

| (i,kj) |(5 | mi(k 1) | | ak(k, j1) | + | ai(,kj1) | + | ai(,kj) |)C .

Из последнего выражения видно, что погрешность вычисления коэффициента ai(,kj) в основном определяется первым слагаемым в скобках этого выражения и уменьшается с уменьшением | mi(k 1) |. Чтобы | mi(k 1) | было по возможности меньшим, необходимо, чтобы | ak(k,k1) | было по возможности большим. Поэтому перед выполнением шага исключения каждой переменной желательно переставить уравнения системы так, чтобы

| ak(k,k1) || ai(,kk1) |,

потому что тогда

| mi(k 1) |1.

Если в методе Гаусса выполняется такая перестановка, то метод называется методом Гаусса с выбором главного элемента. Этот метод имеет меньшую погрешность при определении решения СЛАУ. Метод Гаусса с выбором главного элемента реализуется с помощью схемы, приведенной на рис. 2.1. Схема блока № 5 “Выбор главного элемента” приведена на рис. 2.2.

1

 

 

 

 

НАЧАЛО

 

 

 

2

 

 

A

 

 

A, n

 

 

 

и вектор b

 

 

 

3

 

 

 

 

 

 

k=1: n-1

11

 

b n

 

 

 

x n

=

4

 

 

 

a nn

 

i=k+1: n

 

 

 

5

 

12

 

 

 

i=n-1:-1:1

Выбор главного

 

 

 

элемента

 

 

 

 

 

 

13

 

 

6

a ik

S

= 0

m

=

 

 

 

a kk

14

 

 

7

 

 

j=i+1:n

a ik

= 0

 

 

 

 

 

 

15

 

 

8

 

 

S =S +aijxj

 

j=k+1: n

 

 

 

9

 

 

16

 

 

aij = aij makj

xi =(bi S)/ aii

10

 

17

 

bi

= bi mbk

КОНЕЦ

 

 

 

 

 

A

 

 

 

 

 

 

Рис. 2.1

 

 

1

 

 

 

 

l = k

 

6

 

 

 

a max =| alk |

 

j=k:n

 

2

 

7

ν

= k + 1 : n

 

p = akj

 

 

 

 

3

нет

8

| aνk |>amax

 

 

 

 

да

 

akj = alj

4

 

 

 

 

 

 

l =ν

 

9

 

 

 

a max =| aνk |

 

alj = p

 

 

 

 

5

нет

10

 

l = k

 

 

p = bk

 

 

 

 

да

 

 

 

 

 

11

bk =bl

12

bl = p

Рис. 2.2

2.2.4. Метод Гаусса–Зейделя

Метод Гаусса–Зейделя – это итерационный метод решения задачи, или метод последовательных приближений. Дадим описание этого метода. Пусть решается система уравнений (2.1). Выразим из 1-го уравнения x1 , из 2-го уравне-

ния – x2 и т.д. В результате получим

 

 

 

 

 

 

 

 

 

x =

 

1

 

 

(b a x

2

a x

3

−Κ − a

 

x

n

) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

a1,1

1

 

 

1,2

 

 

 

1,3

 

 

 

 

1,n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

2

=

 

 

1

 

(b a

2,1

x a

2,3

x

3

 

−Κ − a

2,n

x

n

) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a2,2

2

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

…………………………………………….

 

 

 

 

 

 

 

 

 

 

 

 

x

n

=

 

 

1

(b a

 

x a

n,2

x

2

−Κ − a

n,n1

x

n1

) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

an,n

n

 

 

n,1 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

или вообще для любого i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

=

1

(b a

 

x a

 

x

 

−Κ − a

 

x

 

 

 

a

 

 

 

x

 

 

 

 

... a

 

 

x

 

 

 

 

) ,

 

i =

 

. (2.8)

i

 

i,2

2

i,i 1

i 1

i,i +1

i +1

 

 

n

 

 

1, n

 

 

 

 

 

 

 

 

 

i

i,1 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i,n

 

 

 

 

 

 

 

 

 

 

 

 

ai,i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Предположим,

что

на

 

 

некоторой

 

 

k

 

итерации

мы

получили решение

x(k ) , x(k ) ,Κ , x

(k ) . Используем известные к моменту расчета

 

 

x

i

значения дру-

1

 

2

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

гих переменных в правой части уравнения (2.8) для расчета значения xi в левой части. В результате мы получим следующую рекуррентную формулу, которая и составляет метод Гаусса–Зейделя:

x(k +1)

=

1

(b a

 

x(k +1)

−Κ − a

 

x(k +1)

a

 

x(k )

−Κ − a

 

x(k ) ), i =

 

.

i,1

i,i 1

i,i +1

i,n

1, n

 

i

 

 

i

1

 

i 1

 

i +1

 

n

 

 

ai,i

 

 

 

 

 

 

 

 

 

 

 

 

 

Расчеты по последней формуле продолжаются при k =1,2,3,... до тех пор, пока не будет выполняться условие

max | x(k +1)

x(k ) |<ε

i

i

i

 

 

или условие

max |

xi(k +1) xi(k )

|<δ ,

(k +1)

i xi

где ε > 0, δ > 0 , причем ε – требуемая абсолютная погрешность нахождения решения СЛАУ, а δ – требуемая относительная погрешность.

Итерационные методы могут сходиться к решению или не сходиться. То же самое относится и к методу Гаусса–Зейделя. Метод Гаусса–Зейделя сходится, если выполняются условия

|ai,i ||ai,1 |+|ai,2 |+Κ +|ai,i 1 |+|ai,i +1 |+Κ +|ai,n |

для всех i =1, n , кроме одного, для которого выполняется менее жесткое усло-

вие

|ai,i |>|ai,1 |+| ai,2 |+Κ +|ai,i 1 |+|ai,i +1 |+Κ +|ai,n | .

Данное условие является достаточным, но не необходимым. Возможны случаи невыполнения данного условия при сходимости метода.

Содержательный смысл приведенных условий сходимости поясним на примере системы двух уравнений с двумя неизвестными

a 1 , 1 x1 +a 1 , 2 x 2 =b1 ,

 

+a 2 , 2 x 2

=b 2 .

a 2 , 1 x1

Достаточные условия сходимости для этой системы имеют вид

|a1,1

||a12

|

и

|a2,2

|>|a11

|,

или

 

 

 

 

 

 

|a1,1

|>|a12

|

и

|a2,2

||a11

|.

Данные условия означают, что диагональные элементы системы уравнений по абсолютной величине превышают недиагональные. Такой же смысл имеют и условия сходимости для системы из n уравнений. В связи с этим часто для обеспечения сходимости метода Гаусса–Зейделя бывает достаточно поменять местами уравнения системы. Схема алгоритма для решения системы линейных уравнений итерационным методом Гаусса–Зейделя представлена на рис. 2.3.

1

НАЧАЛО

2

aij,bi,ε,miter

3

i=1: n

4

 

xi = 0

 

5

 

ITER=

A

1: miter

 

6

 

BIG = 0

 

7

 

 

 

 

 

i=1: n

 

B

 

8

 

 

 

 

SUM = 0

 

Да n

9

 

 

Нет

i=1, n

?

 

 

 

10

Да 1

 

 

 

 

 

 

j=i+1: n

 

 

11

 

 

 

 

SUM=SUM+ aij xj

 

12

j=1: n-1

13

SUM=SUM+ aij xj

14

j=1:i-1

15

SUM=SUM+ aij xj

16

j=i+1:n

17

SUM=SUM+ aij xj

18

1

TEMP = aii (bi SUM)

20

 

| TEMP x |

 

BIG =| TEMP x

 

|

19

Да

i

 

 

i

 

 

 

 

> BIG ?

 

 

 

 

Нет

21

xi = TEMP

B

 

 

 

 

 

 

 

 

23

 

22

BIG < ε ?

Да

niter=ITER

 

 

 

 

A Нет

24

КОНЕЦ

Рис. 2.3

2.2.5. Средства Matlab для решения СЛАУ

Для работы с матрицами в Matlab применяются общепринятые для матричной алгебры символы: + (плюс) или – (минус) для сложения или вычитания матриц, * (звездочка) для умножения матриц. Для возведения матрицы в степень используется символ ^, для транспонирования матрицы – символ '

(кавычка).

 

Например, для получения обратной матрицы можно использовать запись

 

A1 = A^1.

(2.9)

Это дает возможность получить решение СЛАУ с помощью обратной

матрицы в виде (2.3). Для этого достаточно записать команду

 

X = ( A^1) * B .

(2.10)

Кроме того, в Matlab имеется функция INV ( A) для обращения квадратной матрицы A. С помощью этой функции можно найти обратную матрицу, записав вместо (2.9) команду

A1 = INV ( A) ,

или решить СЛАУ, записав вместо (2.10) команду

X = INV ( A) * B .

Однако решение СЛАУ с помощью обратной матрицы связано с большим объемом вычислений. Более рациональным является использование операций матричного деления:

/(наклонная черта или slash) для правого деления,

\(обратная наклонная черта или backslash) для левого деления.

Запись A \ B означает левое деление матрицы B на матрицу A. По смыслу это то же, что и INV ( A) * B , однако расчеты выполняются по-

другому. Запись

X = A \ B

означает решение СЛАУ (2.2) методом исключения Гаусса.

Запись B / A означает правое деление матрицы B на матрицу A. По смыслу это то же, что и B * INV ( A) , однако расчеты выполняются по-

другому. Более точно, B / A = ( A'\B')' (см. левое деление). Запись

X = B / A

дает решение уравнения XA = B методом исключения Гаусса.

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

2.3.1.Написать m-файл-сценарий для решения СЛАУ n-го порядка (2.1) методом Гаусса без выбора главного элемента. Работу программы продемонстрировать на системе уравнений, выбранной из табл. 2.1 в соответствии с номером своей бригады и кодом подгруппы (а или б). Правильность решения подтвердить путем использования средств Matlab.

2.3.2.Написать m-файл-сценарий для решения СЛАУ n-го порядка методом Гаусса с выбором главного элемента. Работу программы продемонстрировать на той же системе уравнений. Правильность решения подтвердить путем использования средств Matlab.

2.3.3.Написать m-файл-сценарий для решения СЛАУ n-го порядка методом Гаусса–Зейделя. Работу программы продемонстрировать на той же системе уравнений. Правильность решения подтвердить путем использования средств

Matlab.