Тестовые матрицы
[
генерирует семейство тестовых матриц, заданное как A1,A2,...,Am
] = gallery(matrixname
,P1,P2,...,Pn
)matrixname
. P1,P2,...,Pn
являются входными параметрами, требуемыми отдельным семейством матриц. Количество параметров входа P1,P2,...,Pn
используемый в синтаксисе вызова, изменяется от матрицы к матрице. Точные синтаксисы вызовов для каждого семейства матриц описаны в matrixname
раздел.
[
дополнительно задает тип данных сгенерированных тестовых матриц.A1,A2,...,Am
] = gallery(matrixname
,P1,P2,...,Pn
,typename
)
генерирует плохо обусловленную матрицу 3 на 3, которая чувствительна к возмущениям.A
= gallery(3)
Отобразите элементы матрицы нескольких тестовых матриц в виде масштабированных цветов.
Создайте циркулянтную матрицу размера 11 на 11. Циркулянтная матрица является особым видом матрицы Теплица, где каждая строка получается из предыдущей путем циклического перемещения записей на одно место вправо.
C = gallery('circul',11);
Отобразите изображение элементов матрицы в C
. Добавьте шкалу палитры к графику, чтобы показать текущую палитру.
imagesc(C)
axis square
colorbar
Создайте матрицу grcar размера 11 на 11. Матрица grcar является несимметричной матрицей Теплица с -1
на поддиагонали, 1
на основной диагонали, и 1
на первых нескольких диагоналях выше основной диагонали.
G = gallery('grcar',11);
Отобразите изображение элементов матрицы в G
.
imagesc(G)
axis square
colorbar
Создайте матрицу minij размера 11 на 11. Матрица minij M
- симметричная положительно определенная матрица с элементами M(i,j) = min(i,j)
.
M = gallery('minij',11);
Отобразите изображение элементов матрицы в M
.
imagesc(M)
axis square
colorbar
Целочисленная матрица имеет обратную матрицу, которая также является целочисленной матрицей тогда и только тогда, когда ее определяющий в точности равен 1 или -1. Квадратная целочисленная матрица с определяющим 1 или -1 также называется унимодулярной матрицей. Примером такой матрицы является gallery('dramadah',n)
, который является n
-by- n
матрица 0 и 1 с определяющим 1 или -1.
Создайте матрицу драмады 6 на 6. Вычислим его определяющего и обратный.
A = gallery('dramadah',6)
A = 6×6
1 1 0 1 0 0
0 1 1 0 1 0
0 0 1 1 0 1
1 0 0 1 1 0
1 1 0 0 1 1
0 1 1 0 0 1
detA = det(A)
detA = -1
invA = inv(A)
invA = 6×6
-1 -2 -3 4 -2 5
1 1 1 -2 1 -2
-1 -1 -2 3 -2 4
1 1 2 -2 1 -3
0 1 1 -1 1 -2
0 0 1 -1 1 -1
Обратная матрица имеет только целочисленные значения, потому что определяющий исходной матрицы равен -1.
В этом примере показано, как использовать преобразования Housholder для вычисления QR-декомпозиции матрицы , где является ортогональной матрицей и является верхней треугольной матрицей.
Сначала установите генератор случайных чисел на значение по умолчанию и создайте прямоугольную матрицу случайных чисел 6 на 3 из стандартного нормального распределения.
rng('default')
A = randn(6,3)
A = 6×3
0.5377 -0.4336 0.7254
1.8339 0.3426 -0.0631
-2.2588 3.5784 0.7147
0.8622 2.7694 -0.2050
0.3188 -1.3499 -0.1241
-1.3077 3.0349 1.4897
Чтобы создать матрицу Housholder, используйте функцию [v,beta] = gallery('house',x)
. Эта функция принимает вектор-столбец , и возвращает и таким, что является матрицей Housholder. Преобразования Housholder используются, чтобы обнулить все, кроме первого элемента вектора .
Вычислите матрицу Домохозяина и выполните преобразование . Матрица имеет только нули ниже диагонали в первом столбце.
[v1,beta1] = gallery('house',A(:,1));
P1 = eye(6) - beta1*(v1*v1');
A1 = P1*A
A1 = 6×3
-3.3630 2.8841 1.0421
0 1.9024 0.0858
0.0000 1.6571 0.5314
-0.0000 3.5028 -0.1350
-0.0000 -1.0788 -0.0983
0.0000 1.9227 1.3835
Затем вычислите матрицу Housholder таким, что имеет только нули ниже диагонали в первом и втором столбцах.
[v2,beta2] = gallery('house',A1(2:end,2));
v2 = [0;v2];
P2 = eye(6) - beta2*(v2*v2');
A2 = P2*A1
A2 = 6×3
-3.3630 2.8841 1.0421
-0.0000 -4.8472 -0.6885
0.0000 -0.0000 0.3413
-0.0000 -0.0000 -0.5368
-0.0000 0.0000 0.0255
0.0000 -0.0000 1.1630
Наконец, вычислите матрицу Housholder таким, что имеет только нули в поддиагональных элементах.
[v3,beta3] = gallery('house',A2(3:end,3));
v3 = [0;0;v3];
P3 = eye(6) - beta3*(v3*v3');
R = P3*A2
R = 6×3
-3.3630 2.8841 1.0421
-0.0000 -4.8472 -0.6885
-0.0000 0.0000 -1.3258
-0.0000 -0.0000 0.0000
-0.0000 0.0000 0.0000
-0.0000 0.0000 0.0000
Матрица является верхней треугольной матрицей. Поскольку матрицы Housholder являются инволюторными (матрицы равны их собственным обратным элементам), QR-разложение становится с .
Q = P1*P2*P3
Q = 6×6
-0.1599 -0.0057 -0.6699 0.4983 -0.2036 -0.4857
-0.5453 -0.3952 -0.1759 -0.6432 0.1342 -0.2895
0.6717 -0.3386 0.1647 -0.0991 0.1551 -0.6109
-0.2564 -0.7239 0.3290 0.5244 0.0805 0.1434
-0.0948 0.2221 -0.0962 0.1872 0.9463 -0.0433
0.3888 -0.3948 -0.6130 -0.1346 0.1203 0.5335
Сравните этот результат с расчетом с помощью qr
функция.
[Qa,Ra] = qr(A)
Qa = 6×6
-0.1599 -0.0057 -0.6699 0.4983 -0.2036 -0.4857
-0.5453 -0.3952 -0.1759 -0.6432 0.1342 -0.2895
0.6717 -0.3386 0.1647 -0.0991 0.1551 -0.6109
-0.2564 -0.7239 0.3290 0.5244 0.0805 0.1434
-0.0948 0.2221 -0.0962 0.1872 0.9463 -0.0433
0.3888 -0.3948 -0.6130 -0.1346 0.1203 0.5335
Ra = 6×3
-3.3630 2.8841 1.0421
0 -4.8472 -0.6885
0 0 -1.3258
0 0 0
0 0 0
0 0 0
Проверьте, что , в пределах точности машины.
norm(A - Q*R)
ans = 8.2109e-16
Этот пример строит график распределения собственных значений из выборки 20 000 случайных циркулянтных матриц размера 18 на 18 в комплексной плоскости. Элементы матрицы равномерно дискретизированы из набора {-0.4,0.4}.
Создайте E массива
размера 18 на 20 000 для хранения собственных значений.
E = zeros(18,20000);
Установите генератор случайных чисел на значение по умолчанию. Повторите следующие операции 20 000 раз в операторе for-loop:
Создайте вектор-строку x
1 на 18 со случайными элементами либо -0,4, либо 0,4.
Используйте векторную x
как вход для создания случайной циркулянтной матрицы A
.
Найдите собственные значения A
и храните их в E
.
rng('default') for i = 1:20000 x = -0.4 + 0.8*randi([0 1],1,18); A = gallery('circul',x); E(:,i) = eig(A); end
Создайте график поля точек для отображения собственных значений E
в комплексной плоскости. Установите - и -предельные пределы по осям в диапазоне от -3 до 3.
scatter(real(E(:)),imag(E(:)),'b.') xlabel('Re(E)') ylabel('Im(E)') xlim([-3 3]) ylim([-3 3]) axis square
Создайте тестовую матрицу gallery(3)
. Тестовая матрица плохо обусловлена собственными значениями, которые чувствительны к возмущениям.
A = gallery(3)
A = 3×3
-149 -50 -154
537 180 546
-27 -9 -25
Вычислите собственные значения A
при помощи eig
.
e = eig(A)
e = 3×1
1.0000
2.0000
3.0000
Вычислите числа обусловленности при помощи condeig
.
c = condeig(A)
c = 3×1
603.6390
395.2366
219.2920
Числа обусловленности указывают, что возмущения в элементах матрицы A
может привести к возмущениям в собственных значениях с верхними границами, которые примерно в 200-600 раз больше.
Затем сделайте небольшое возмущение, чтобы A
путем добавления матрицы равномерно распределенных случайных чисел. Установите seed генератора случайных чисел на его значение по умолчанию. Добавьте случайную матрицу с элементами в интервале от 0 до 0,001, эксклюзивно, к A
.
rng('default')
Ap = A + 1e-3*rand(3)
Ap = 3×3
-148.9992 -49.9991 -153.9997
537.0009 180.0006 546.0005
-26.9999 -8.9999 -24.9990
Вычислите собственные значения возмущенной матрицы Ap
.
ep = eig(Ap)
ep = 3×1
0.7399
2.1437
3.1188
Показать различие между возмущенными и исходными собственными значениями.
delta = ep - e
delta = 3×1
-0.2601
0.1437
0.1188
Сравните изменение собственных значений с верхними границами, заданными числами обусловленности. Верхние границы имеют примерно такой же порядок величины, как собственное значение возмущения.
delta_upper = 1e-3*c
delta_upper = 3×1
0.6036
0.3952
0.2193
Создайте тестовую матрицу A = gallery(5)
. Тестовая матрица имеет собственные значения, которые чувствительны к ошибкам округления.
A = gallery(5)
A = 5×5
-9 11 -21 63 -252
70 -69 141 -421 1684
-575 575 -1149 3451 -13801
3891 -3891 7782 -23345 93365
1024 -1024 2048 -6144 24572
В точной арифметике матрица A
имеет пятикратные собственные значения (строго говоря, A
имеет собственное значение 0 алгебраической кратности 5 и геометрической кратности 1). Это означает, что точный характеристический полином A
является . Проверьте, что A^5
является нулевой матрицей.
Afifth = A^5
Afifth = 5×5
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Сравните эти результаты с численным расчетом собственных значений с помощью eig
. The eig
функция возвращает пять собственных значений A
которые маленькие.
e = eig(A)
e = 5×1 complex
-0.0370 + 0.0275i
-0.0370 - 0.0275i
0.0147 + 0.0427i
0.0147 - 0.0427i
0.0445 + 0.0000i
Это предполагает, что численный расчет собственных значений A
чрезвычайно чувствителен к ошибкам округления из-за точности с плавающей точностью, используемой в расчете.
Численные расчеты собственных значений сильно отличаются от их аналогов точной арифметикой. Вместо нахождения собственных значений, которые близки к точным собственным значениям A
, а eig
функция находит собственные значения матрицы, которая близка к A
. Чтобы проиллюстрировать это, постройте график точных и числовых собственных значений A
в комплексной плоскости.
plot(0,0,'bo',real(e),imag(e),'r*') axis([-0.1 0.1 -0.1 0.1]) axis square
Рисунок показывает, что числовые собственные значения лежат на вершинах правильного пятиугольника в комплексной плоскости с центром в источник. Радиус пятиугольника составляет около 0,04.
Затем вычислите собственные значения 20 матриц, которые близки к A
. Установите генератор случайных чисел в значение по умолчанию и возмущайте A
на случайные числа, нарисованные из стандартного нормального распределения, умноженные на eps
. Постройте график числовых собственных значений 20 возмущенных матриц.
E = zeros(20,5); rng('default') for i = 1:20 E(i,:) = eig(A + eps*randn(5).*A); end plot(0,0,'bo',real(e),imag(e),'r*',real(E),imag(E),'k.') axis([-0.1 0.1 -0.1 0.1]) axis square
Рисунок показывает, что исходный пятиугольник, который представляет собственные значения A
, может изменить ориентацию, когда A
возмущается. Собственные значения 20 возмущенных матриц лежат на вершинах пятиугольников с радиусами в области значений от 0,01 до 0,07. Вычисленные собственные значения возмущенных матриц ведут себя аналогично вычисленным собственным значениям исходной матрицы. Неточность вычисленных собственных значений вызвана чувствительностью gallery(5)
.
matrixname
- Имя семейства матриц'binomial'
| 'cauchy'
| 'chebspec'
| 'chebvand'
| 'chow'
| 'circul'
| 'clement'
| 'compar'
| ...
Имя семейства матриц, заданное как вектор символов или строковый скаляр. Аргумент matrixname
определяет семейство сгенерированных тестовых матриц, как описано ниже.
| Описание: Биномиальная матрица, которая является произведением инволютивной матрицы Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица Коши Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица спектральной дифференцировки Чебышева Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Vandermonde-подобная матрица для Полиномов Чебышева Синтаксис:
| ||||||||||||||||
| Описание: Сингулярный Теплиц нижняя Матрица Хессенберга Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Циркулянтная матрица Синтаксис:
Свойства:
См. также: | ||||||||||||||||
| Описание: Тридиагональная матрица Климента с нулевыми диагональными элементами Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица сравнения Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Контрпримеры к оценке числа матричных обусловленности Синтаксис:
| ||||||||||||||||
| Описание: Матрица, столбцы которой повторяются циклически Синтаксис:
| ||||||||||||||||
| Описание: Диагонально доминирующая, плохо обусловленная, тридиагональная матрица (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Матрица нулей и таковых Синтаксис:
| ||||||||||||||||
| Описание: Симметричная матрица Фидлера Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица Forsythe или возмущенная матрица Жордана Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица Фрэнка с плохо обусловленными собственными значениями Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Наибольшая общая матрица делителя Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Зубчатая матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица Теплица с чувствительными собственными значениями Синтаксис:
| ||||||||||||||||
| Описание: Матрица, собственные значения которой лежат на вертикальной линии в комплексной плоскости Синтаксис:
| ||||||||||||||||
| Описание: Домашняя матрица Синтаксис:
| ||||||||||||||||
| Описание: Массив случайным образом выбранных целых чисел из равномерного распределения в заданной области Синтаксис:
| ||||||||||||||||
| Описание: Обратная часть верхней матрицы Хессенберга Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Инволюторная матрица (матрица, которая является ее собственной обратной) Синтаксис:
Свойства:
См. также: | ||||||||||||||||
| Описание: Hankel матрица с факториальными элементами Синтаксис:
| ||||||||||||||||
| Описание: Матрица Жордана Синтаксис:
| ||||||||||||||||
| Описание: Верхняя трапеция матрицы Кахана Синтаксис:
| ||||||||||||||||
| Описание: Матрица Каца-Мердока-Сегё Теплица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Крыловская матрица Синтаксис:
| ||||||||||||||||
| Описание: Лаухли прямоугольная матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Лемер симметричный положительно определенный матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица показателей рождаемости и выживаемости из модели населения Лесли Синтаксис:
| ||||||||||||||||
| Описание: Триидиагональная матрица с реальными, чувствительными собственными значениями Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Лоткин матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Симметричная положительная определенная матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Молер симметричный положительно определенный матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Сингулярная матрица из дискретной задачи Неймана (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Массив случайным образом выбранных чисел из стандартного нормального (Гауссова) распределения Синтаксис:
| ||||||||||||||||
| Описание: Ортогональные и почти ортогональные матрицы Синтаксис:
| ||||||||||||||||
| Описание: Parter матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Pei matrix Синтаксис:
| ||||||||||||||||
| Описание: Блочная трехугольная матрица из уравнения Пуассона (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Пролят матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Случайная матрица с нормированными столбцами и заданными сингулярными значениями Синтаксис:
| ||||||||||||||||
| Описание: Матрица случайной корреляции с заданными собственными значениями Синтаксис:
См. также: | ||||||||||||||||
| Описание: Случайная, ортогональная верхняя матрица Хессенберга Синтаксис:
| ||||||||||||||||
| Описание: Случайная J-ортогональная матрица Синтаксис:
| ||||||||||||||||
| Описание: Случайная матрица, составленная из элементов -1, 0 или 1 Синтаксис:
| ||||||||||||||||
| Описание: Случайная матрица с предварительно назначенными сингулярными значениями Синтаксис:
| ||||||||||||||||
| Описание: Матрица Redheffer таковых и нулей Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица, связанная с гипотезой Римана Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Res matrix Синтаксис:
| ||||||||||||||||
| Описание: Несимметричная матрица с плохо обусловленными целыми собственными значениями Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Сложная матрица с псевдоспектром «дымовой звонок» Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Симметричная положительная определенная матрица Теплица Синтаксис:
| ||||||||||||||||
| Описание: Пятиугольная матрица Теплица (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Тридиагональная матрица (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Верхняя треугольная матрица, обсуждаемая Уилкинсоном и другими Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Массив случайным образом выбранных чисел от стандартного равномерного распределения Синтаксис:
| ||||||||||||||||
| Описание: Матрица Ватена (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Различные матрицы, разработанные или обсуждаемые Уилкинсоном Синтаксис:
|
P1,P2,...,Pn
- Входные параметрыВходные параметры, заданные как скаляры, векторы или матрицы. Параметры P1,P2,...,Pn
используемый в синтаксисе вызова, зависит от семейства матриц, как описано в таблице в matrixname
.
typename
- Тип данных сгенерированных тестовых матрицТип данных сгенерированных тестовых матриц, заданный как вектор символов или строковый скаляр.
Если typename
не задан, затем тип данных выходных матриц определяется из тех аргументов среди P1,P2,...,Pn
которые не задают матричные размерности или выбирают опцию для определения символа выходных матриц. Если какой-либо из этих аргументов имеет тип данных single
, затем выход данных single
. В противном случае тип выходных данных double
.
typename
должно быть либо 'double'
или 'single'
для всех тестовых матриц, если только matrixname
является 'integerdata'
. Если matrixname
является 'integerdata'
, затем typename
можно 'double'
, 'single'
, 'int8'
, 'int16'
, 'int32'
, 'uint8'
, 'uint16'
, или 'uint32'
.
A1,A2,...,Am
- Выходные коэффициенты, векторы, матрицы или многомерные массивыВыходные коэффициенты, векторы, матрицы или многомерные массивы. Выходные выходы A1,A2,...,Am
которые сгенерированы синтаксисом вызова, зависят от семейства матриц, как описано в таблице в matrixname
. В большинстве случаев gallery
функция возвращает только одну матрицу в качестве выходного аргумента.
A
- Выходная матрица или многомерный массивВыходная матрица или многомерный массив.
[1] MATLAB® галерея тестовых матриц основана на работе Николаса Дж. Хайама на кафедре математики Манчестерского университета, Манчестер, Англия. Дальнейшую справку можно найти в книгах MATLAB Руководства, 2nd ed, Desmond J. Higham and Nicholas J. Higham, Philadelphia: SIAM, 2005, and Accuracy of Numerical Algorithms, Nicholas J. Higham, Philadeladeladelphia: sielphia: sionia: Siadelphia: SIi: SIam, 1996.
[2] Грэм, Р.Л. и Н. Дж. А. Слоан. «Анти-Адамардские матрицы». Линейная алгебра и ее приложения 62 (1984): 113-137.
[3] Lippold, G. "Todd, J., Basic Numerical Mathematics. Том 2: Численная алгебра. ISNM 22. Базель-Штутгарт, Биркхойзер-Верлаг 1977. 216 S. DM 48, - ". ZAMM - Zeitschrift für Angewandte Mathematik und Mechanik 59, № 10 (1979): 589-589.
[4] Gear, C. W. «Простой набор тестовых матриц для программ собственное значение». Математика 23 Расчетов, № 105 (1969): 119 - 125.
[5] Лоткин, М. «Набор тестовых матриц». Математические таблицы и другие вспомогательные средства для расчета 9, № 52 (1955): 153.
[6] Дэвис, П. И. и Н. Дж. Хайам. Численно стабильная генерация корреляционных матриц и их факторов. BIT Численная математика 40 (2000): 640-651.
[7] Барретт, У. У. и Т. Дж. Джарвис. Спектральные свойства матрицы Redheffer. Линейная алгебра и ее приложения 162-164 (1992): 673-83.
[8] Roesler, F. «Гипотеза Римана как задача собственного значения». Линейная алгебра и ее приложения 81 (1986): 153-98.
[9] Бондессон, Л. и И. Траат. «Несимметричная матрица с целыми собственными значениями». Линейная и мультилинейная алгебра 55, № 3 (2007): 239-47.
[10] Rutishauser, H. «On Test Matrices». Программа en Mathematiques Numeriques, Центр редакций Nat Recherche Sci, Париж, 165 (1966): 349-65.
[11] Уилкинсон, Дж. Х. Алгебраическая задача собственного значения. Монографии по численному анализу. Оксфорд: Оксфорд; Нью-Йорк: Clarendon Press; Oxford University Press, 1988.
[12] Молер, С. Б. Числовые вычисления с MATLAB. Филадельфия: Общество промышленной и прикладной математики, 2004.
compan
| hadamard
| hankel
| hilb
| magic
| pascal
| rosser
| toeplitz
| vander
| wilkinson
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.