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

Shevchenko / 2sem / LR8_MatlabZapiska

.doc
Скачиваний:
8
Добавлен:
07.06.2024
Размер:
205.82 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра МВЭ

Отчет

По лабораторной работе №8

по дисциплине «Алгоритмы и вычислительные средства»

Тема: Алгоритмы и программы решения систем линейных алгебраических уравнений.

Студент гр. 3206

Корепанов Д. М.

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

Шевченко С. А.

Санкт-Петербург

2024

  1. Цель

Изучение и программирование стандартных алгоритмов решения СЛАУ.

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

Задана система линейных алгебраических уравнений: матрица коэффициентов при неизвестных A, вектор свободных членов B, вектор начальных приближений X и машинная точность отыскания решения tol.

  1. Алгоритм выполнения работы

  1. Реализовать алгоритм поиска корней x1, x2, … , xn для заданной СЛАУ в программе Matlab.

  2. Вставить комментарии к операторам программы.

  3. Вставить в программу стандартные функции tic, toc для оценки времени решения задачи.

  4. Проверить программу Matlab на следующих исходных данных:

  5. О пределить количество итераций алгоритма поиска корней x1, x2, … xn.

  6. Получить листинг, включающий: вектор с найденными корнями x1 , x2 , … , xn, число итераций алгоритма и время решения задачи.

  7. Получить решение заданной системы уравнений с помощью штатного оператора “\” программы Matlab.

  8. Модифицировать программу Matlab по п.8.1 таким образом, чтобы отыскание корней происходило по алгоритму Гаусса-Зейделя.

  1. Модифицировать программу таким образом, чтобы на каждой итерации алгоритма вычислялась и запоминались следующие величины:

  2. П остроить зависимость от числа итераций максимального значения ошибки max Δi, а также относительной и усредненной ошибок (δrel и ̅δi соответственно). Сравнить полученные результаты для разработанных алгоритмов решения СЛАУ по методам Якоби и Гаусса-Зейделя. Сделать выводы.

  3. Оформить отчет, включив в него тексты программ Matlab, листинги с результатами их работы. В выводы включить зависимости от числа итераций максимального значения ошибки max Δi а также относительной и усредненной ошибок (δrel и ̅δi соответственно).

  1. Основная часть

4.1 Алгоритм решения СЛАУ методом Якоби

Рисунок 1 -- Блок-схема алгоритма решения СЛАУ методом Якоби

4.1.1 Код программы

clc

clear

A = [4 1 2 -1; 3 6 -1 2; 2 -1 5 -3; 4 1 -3 -8];

B = [2 -1 5 -3];

N = size(A,1);

X = zeros(N,1);

tol = 1e-6;

tic;

count = 0;

while true

x_new = zeros(N, 1);

for i = 1:N

sum = 0;

for j = 1:N

if i ~= j

sum = sum + A(i, j) * X(j);

end

end

x_new(i) = 1/A(i, i) * (B(i) - sum);

end

count = count + 1;

if (abs(x_new - X)) < tol

break;

else

X = x_new;

end

end

toc;

disp('Итерации'); disp(count);

disp('Решение'); disp(x_new);

4.1.2 Листинг результатов

Рисунок 2 – Скриншот окна программы с результатом алгоритма

4.2 Алгоритм решения СЛАУ методом Гаусса-Зейделя

Рисунок 3 -- Блок-схема алгоритма решения СЛАУ методом Гаусса-Зейделя

4.2.1 Код программы

Соседние файлы в папке 2sem