
- •Порядок выполнения.
- •Матрицы.
- •Элементарные преобразования над матрицами
- •Упражнение 1
- •Обратная матрица
- •Упражнение 2.
- •Метод Гаусса
- •Упражнение 3. Решение слау методом Гаусса.
- •Матрицы элементарных преобразований.
- •Упражнение 4
- •Упражнение 5.
- •Упражнение 6.
- •Упражнение 7.
- •LUразложение без перестановки строк.
- •Упражнение 8.
- •Метод исключения Гаусса и lu- разложение.
- •Упражнение 9. Решение слау методом Гаусса иLu- разложением.
- •Матричные уравнения и lu- разложение
- •Упражнение 10.
- •Об ошибках округления.
- •Влияние малых ведущих элементов на метод Гаусса.
- •Итерационное уточнение решения. Вектор невязки.
- •Число обусловленности матрицы
- •Погрешность правой части
- •Упражнение 11. Число обусловленности и относительная погрешность решения систем
- •Метод простой итерации для решения систем.
- •Упражнение 12.
- •Задание для самостоятельной работы
- •Темы для презентации
- •Задачи.
- •Список рекомендуемой литературы
Упражнение 9. Решение слау методом Гаусса иLu- разложением.
Введите матрицы
,
и
.
Методом Гаусса решите систему
и одновременно получитеLU– разложение матрицыA. Проверьте, что найденный вектор-столбец
действительно является решением. Для этого найдите разность ε =b–A·x.
Решите систему
, используя найденноеLU– разложение матрицыA. Для этого решите две системы
и
. Процедурой обращения матриц (inv) пользоваться нельзя
Решите систему
методом Гаусса с частичным выбором ведущего элемента. Найдите такую перестановочную матрицуP, чтобы при решении системы
методом Гаусса в прямом ходе появилась верхняя треугольная матрица
, то есть надо проверить, что
имеет
- разложение:
.
Найдите 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) % описать действие команды
Матричные уравнения и lu- разложение
Матричные уравнения
вида
, гдеA,CиX– квадратные матрицы порядкаn,
причемdetA≠ 0.
МатрицыAиCзаданы, аXнеобходимо
найти. Мы знаем, что
, но искать
решение с помощью вычисления обратной
матрицы
не следует
из-за большого объема вычислений и
найденное таким образом решение будет
восприимчиво к ошибкам округления.
Задачу можно решить методом Гаусса - Жордана:
преобразованием
строк приводим к
.
Объем вычислений будет меньше, при этом обратная матрица не находится.
С точки зрения получения точного решения с минимальным количеством действий предпочтительным является другой способ.
Если матрицы XиCпредставить как
объединение вектор-столбцов:и
, то решение
матричного уравнения
равносильно
решениюnсистем
линейных уравненийс
одной и той же матрицей A
и различными правыми частями:
,
, …,
.
При решении первой
системы
методом Гаусса
получимLU– разложение
матрицыA, затем, его
надо применить при решении остальных
систем
,i = 2,
3, …,n.
Упражнение 10.
Создать м-файл, позволяющий решать матричные уравнения методом элементарных преобразований. Решить матричное уравнение
, где
и
Решить матричное уравнение
, с помощью разложения матрицыAвLU-произведение. Сравнить результаты двух способов.