
- •Лабораторный практикум
- •ЛАБОРАТОРНАЯ РАБОТА № 1. Работа в системе Matlab
- •Функции одной переменной для индивидуальных заданий
- •Функция
- •Окончание табл. 1.2
- •Таблица 2.1
- •ЛАБОРАТОРНАЯ РАБОТА № 3. Аппроксимация функций
- •ЛАБОРАТОРНАЯ РАБОТА № 4. Численное интегрирование
- •Узлы и коэффициенты квадратурной формулы Гаусса–Лежандра
- •Узлы и коэффициенты квадратурной формулы Гаусса–Лагерра
- •Пусть нужно вычислить интеграл
- •ЛАБОРАТОРНАЯ РАБОТА № 5. Решение нелинейных уравнений
- •Требуется решить уравнение
- •Этот метод состоит в последовательных расчетах по формулам
- •Это метод состоит в последовательных расчетах по формулам
- •Таблица 6.1
- •Окончание табл. 6.1
- •Этот метод состоит в последовательных расчетах по формулам
- •Этот метод состоит в последовательных расчетах по формулам
- •Таблица 7.1
- •Окончание табл. 7.1
- •ЛАБОРАТОРНАЯ РАБОТА № 8. Выполнение символьных операций
- •Окончание табл. 8.1
- •"Автоматизированные системы обработки информации"
Таблица 1.2 Функции двух переменных для индивидуальных заданий
№ ва- |
|
|
№ ва- |
|
||
ри- |
Функции |
ри- |
Функции |
|||
анта |
|
|
анта |
|
||
|
|
|
|
|
|
|
1 |
|
2 |
|
3 |
|
4 |
|
|
|
|
|
|
|
1а |
z1 = sin(x +1) − y −1,2 |
1б |
z1 = sin y + 2x − 2 |
|||
|
|
z2 = 2x + cos y − 2 |
|
|
z2 = y +cos(x −1) −0,7 |
|
|
|
|
|
|
|
|
2а |
z1 = cos(x −1) + y −0,5 |
2б |
z1 = cos y + x −1,5 |
|||
|
|
z2 = x −cos y −3 |
|
|
z2 = 2 y −sin( x −0,5) −1 |
|
|
|
|
|
|
|
|
3а |
z1 = sin x + 2 y − 2 |
3б |
z1 = sin( y + 0,5) − x −1 |
|||
|
|
z2 = cos( y −1) + x −0,7 |
|
|
z2 = y +cos(x −2) |
|
|
|
|
|
|
|
|
4а |
z1 = cos x + y −1,5 |
4б |
z1 = cos( y +0,5) + x −0,8 |
|||
|
|
z2 = 2x −sin( y −0,5) −1 |
|
|
z2 = −2 y +sin x −1,6 |
|
|
|
|
|
|
|
|
5а |
z1 = sin( x + 0,5) − y −1 |
5б |
z1 = sin( y −1) + x −1,3 |
|||
|
|
z2 = x + cos( y −2) |
|
|
z2 = y −sin(x +1) −0,8 |
|
|
|
|
|
|
|
|
6а |
z1 = cos(x + 0,5) + y −0,8 |
6б |
z1 = 2x −cos( y +1) |
|||
|
|
z2 = −2x +sin y −1,6 |
|
|
z2 = y +sinx +0,4 |
|
|
|
|
|
|
|
|
7а |
z1 = sin(x −1) + y −1,3 |
7б |
z1 = cos( y + 0,5) − x − 2 |
|||
|
|
z2 = x −sin( y +1) −0,8 |
|
|
z2 = sin x − 2 y −1 |
|
|
|
|
|
|
|
|
8а |
z1 = −cos(x +1) + 2 y |
8б |
z1 = sin( y + 2) − x −1,5 |
|||
|
|
z2 = x +sin y + 0,4 |
|
|
z2 = y + cos(x − 2) −0,5 |
|
|
|
|
|
|
|
|
9а |
z1 = cos(x +0,5) − y − 2 |
9б |
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 = a−1b . Аналогичную простую формулу можно записать
и для решения векторно-матричного уравнения (2.2). Если определитель det(A) =| A |≠ 0, то система имеет единственное решение
X = A−1B , |
(2.3) |
где A−1 – матрица, обратная матрице 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) является достаточно трудоемким. Известны более рациональные численные методы решения СЛАУ, рассмотренные ниже. Вообще все методы решения СЛАУ можно разделить на конечные и итерационные. Конечные методы позволяют получить решение с определенной точностью за известное заранее конечное число операций. В итерационных методах число операций заранее не определено. Оно зависит от точности, с которой необходимо
получить решение. К конечным методам решения СЛАУ относится метод исключения Гаусса, а к итерационным – метод Гаусса–Зейделя.
2.2.2. Метод Гаусса для решения СЛАУ
Метод Гаусса в решении СЛАУ (2.1) состоит из двух этапов: исключение переменных (прямой ход) и нахождение решения (обратный ход).
Прямой ход состоит из n −1 шагов. На первом шаге исключается неизвестная x1 из всех уравнений, начиная со второго. На втором шаге исключается x2
из всех уравнений, начиная с третьего. На k -м шаге исключается xk из всех уравнений, начиная с k +1 уравнения. На последнем ( n −1)-м шаге исключается из последнего уравнения. В результате выполнения прямого хода мы по-
лучаем систему уравнений с так называемой верхней треугольной матрицей коэффициентов.
Обратный ход позволяет последовательно получить неизвестные системы уравнений. Сначала определяют xn из последнего n -го уравнения. Затем это значение подставляют в ( n −1)-е уравнение и определяют xn−1, и т.д. до опре-
деления 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(,kj−1) |
− mi(k −1) ak(k, j−1) ; |
|
(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,n−1) xn = bn(n−1) ,
Теперь выполняется обратный ход. Видно, что из последнего уравнения можно сразу определить xn ,
b(n−1) xn = n − .
an(n,n 1)
Подставляя это значение в предпоследнее уравнение, находим xn −1 :

|
|
|
|
b(n −2) |
− a(n−2) x |
n |
|
|
|
|
xn−1 |
= |
n−1 |
|
n−1,n |
. |
|
|
|
|
(n −2) |
|
||||
|
|
|
|
an−1,n−1 |
|
|
||
Для нахождения любой переменной x j применяется формула |
||||||||
x j = |
b(j j −1) |
−a(j,jn−1) xn −... −a(j,jj−+1)1x j +1 |
, j = n −1,n −2,...,1. |
|||||
|
a(j,jj−1) |
|
|
|
||||
|
|
|
|
|
|
|
|
Замечание. В процессе решения СЛАУ легко может быть получен определитель системы 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(,kj−1) , α, β,γ – относительные погрешности округления соответственно при делении, умножении и вычитании. Тогда для относительной погрешности δ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(k−1) | | ak(k, j−1) | +
+ | δi, j | | ai(,kj−1) | + | γ | | ai(,kj) |.
Если предположить, что погрешности δi, j , α, β,γ не превышают некоторой ве-
личины С, то получим следующую формулу для оценки погрешности:
| ∆(i,kj) |≤ (5 | mi(k −1) | | ak(k, j−1) | + | ai(,kj−1) | + | ai(,kj) |)C .
Из последнего выражения видно, что погрешность вычисления коэффициента ai(,kj) в основном определяется первым слагаемым в скобках этого выражения и уменьшается с уменьшением | mi(k −1) |. Чтобы | mi(k −1) | было по возможности меньшим, необходимо, чтобы | ak(k,k−1) | было по возможности большим. Поэтому перед выполнением шага исключения каждой переменной желательно переставить уравнения системы так, чтобы
| ak(k,k−1) |≥| ai(,kk−1) |,
потому что тогда
| 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,n−1 |
x |
n−1 |
) , |
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
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.