Вы находитесь на странице: 1из 7

Омский государственный университет путей сообщения (ОмГУПС)

Институт автоматики, телекоммуникаций и информационных технологий


(ИАТИТ)

Кафедра «Автоматика и системы управления»

СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ

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

по дисциплине «Численные методы»

студент группы 28З

Садуова Н. Н.

Руководитель:

доцент кафедры АиСУ

Окишев А. С.

Омск 2019
Лабораторная работа №3
СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ

Выполнение работы:
Задание 1:
Решите системы линейных уравнений методом Гаусса
– 6.3x – 5.9y + 2.3z = –3.6;
4.5x – 8.2y + 9.8z = 14.5;
– 9.1x – 2.7y – 5.2z = 0.71;
х = 3.287
y = –4.321
z = –3.646
Запишем коэффициенты уравнения в матрицы.
A = [-6.3 -5.9 2.3
4.5 -8.2 9.8
-9.1 -2.7 -5.2];
b = [-3.6; 14.5; 0.71];
При решении уравнения корни сходятся

Рисунок 1 – корни СЛАУ


Листинг программы
A = [-6.3 -5.9 2.3
4.5 -8.2 9.8
-9.1 -2.7 -5.2];
b = [-3.6; 14.5; 0.71];
[x,d]=Gauss(A,b);
disp('Корни')
disp(x)
disp('Погрешность')
disp(d)

function [x,d]=Gauss(A,b)

N=size(A,1);% определение числа уравнений системы


C=cat(2,A,b);% создание расширенной матрицы системы
for i=1:N-1
if C(i,i)==0
k=i+1;
while C(k,i)==0
k=k+1;
end
for j=1:size(C,1)
s=C(i,j);
C(i,j)=C(k,j);
C(k,j)=s;
end
z=C;
end
for j=0:N
C(i,N+1-j)=C(i,N+1-j)/C(i,i);
end
for m=i+1:N
a=C(m,i);
for j=i:N+1
C(m,j)=C(m,j)-a*C(i,j);
end
end
end
C(N,N+1)=C(N,N+1)/C(N,N);
C(N,N)=1;
z=C;
N=size(A,1);
v(N)=C(N,N+1);
for j=1:N-1
s=0;
for k=0:j-1
s=s+C(N-j,N-k)*v(N-k);
end
v(N-j)=(C(N-j,N+1)-s)/C(N-j,N-j);
end
x=v';
d=A*x;
d=d-b;
Задание 2:
Решите системы линейных уравнений методом простых итераций
– 6.3x – 5.9y + 2.3z = –3.6;
4.5x – 8.2y + 9.8z = 14.5;
– 9.1x – 2.7y – 5.2z = 0.71;
х = 3.287
y = –4.321
z = –3.646
Решим СЛАУ методом простых итераций. Запишем коэффициенты
уравнения в матрицы.
A = [-6.3 -5.9 2.3
4.5 -8.2 9.8
-9.1 -2.7 -5.2];
b = [-3.6; 14.5; 0.71];

Рисунок 2 – корни СЛАУ не сходятся


При решении СЛАУ корни не сходятся, поэтому возьмём вариант
n+20 = 13+20 = 33
11.2x – 1.5y –3.1z =27.1
– 4.0x +27.1y +0.6z = 17.9
1.5x + 4.0y –7.1z = 21.2
x=2
y=1
z = –2
На этот раз корни СЛАУ сходятся за 5 итерации

Рисунок 3 – корни СЛАУ


Листинг программы
A = [11.2 -1.5 -3.1
-4.0 27.1 0.6
1.5 4.0 -7.1];
B = [27.1; 17.9; 21.2];

sA=size(A);
i=1;
while i<=sA(1)
j=1;
while j<i
A(i,j)=A(i,j)/A(i,i);
j=j+1;
end
j=i+1;
while j<=sA(1)
A(i,j)=A(i,j)/A(i,i);
j=j+1;
end
B(i)=B(i)/A(i,i);
A(i,i)=0;
i=i+1;
end
k=0;
eps=0.001;
X=B;
D=1;
while (k<500)&&(D>eps)
X1=X;
i=1;
while i<=sA(1)
X(i)=B(i);
j=1;
while j<i
X(i)=X(i)-A(i,j)*X(j);
j=j+1;
end
j=i+1;
while j<=sA(1)
X(i)=X(i)-A(i,j)*X(j);
j=j+1;
end
i=i+1;
end
k=k+1;
D=norm(X-X1);

end
disp('Корни:');
disp(X);
disp('Количество итераций:');
disp(k);
disp('Погрешность:');
disp(D);

Вывод:

Метод Гаусса включает в себя прямой (приведение расширенной


матрицы к ступенчатому виду, то есть получение нулей под главной
диагональю) и обратный (получение нулей над главной диагональю
расширенной матрицы) ходы. Прямой ход и называется методом Гаусса,
обратный - методом Гаусса-Жордана, который отличается от первого
только последовательностью исключения переменных.
Метод Гаусса идеально подходит для решения систем содержащих
больше трех линейных уравнений, для решения систем уравнений,
которые не являются квадратными. То есть метод Гаусса - наиболее
универсальный метод для нахождения решения любой системы линейных
уравнений, он работает в случае, когда система имеет бесконечно много
решений или несовместна.
Итерационные методы – это методы, позволяющие получить
решение системы с заданной точностью путем сходящихся итерационных
процессов (метод итерации, метод Зейделя и др.).
Вследствие неизбежных округлений результаты даже точных
методов являются приближенными. При использовании итерационных
методов, сверх того, добавляется погрешность метода.
Эффективное применение итерационных методов существенно
зависит от удачного выбора начального приближения и быстроты
сходимости процесса.
Преимущества метода Гаусса:
 Нет необходимости предварительно исследовать систему уравнений
на совместность;
 Методом Гаусса можно решать не только СЛАУ, в которых число
уравнений совпадает с количеством неизвестных переменных и основная
матрица системы невырожденная, но и системы уравнений, в которых
число уравнений не совпадает с количеством неизвестных переменных
или определитель основной матрицы равен нулю;
 Метод Гаусса приводит к результату при сравнительно небольшом
количестве вычислительных операций.
Преимущества и недостатки итерационных методов:
Преимущества:
 имеют простую вычислительную процедуру;
 не требуют сложных специальных процедур для экономии памяти
ЭВМ под нулевые элементы матрицы коэффициентов, как метод Гаусса;
 самоисправление ошибок.
Недостатки:
 не всегда могут решить систему уравнений (требуется выполнение
условий сходимости)
 сходимость итерационных процессов может быть медленной;
 корни системы могут быть определены только приближенно с
точностью ε.