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

Упражнение 9. Решение слау методом Гаусса иLu- разложением.

Введите матрицы ,и.

  1. Методом Гаусса решите систему и одновременно получитеLU– разложение матрицыA. Проверьте, что найденный вектор-столбецдействительно является решением. Для этого найдите разность ε =b–A·x. 

  2. Решите систему , используя найденноеLU– разложение матрицыA. Для этого решите две системыи. Процедурой обращения матриц (inv) пользоваться нельзя

  3. Решите систему методом Гаусса с частичным выбором ведущего элемента. Найдите такую перестановочную матрицуP, чтобы при решении системыметодом Гаусса в прямом ходе появилась верхняя треугольная матрица, то есть надо проверить, чтоимеет- разложение:.

  4. Найдите LU- разложение матрицыAс помощью командыMATLAB:[l,u]=lu(A). Сравните с полученными результатами, т.е. найдитеA1=l*uи сравните сA. Если матрицы окажутся разными, то воспользуйтесь командой [l,u,p]=lu(A). Для справки используйтеhelplu. Ответьте на вопрос: как из матрицыA1 получить матрицуA?

Указание к упр.4: подумайте, как наилучшим образом использовать следующие действия над матрицами:

A=[]; b=[]; b1=[];

AA=[A,b,b1]; % описать действие команды

L=eye(4); % описать действие команды

B=AA;

% прямой ход метода Гаусса

L(2,1)=B(2,1)/B(1,1);L(3,1)=B(3,1)/B(1,1);L(4,1)=B(4,1)/B(1,1);

B(2,:)=-L(2,1)*B(1,:)+B(2,:);

B(3,:)=-L(3,1)*B(1,:)+B(3,:);

B(4,:)=-L(4,1)*B(1,:)+B(4,:);

L(3,2)=B(3,2)/B(2,2);L(4,2)=B(4,2)/B(2,2);

B(3,:)=-L(3,2)*B(2,:)+B(3,:);

B(4,:)=-L(4,2)*B(2,:)+B(4,:);

L(4,3)=B(4,3)/B(3,3);

B(4,:)=-L(4,3)*B(3,:)+B(4,:);

U=B(:,1:4)

% проверка A-L*U=zeros(4) - нулевая матрица

isequal(zeros(4),A-L*U) % описать действие команды

%обратный ход метода Гаусса для правой части b

bb=B(:,5); x=zeros(4,1);

x(4)=bb(4)/U(4,4);

x(3)=(bb(3)-U(3,4)*x(4))/U(3,3);

x(2)=(bb(2)-U(2,4)*x(4)-U(2,3)*x(3))/U(2,2);

x(1)=(bb(1)-U(1,4)*x(4)-U(1,3)*x(3)-U(1,2)*x(2))/U(1,1);

x

isequal(b,A*x) % описать действие команды

  1. Матричные уравнения и lu- разложение

Матричные уравнения вида , гдеA,CиX– квадратные матрицы порядкаn, причемdetA≠ 0. МатрицыAиCзаданы, аXнеобходимо найти. Мы знаем, что, но искать решение с помощью вычисления обратной матрицыне следует из-за большого объема вычислений и найденное таким образом решение будет восприимчиво к ошибкам округления.

Задачу можно решить методом Гаусса - Жордана:

преобразованием строк приводим к .

Объем вычислений будет меньше, при этом обратная матрица не находится.

С точки зрения получения точного решения с минимальным количеством действий предпочтительным является другой способ.

Если матрицы XиCпредставить как объединение вектор-столбцов:и, то решение матричного уравненияравносильно решениюnсистем линейных уравненийс одной и той же матрицей A и различными правыми частями:

, , …,.

При решении первой системы методом Гаусса получимLU– разложение матрицыA, затем, его надо применить при решении остальных систем,i = 2, 3, …,n.

Упражнение 10.

  1. Создать м-файл, позволяющий решать матричные уравнения методом элементарных преобразований. Решить матричное уравнение , гдеи

  2. Решить матричное уравнение , с помощью разложения матрицыAвLU-произведение. Сравнить результаты двух способов.

Соседние файлы в папке Лабораторные работы