Тестирование матриц
[
генерирует семейство тестовых матриц, заданных 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
- n
матрица 0 и 1's с определителем 1 или –1.
Создайте 6 6 dramadah матрица. Вычислите его определитель и инверсию.
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.
В этом примере показано, как использовать преобразования Домовладельца, чтобы вычислить разложение 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
Чтобы создать матрицу Домовладельца, используйте функциональный [v,beta] = gallery('house',x)
. Эта функция берет вектор-столбец , и возвращается и таким образом, что матрица Домовладельца. Преобразования Домовладельца используются, чтобы обнулить всех кроме первого элемента вектора .
Вычислите матрицу Домовладельца и выполните преобразование . Матрица имеет только нули ниже диагонали в первом столбце.
[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
Затем вычислите матрицу Домовладельца таким образом, что имеет только нули ниже диагонали в первых и вторых столбцах.
[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
Наконец, вычислите матрицу Домовладельца таким образом, что имеет только нули в поддиагональных элементах.
[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
Матрица верхняя треугольная матрица. Поскольку матрицы Домовладельца инволютивны (матрицы равны своим собственным инверсиям), разложение 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
VerifyThat , в точности машины.
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:
Создайте 1 18 вектор-строку x
со случайными элементами или –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
. 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
определяет семейство сгенерированных тестовых матриц, как описано ниже.
| Описание: Биномиальная матрица, которая является кратной инволютивной матрице Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица Коши Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Чебышевская спектральная матрица дифференцирования Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Подобная Вандермонду матрица для Полиномов Чебышева Синтаксис:
| ||||||||||||||||
| Описание: Сингулярный Теплиц более низкая матрица Хессенберга Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Циркулянтная матрица Синтаксис:
Свойства:
Смотрите также: | ||||||||||||||||
| Описание: Мягкий - Трехдиагональная матрица с нулевыми диагональными элементами Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: матрица Сравнения Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Контрпримеры к матричным средствам оценки номера условия Синтаксис:
| ||||||||||||||||
| Описание: Матрица, столбцы которой повторяются циклически Синтаксис:
| ||||||||||||||||
| Описание: По диагонали доминирующая, плохо обусловленная, трехдиагональная матрица (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Матрица нулей и единиц Синтаксис:
| ||||||||||||||||
| Описание: Полевой игрок - Симметрическая матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: матрица Форсайта или встревоженная матрица Жордана Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Откровенный - Матрица с плохо обусловленными собственными значениями Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица наибольшего общего делителя Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица механизма Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица Теплица с чувствительными собственными значениями Синтаксис:
| ||||||||||||||||
| Описание: Матрица, собственные значения которой лежат на вертикальной строке в комплексной плоскости Синтаксис:
| ||||||||||||||||
| Описание: Матрица домовладельца Синтаксис:
| ||||||||||||||||
| Описание: Массив случайным образом произведенных целых чисел от равномерного распределения на заданной области Синтаксис:
| ||||||||||||||||
| Описание: Инверсия верхней матрицы Хессенберга Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Инволютивная матрица (матрица, которая является ее собственной инверсией), Синтаксис:
Свойства:
Смотрите также: | ||||||||||||||||
| Описание: Матрица Ганкеля с факториальными элементами Синтаксис:
| ||||||||||||||||
| Описание: матрица Матрицы Жордана Синтаксис:
| ||||||||||||||||
| Описание: Верхняя трапециевидная матрица Kahan Синтаксис:
| ||||||||||||||||
| Описание: матрица Как-Мёрдок-Зегеа Теплица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица Крылова Синтаксис:
| ||||||||||||||||
| Описание: Lauchli прямоугольная матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Lehmer симметричная положительная определенная матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица чисел рождения и коэффициентов выживаемости из модели населения Лесли Синтаксис:
| ||||||||||||||||
| Описание: Трехдиагональная матрица с действительными, чувствительными собственными значениями Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица Лоткина Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Симметричная положительная определенная матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Коренной зуб - Симметричная положительная определенная матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Сингулярная матрица от дискретной Неймановой проблемы (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Массив случайным образом произведенных чисел от стандартного нормального (Гауссова) распределения Синтаксис:
| ||||||||||||||||
| Описание: Ортогональные и почти ортогональные матрицы Синтаксис:
| ||||||||||||||||
| Описание: матрица Parter Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица Пэя Синтаксис:
| ||||||||||||||||
| Описание: Блокируйте трехдиагональную матрицу от уравнения Пуассона (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Вытянутая матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Случайная матрица с нормированными столбцами и заданными сингулярными значениями Синтаксис:
| ||||||||||||||||
| Описание: Случайная корреляционная матрица с заданными собственными значениями Синтаксис:
Смотрите также: | ||||||||||||||||
| Описание: Случайная, ортогональная верхняя матрица Хессенберга Синтаксис:
| ||||||||||||||||
| Описание: Случайная матрица J-orthogonal Синтаксис:
| ||||||||||||||||
| Описание: Случайная матрица, состоявшая из элементов-1, 0 или 1 Синтаксис:
| ||||||||||||||||
| Описание: Случайная матрица с предписанными сингулярными значениями Синтаксис:
| ||||||||||||||||
| Описание: матрица Redheffer единиц и нулей Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица сопоставлена с Римановой гипотезой Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: матрица Ris Синтаксис:
| ||||||||||||||||
| Описание: несимметричная матрица с плохо обусловленными целочисленными собственными значениями Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Комплексная матрица с "дымом звонит" псевдоспектр Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Симметричная положительная определенная матрица Теплица Синтаксис:
| ||||||||||||||||
| Описание: матрица Пентадиагоналя Теплица (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Трехдиагональная матрица (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Матрица Верхней треугольной обсуждена Уилкинсоном и другими Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Массив случайным образом произведенных чисел от стандартного равномерного распределения Синтаксис:
| ||||||||||||||||
| Описание: матрица Wathen (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Различные матрицы разработаны или обсуждены Уилкинсоном Синтаксис:
|
P1,P2,...,Pn
— Введите параметрыВведите параметры в виде скаляров, векторов или матриц. Параметры P1,P2,...,Pn
используемый в синтаксисе вызова зависят от матричного семейства, как обсуждено в таблице в matrixname
.
typename
— Тип данных сгенерированных тестовых матрицТип данных сгенерированных тестовых матриц в виде вектора символов или строкового скаляра.
Если typename
не задан, затем тип данных выходных матриц определяется из тех аргументов среди P1,P2,...,Pn
это не задает матричные размерности или выбирает опцию, чтобы определить символ выходных матриц. Если какой-либо из этих аргументов имеет тип данных single
, затем типом выходных данных является single
. В противном случае типом выходных данных является double
.
typename
должен быть любой 'double'
или 'single'
для всех тестовых матриц, если matrixname
'integerdata'
. Если matrixname
'integerdata'
, затем typename
может быть 'double'
единственный
int8
int16
int32
uint8
uint16
, или 'uint32'
.
A1,A2,...,Am
— Выведите коэффициенты, векторы, матрицы или многомерные массивыВыведите коэффициенты, векторы, матрицы или многомерные массивы. Выходные параметры A1,A2,...,Am
это сгенерировано синтаксисом вызова, зависят от матричного семейства, как обсуждено в таблице в matrixname
. В большинстве случаев, gallery
функционируйте только возвращает одну матрицу как выходной аргумент.
A
— Выходная матрица или многомерный массивВыходная матрица или многомерный массив.
[1] Галерея MATLAB® тестовых матриц основана на работе Николаса Дж. Хигема в Отделе Математики, Манчестерском университете, Манчестер, Англия. Дальнейший фон может быть найден в книгах Руководством MATLAB, 2-м редактором, Десмондом Дж. Хигемом и Николасом Дж. Хигемом, Филадельфией: SIAM, 2005, и Точность и Устойчивость Числовых Алгоритмов, Николасом Дж. Хигемом, Филадельфии: SIAM, 1996.
[2] Грэм, Р.Л. и Н. Дж. А. Слоан. “Матрицы анти-Адамара “. Линейная алгебра и ее приложения 62 (1984): 113-137.
[3] Lippold, G. “Тодд, J., Базовая Числовая Математика. Издание 2: Числовая Алгебра. ISNM 22. Базель-Штутгарт, Birkhäuser-Verlag 1977. 216 S. DM 48, – “. ZAMM - Angewandte Mathematik und Mechanik 59 Zeitschrift für, № 10 (1979): 589–589.
[4] Механизм, C. W. “Простой Набор Тестовых Матриц для Программ Собственного значения “. Математика Расчета 23, № 105 (1969): 119-125.
[5] Лоткин, M. “Набор Тестовых Матриц “. Математические Таблицы и Другие Средства к Расчету 9, № 52 (1955): 153.
[6] Дэвис, P. I. и Н. Дж. Хигем. “Численно устойчивая генерация корреляционных матриц и их факторов”. BIT числовая математика 40 (2000): 640-651.
[7] Барретт, W. W. и Т. Дж. Джарвис. “Спектральные свойства матрицы Redheffer “. Линейная алгебра и ее приложения 162-164 (1992): 673-83.
[8] Roesler, F. “Гипотеза Римана как задача о собственных значениях “. Линейная алгебра и ее приложения 81 (1986): 153-98.
[9] Бондессон, L. и я. Traat. “Несимметричная Матрица с Целочисленными Собственными значениями “. Линейная и Полилинейная Алгебра 55, № 3 (2007): 239-47.
[10] Rutishauser, H. “На Тестовых Матрицах “. Programmation en Mathematiques Numeriques, Центр Выпусков Туземная Наука Исследования, Париж, 165 (1966): 349-65.
[11] Уилкинсон, J. H. Алгебраическая задача о собственных значениях. Монографии согласно числовому анализу. Оксфорд: Оксфорд; Нью-Йорк: нажатие Clarendon; издательство Оксфордского университета, 1988.
[12] Moler, C. B. Числовое вычисление с MATLAB. Филадельфия: общество промышленной и прикладной математики, 2004.
compan
| hadamard
| hankel
| hilb
| magic
| pascal
| rosser
| toeplitz
| vander
| wilkinson
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.