Главная
страница 1
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ЯДЕРНЫЙ УНИВЕРСИТЕТ «МИФИ»

ОТЧЕТ
о выполнении задания по теме

"Системы линейных алгебраических уравнений"

по курсу


«ВЫЧИСЛИТЕЛЬНАЯ МАТЕМАТИКА»

выполнил студент группы А6-02

Логинов А.В.

Принял преподаватель


Москва, 2011г.

ЗАДАНИЕ
Дано: система линейных алгебраических уравнений Ax = b.
Исходные данные: матрица системы A и столбец правой части b.
Задание:

1. Написать программу на языке MATLAB, реализующую заданный метод решения систем линейных алгебраических уравнений. В качестве входных параметров программы должны выступать:

-матрица системы;

-вектор коэффициентов.

Программа должна возвращать вектор решения СЛАУ.

При этом программа должна содержать

-проверку на предмет вырожденности матрицы системы

2. При помощи программы найти решение СЛАУ для своего варианта задания (включая пошаговые результаты выполнения алгоритмов).


Номер в группе: 10.

Кодировка задания: 10-2.


ВВЕДЕНИЕ
Одним из методов решения задачи Ax = b является метод разложения матрицы A на треугольные матрицы, или метод LU-разложения. Преимуществом метода LU-разложения по сравнению с методом Гаусса является возможность болеее простого получения решений для различных векторов правой части системы.

Если все угловые миноры матрицы A отличны от нуля, тогда матрицу A можно представить в виде A = LU, где L – нижнетреугольная, U – верхнетреугольная матрицы.

Система запишется в виде: LUx = b.

Прямой ход заключается в решении системы Lz = b, в результате находится вектор z.

Обратный ход включает решение системы Ux = z, что позволяет найти вектор x.

Формулы для определения матриц L и U записываются в виде:





Задание 1. Написать М-функцию, реализующую разложение матрицы A а треугольные матрицы L и U.


% Разложение на треугольные матрицы

function [L, U, P] = findlu(A)

if det(A) ~= 0, % Матрица A - невырожденная

[k, k] = size(A); % Определение размерности матрицы А

L = zeros(k); % Формирование переменной для хранения матрицы L

U = eye(k); % Формирование переменной для хранения матрицы U

P = eye(k,k); % Формирование матрицы перестановок
%---Операции поддержки процесса визуализации---

h1 = figure(1);

set(h1,'Renderer','zbuffer','Color',[1 1 1]);

SUBPLOT(2,1,1), h2 = mesh(L, 'FaceColor',[1 1 1]);

colormap(gray);

h3 = findobj('Type','Axes');

set(h3,'Color',[1 1 1],'XColor',[0 0 0],'YColor',[0 0 0], 'ZColor',[0 0 0]);

SUBPLOT(2,1,2), h2=mesh(U,'FaceColor',[1 1 1]);

h3 = findobj('Type', 'Axes');

set(h3,'Color',[1 1 1],'XColor',[0 0 0],'YColor',[0 0 0], 'ZColor',[0 0 0]);

%----------------------------------------------

for i=1:k, % Процесс вычисления элементов матриц L и U

for j=1:k,

if i>=j, % Вычисление элементов матрицы L

sm = 0; % Начальное значение переменной для хранения суммы ряда

for m=1:(j-1)

sm = sm + L(i,m) * U(m,j); % Вычисление суммы ряда

end;


L(i,j) = A(i,j) - sm; % Вычисление элементов матрицы L

end;


if ism2 = 0; % Начальное значение переменной для хранения суммы ряда

for m=1:(i-1),

sm2 = sm2 + L(i,m) * U(m,j); % Вычисление суммы ряда

end;

U(i,j) = (A(i,j) - sm2) / L(i,i);



end;

end;
%---Визуализация матриц L и U---

pause(0.1);

SUBPLOT(2,1,1), h2=mesh(L,'FaceColor',[1 1 1]);

h3 = findobj('Type','Axes');

set(h3,'Color',[1 1 1],'XColor',[0 0 0],'YColor',[0 0 0], 'ZColor',[0 0 0]);

SUBPLOT(2,1,2), h2=mesh(U,'FaceColor',[1 1 1]);

h3 = findobj('Type', 'Axes');

set(h3,'Color',[1 1 1],'XColor',[0 0 0],'YColor',[0 0 0], 'ZColor',[0 0 0]);

%--- ---


end;

else, % Матрица А - вырожденная

disp('Матрица вырожденная');

end; % Выход из программы.

end
Функция возвращает матрицы L и U, а также диагональную матрицу P размерности k, равной размерности исходной матрицы А.

В процессе выполнения функция строит график, по оси z которого отображается значение элемента матрицы с координатами (x,y).

Задание 2. Решить заданную СЛАУ с использованием LU-разложения.
Исходные матрицы:


A =

3 0 3 0


2 2 2 2

0 2 1 1


1 0 2 3


b =

0

2



3

2


Ввод матриц в консоль MATLAB

A = [3,0,3,0;2,2,2,2;0,2,1,1;1,0,2,3];

b = [0; 2; 3; 2];
Применение функции разложения к матрице A

[L,U,P] = findlu(A);


Промежуточные результаты

L =

3 0 0 0


2 2 0 0

0 2 1 0


1 0 1 4

U =

1 0 1 0


0 1 0 1

0 0 1 -1


0 0 0 1

P =

1 0 0 0


0 1 0 0

0 0 1 0


0 0 0 1

Вывод в виде графика




Расчет матриц, обратных к U и L




inv(U) =

1 0 -1 -1

0 1 0 -1

0 0 1 1


0 0 0 1

inv(L) =

0.3333 0 0 0

-0.3333 0.5000 0 0

0.6667 -1.0000 1.0000 0

-0.2500 0.2500 -0.2500 0.2500

Расчет конечного результата:

x = inv(U) * inv(L) * P * b


x =

-1.2500


0.7500

1.2500


0.2500

Проверка результата:




A*x =

0

2



3

2

ЗАКЛЮЧЕНИЕ
В данной работе изучалась програмная реализация решения СЛАУ методом LU-разложения. В результате работы была написана функция разложения матрицы на верхне- и инижнетреугольную матрицы, которая после была применена для решения заданной системы уравнений. В отчете приводится листинг функции, а также промежуточные и конечные результаты вычислений. Функция, согласно заданию, проверяет исходную матрицу системы на невырожденность.

Эксперимент с данной системой (размерности 4) не выявил преимуществ использования метода LU-разложения перед методом Гаусса решения СЛАУ с использованием компьютера. Предположительно, результаты будут более заметны при расчете систем, с матрицей большей размерности.







Смотрите также:
Отчет о выполнении задания по теме "Системы линейных алгебраических уравнений"
51.29kb.
1 стр.
Урок в 7 классе по теме: «Системы линейных уравнений в решении алгебраических задач»
94.58kb.
1 стр.
Линейных уравнений
38.62kb.
1 стр.
Программа вступительных испытаний в магистратуру по направлению 010100. 68 Математика Программа обсуждена на заседании кафедры ит
150.53kb.
1 стр.
Оригинальность идеи и подхода, использование разнообразных приемов
100.15kb.
1 стр.
«Решение систем линейных алгебраических уравнений»
96.46kb.
1 стр.
О построении пары взаимно простых чисел
157.82kb.
1 стр.
Решение систем трех линейных уравнений. Матрицы и действия над ними
48.6kb.
1 стр.
Решение систем трех линейных уравнений. Матрицы и действия над ними
78.62kb.
1 стр.
Разработка программы на языке программирования Паскаль «Решения системы линейных уравнений» разными методами
75.93kb.
1 стр.
Отчет о выполнении муниципального задания на оказание муниципальной услуги (выполнение работ) физическим и юридическим лицам
173.15kb.
1 стр.
Отчет о выполнении муниципального задания
70.66kb.
1 стр.