
- •Порядок выполнения.
- •Матрицы.
- •Элементарные преобразования над матрицами
- •Упражнение 1
- •Обратная матрица
- •Упражнение 2.
- •Метод Гаусса
- •Упражнение 3. Решение слау методом Гаусса.
- •Матрицы элементарных преобразований.
- •Упражнение 4
- •Упражнение 5.
- •Упражнение 6.
- •Упражнение 7.
- •LUразложение без перестановки строк.
- •Упражнение 8.
- •Метод исключения Гаусса и lu- разложение.
- •Упражнение 9. Решение слау методом Гаусса иLu- разложением.
- •Матричные уравнения и lu- разложение
- •Упражнение 10.
- •Об ошибках округления.
- •Влияние малых ведущих элементов на метод Гаусса.
- •Итерационное уточнение решения. Вектор невязки.
- •Число обусловленности матрицы
- •Погрешность правой части
- •Упражнение 11. Число обусловленности и относительная погрешность решения систем
- •Метод простой итерации для решения систем.
- •Упражнение 12.
- •Задание для самостоятельной работы
- •Темы для презентации
- •Задачи.
- •Список рекомендуемой литературы
Погрешность правой части
Рассмотрим систему линейных алгебраических уравнений A·x=b, гдеdetA ≠ 0,b≠ 0. Система, очевидно, имеет единственное ненулевое решениеx.
На практике при решении систем линейных алгебраических уравнений любым методом, в том числе и методом Гаусса, вычисления проводятся с округлением, то есть неточно. Решение систем линейных уравнений или обращение матрицы «точными» методами не всегда гарантирует достаточную точность полученных результатов. Заранее трудно предсказать, сколь существенно скажутся на конечном результате ошибки промежуточных округлений.
Погрешность вычислений часто можно интерпретировать как погрешность правой части.
Наряду с A·x=bрассмотрим систему, где
– погрешность
решения
- вектор ошибки
(выше обозначали «e»).
db≠ 0 – погрешность (возмущение ) правой части (выше обозначали «ε»).
.
В силу свойств нормы матриц (см. Л.1 стр.68 и стр. 91) имеем, что
и
Перемножив левые и правые части неравенств, получим
.
Разделим обе части
неравенства на
. Получим
.
Если число A–
невырожденная матрица, то число
называется
числом обусловленности матрицыA.
Отношение
- относительная
погрешность правого столбцаb.
db- вектор невязки
-
относительная погрешность решения
системы
-
вектор ошибки – абсолютная погрешность
решения системы
Таким образом,
- относительная
погрешность решения системы связана
с числом обусловленности и вектором
невязки
Число обусловленности зависит от используемой нормы. Мы будем использовать стандартную норму norm(A,2), которую научимся высчитывать самостоятельно по формулам:
.
Через
и
обозначены
собственные значения матрицыAи
.
В случае
, то есть когдаA– симметричная, все
ее собственные значения действительны,
число обусловленности вычисляется по
формуле
.
Если матрица Aне является симметричной, то можно
рассмотреть симметричную матрицу. Норма матрицыAв этом случае находится
по формуле
. Для числа
обусловленности справедлива формула
, где
- число
обусловленности симметричной матрицы
.
Команда eig(B) позволяет найти все собственные значения матрицы.
Собственные
значения
можно найти
с помощью команды [D]=eig(B).
Они будут стоять на главной диагонали матрицы D.
Команды max() и min() позволяют найти максимальный и минимальный элементы массива.
Упражнение 11. Число обусловленности и относительная погрешность решения систем
Найти число
обусловленности и оценить
- относительную
погрешность решения систем, подобрав
какой-нибудь векторdb≠ 0
– погрешность (возмущение ) правой
части.
;
;
;
;
;
.
Выявить хорошо и плохо обусловленные системы. Самостоятельно вычислить число обусловленности, проверить его cond(A). Также вычислитеrcond(A), если число близко к 1, то система хорошо обусловлена. Если cond(A)>>0 илиrcond(A) ≈ 0, то матрица A плохо обусловлена.
План решения
% рассмотрим систему -
-
система
не очень плохо обусловлена
A=[7 2 3;5 -3 2;10 -11 5];
b=[15;15;36];
cond(A)
% cond(A)= 55.2690
rcond(A)
%ans = 0.0113 близко к 0
% найдем число обусловленности матрицы и
% так как A матрица невырожденная найдем число обусловленности
% обозначим число обусловленности cA
% cA = norm(A,p)*norm(inv(A,p), см help.
% находим все нормы матрицы A (нужная нам – вторая)
n1=norm(A,1),n2=norm(A,2),n_fro=norm(A,'fro'),n_inf=norm(A,inf)
%n1 = 22 %n2 = 17.3981 %n_fro = 18.6011 %n_inf = 26
% находим все нормы обратной матрицы
Ai=inv(A);
n1i=norm(Ai,1),n2i=norm(Ai,2),ni_fro=norm(Ai,'fro'),ni_inf=norm(Ai,inf)
% n1i = 4.0278 n2i = 3.1767 ni_fro = 3.1809 ni_inf = 4.2500
% перемножаем найденные нормы - получаем число обусловленности
c1=n1*n1i, c2=n2*n2i, c_fro=n_fro*ni_fro, c_inf=n_inf*ni_inf
% c1 = 88.6111, c2 = 55.2690, c_fro = 59.1680, c_inf = 110.5000
% видим наше число c2
%cond(A)= 55.2690
% найдем число cA «самостоятельно»
% матрица А несимметричная,
% поэтому вводим симметричную B=A'*A;
% сс- число обусловленности матрицы B
cc=max(eig(B))/min(eig(B))
cA=sqrt(cc) % наше число обусловленности
% cc = 3.0547e+003
% cA = 55.2690 % получили вторую норму % cond(A)= 55.2690
%оценим
относительную погрешность
% решения системы A*(x+dx)=b+db
% db~=0 – вектор погрешности(возмущение) правой части
«~=» значит ≠
% dx - погрешность решения
db=[0.1;0.1;0.1];
nb=norm(b)
ndb=norm(db)
% nb = 41.7852; ndb = 0.1732
% ndx/nx<=cA*ndb/nb
ndb/nb % относит погрешность правого столбца
%
= = 0.0041
%относит погрешность правого столбца 4%
pogr=cA*ndb/nb
%
%pogr =0.2291 ,
%
значит относительная погрешность
решения
≤0.2291
% возьмем другой вектор погрешности
db=[0.001;0.001;0.001];
nb=norm(b);ndb=norm(db);
ndb/nb % относит погрешность правого столбца
%
= 4.1451e-005
%относит погрешность правого столбца мала 0,0041%
pogr=cA*ndb/nb
%
%pogr = 0.0023
%
значит относительная погрешность
решения
≤0.0023
% относит погрешность решения ближе к нулю
% возьмем другой вектор погрешности
db=[0;0;0.0001];
nb=norm(b);ndb=norm(db);
ndb/nb % относит погрешность правого столбца
%
= 2.3932e-006
%относит погрешность правого столбца мала 0,0002%
pogr=cA*ndb/nb
%
%pogr =1.3227e-004
%
значит относительная погрешность
решения
≤1.3227e-004
% относит погрешность решения еще ближе к нулю
% возьмем другой вектор погрешности
%если за первый вектор приближения брать сам b, то метод итераций с данной матрицей A не сходится
% по крайней мере, я этого не дождалась.
db=Ab-b
%db=[228;87;129];
nb=norm(b);ndb=norm(db);
ndb/nb % относит погрешность правого столбца
%
= 6.6060
% относит погрешность правого столбца велика - 660%
pogr=cA*ndb/nb
%
% pogr = cA*ndb/nb = 55.2690 * 6.6060
%pogr = 365.1066 %
%
значит относительная погрешность
решения
≤365.1066
относительная погрешность решения велика, при сильных возмущениях , при малых возмущениях относительная погрешность мала.