
- •Вычисление нормы и чисел обусловленности матрицы
- •Определитель и ранг матрицы
- •Определение нормы вектора
- •Определение ортонормированного базиса матрицы
- •Функции приведения матрицы к треугольной форме
- •Определение угла между двумя подпространствами
- •Вычисление следа матрицы
- •Разложение Холецкого
- •Обращение матриц
- •Вычисление собственных значений и сингулярных чисел
- •Понятие о многомерных массивах
- •Применение оператора «:» в многомерных массивах
- •Доступ к отдельному элементу многомерного массива
- •Удаление размерности в многомерном массиве
- •Создание страниц, заполненных константами и случайными числами
- •Объединение массивов
- •Вычисление числа размерностей массива и определение размера размерностей
Вычисление нормы и чисел обусловленности матрицы
1 норма матрицы представляет из себя максимальное из чисел, полученных при сложении всех элементов каждого столбца, взятых по модулю. Не путайте со сложением матриц!
Р
ассмотрим
на примере: пусть дана матрица размера
3х2. В первом столбце стоят элементы: 8,
3, 8. Все элементы положительные. Найдем
их сумму: 8+3+8=19. В втором столбце стоят
элементы: 8, -2, -8. Два элемента - отрицательные,
поэтому при сложении этих чисел,
необходимо подставлять модуль этих
чисел (т.е. без знаков "минус").
Найдем их сумму: 8+2+8=18. Максимальное из
этих двух чисел - это 19. Значит первая
норма матрицы равна 19.
2 норма матрицы представляет из себя квадратный корень из суммы квадратов всех элементов матрицы. А это значит мы возводим в квадрат все элементы матрицы, затем складываем полученные значения и из результата извлекаем квадратный корень.
В нашем случае, 2 норма матрицы получилась равна квадратному корню из 269. На схеме, я приближенно извлекла квадратный корень из 269 и в результате получила приблизительно около 16,401. Хотя более правильно не извлекать корень.
3 норма матрицы представляет из себя максимальное из чисел, полученных при сложении всех элементов каждой строки, взятых по модулю.
В
нашем примере: в первой строке стоят
элементы: 8, 8. Все элементы положительные.
Найдем их сумму: 8+8=16. В второй строке
стоят элементы: 3, -2. Один из элементов
отрицательный, поэтому при сложении
этих чисел, необходимо подставлять
модуль этого числа. Найдем их сумму:
3+2=5. В третьей строке стоят элементы 8,
и -8. Один из элементов отрицательный,
поэтому при сложении этих чисел,
необходимо подставлять модуль этого
числа. Найдем их сумму: 8+8=16. Максимальное
из этих трех чисел - это 16. Значит третья
норма матрицы равна 16.
Число обусловленности квадратной матрицы A определяется, как
k(A) = ||A||·||A -1||
Число
обусловленности имеет следующее
значение: если машинная точность, с
которой совершаются все операции с
вещественными числами, равна ε, то при
решении системы линейных уравнений Ax
= b результат будет получен с относительной
погрешностью порядка ε·k(A). Хотя число
обусловленности матрицы зависит от
выбора нормы, если матрица хорошо
обусловлена, то её число обусловленности
будет мало при любом выборе нормы, а
если она плохо обусловлена, то её число
обусловленности будет велико при любом
выборе нормы. Таким образом, обычно
норму выбирают исходя из соображений
удобства. На практике наиболее широко
используют 1-норму, 2-норму и ∞-норму,
задающиеся формулами:
В Matlab используется следующие функции поиска нормы:
Пусть А —матрица. Тогда n=norm(A) эквивалентно п=погп(А,2) и возвращает вторую норму, т. е. самое большое сингулярное число А. Функция n=norm(A, 1) возвращает первую норму, т. е. самую большую из сумм абсолютных значений элементов матрицы по столбцам. Норма неопределенности n=norm(A, inf) возвращает самую большую из сумм абсолютных значений элементов матрицы по рядам. Норма Фробениуса (Frobenius) norm(A, 'fro') = sqrt(sum(diag(A'A))).
Пример:
» A=[2,3,1;1,9,4;2,6,7]
A =
2 3 1
1 9 4
2 6 7
» norm(A,1)
ans =
18
Числа обусловленности матрицы определяют чувствительность решения системы линейных уравнений к погрешностям исходных данных. Следующие функции позволяют найти числа обусловленности матриц.
cond(X) — возвращает число обусловленности, основанное на второй норме, то есть отношение самого большого сингулярного числа X к самому малому. Значение cond(X), близкое к 1, указывает на хорошо обусловленную матрицу;
с = cond(X,p) — возвращает число обусловленности матрицы, основанное на р-норме: norm(X,p)*norm(inv(X),p), где р определяет способ расчета:
р=1 — число обусловленности матрицы, основанное на первой норме;
р=2 — число обусловленности матрицы, основанное на второй норме;
p= 'fro' — число обусловленности матрицы, основанное на норме Фробе-ниуса (Frobenius);
р='inf' — число обусловленности матрицы, основанное на норме неопределенности.
с = cond(X) — возвращает число обусловленности матрицы, основанное на второй норме.
Пример:
» d=cond(hilb(4))
d =
1.5514е+004
condeig(A) — возвращает вектор чисел обусловленности для собственных значений А. Эти числа обусловленности — обратные величины косинусов углов между левыми и правыми собственными векторами;
[V.D.s] = condeig(A) — эквивалентно [V,D] = eig(A): s = condeig(A);.
Большие числа обусловленности означают, что матрица А близка к матрице с кратными собственными значениями.
Пример:
» d=condeig(rand(4))
d =
1.0766
1.2298
1.5862
1.7540
rcond(A) — возвращает обратную величину обусловленности матрицы А по первой норме, используя оценивающий обусловленность метод LAPACK. Если А — хорошо обусловленная матрица, то rcond(A) около 1.00, если плохо обусловленная, то около 0.00. По сравнению с cond функция rcond реализует более эффективный в плане затрат машинного времени, но менее достоверный метод оценки обусловленности матрицы.
Пример:
» s=rcond(hilb(4))
s =
4.6461е-005