Тестовые матрицы
[ генерирует семейство тестовых матриц, указанных 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. Матрица Гркара - несимметричная матрица Тёплица с -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 с определителем 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.
В этом примере показано, как использовать преобразования Домохозяина для вычисления QR-разложения матрицы QR, Q - ортогональная матрица, R - верхняя треугольная матрица.
Сначала задайте генератору случайных чисел значение по умолчанию и создайте прямоугольную матрицу случайных чисел 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). Эта функция принимает вектор столбца и возвращает и так, что I-βvvT является матрицей Домохозяина. Преобразования Домохозяина используются для обнуления всех, кроме первого элемента x.
Вычислите матрицы Домохозяина и выполните преобразование P1A. Матрица A1 имеет только нули под диагональю в первом столбце.
[v1,beta1] = gallery('house',A(:,1));
P1 = eye(6) - beta1*(v1*v1');
A1 = P1*AA1 = 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
Затем вычислите матрицу Домохозяина так что P2A1 имеет только нули ниже диагонали в первом и втором столбцах.
[v2,beta2] = gallery('house',A1(2:end,2));
v2 = [0;v2];
P2 = eye(6) - beta2*(v2*v2');
A2 = P2*A1A2 = 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
Наконец, вычислите матрицу Домохозяина так что P3A2 имеет только нули в поддиагональных элементах.
[v3,beta3] = gallery('house',A2(3:end,3));
v3 = [0;0;v3];
P3 = eye(6) - beta3*(v3*v3');
R = P3*A2R = 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
Матрица P3P2P1A является верхней треугольной матрицей. Поскольку матрицы Домохозяера являются невольными (матрицы равны их собственным инверсам), QR-разложение A = QR P1P2P3.
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
Убедитесь, что QR, в пределах точности машины.
norm(A - Q*R)
ans = 8.2109e-16
В этом примере показано распределение собственных значений из выборки из 20000 случайных циркулирующих матриц размером 18 на 18 в комплексной плоскости. Элементы матрицы равномерно отбираются из набора {-0.4,0,4}.
Создание массива E размера 18 на 20 000 для хранения собственных значений.
E = zeros(18,20000);
Установите для генератора случайных чисел значение по умолчанию. Выполните итерацию следующих операций 20 000 раз в инструкции for-loop:
Создание вектора строки 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 в комплексной плоскости. Установите пределы осей X и Y в диапазоне от -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 путем сложения матрицы равномерно распределенных случайных чисел. Установите начальное значение генератора случайных чисел в значение по умолчанию. Добавление случайной матрицы с элементами в интервале от 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 имеет пятикратные собственные значения 0 (строго говоря,A имеет собственное значение 0 алгебраической кратности 5 и геометрической кратности 1). Это означает, что точная характеристика многочлена A λ 0. Убедитесь, что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 определяет семейство сгенерированных тестовых матриц, как указано ниже.
| Описание: Биномиальная матрица, которая кратна инволюционной матрице Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: матрица Коши Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица спектральной дифференциации Чебышева Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Вандермондоподобная матрица для многочленов Чебышёва Синтаксис:
| ||||||||||||||||
| Описание: Сингулярная Toeplitz нижняя матрица Гессенберга Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица циркулятора Синтаксис:
Свойства:
См. также: | ||||||||||||||||
| Описание: Климент тридиагональная матрица с нулевыми диагональными элементами Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица сравнения Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Контрпримеры для матричных оценок числа условий Синтаксис:
| ||||||||||||||||
| Описание: Матрица, столбцы которой повторяются циклически Синтаксис:
| ||||||||||||||||
| Описание: Диагонально доминантная, плохо кондиционированная, тридиагональная матрица (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Матрица нулей и единиц Синтаксис:
| ||||||||||||||||
| Описание: Симметричная матрица Фидлера Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Forsythe матрица или возмущенный иорданский блок Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Frank матрица с плохо обусловленными собственные значения Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Наибольшая общая матрица делителя Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица зубчатых колес Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Toeplitz матрица с чувствительными собственными значениями Синтаксис:
| ||||||||||||||||
| Описание: Матрица, собственные значения которой лежат на вертикальной линии в комплексной плоскости Синтаксис:
| ||||||||||||||||
| Описание: Матрица домохозяев Синтаксис:
| ||||||||||||||||
| Описание: Массив случайных целых чисел из равномерного распределения в указанном диапазоне Синтаксис:
| ||||||||||||||||
| Описание: Инверсия верхней матрицы Гессенберга Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Инволюционная матрица (матрица, которая является собственной обратной) Синтаксис:
Свойства:
См. также: | ||||||||||||||||
| Описание: Матрица Hankel с факториальными элементами Синтаксис:
| ||||||||||||||||
| Описание: Матрица блоков Джордана Синтаксис:
| ||||||||||||||||
| Описание: Верхняя трапециевидная матрица Кахана Синтаксис:
| ||||||||||||||||
| Описание: Матрица Кац-Мердок-Сегё Тёплиц Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица Крылова Синтаксис:
| ||||||||||||||||
| Описание: Прямоугольная матрица Лаухли Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Lehmer симметрическая положительная определенная матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица показателей рождаемости и выживаемости по модели населения Лесли Синтаксис:
| ||||||||||||||||
| Описание: Тридиагональная матрица с вещественными, чувствительными собственными значениями Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица Лоткина Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Симметричная положительная определенная матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Moler симметрическая положительная определенная матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Сингулярная матрица из дискретной задачи Неймана (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Массив случайных выборок чисел из стандартного нормального (гауссова) распределения Синтаксис:
| ||||||||||||||||
| Описание: Ортогональные и почти ортогональные матрицы Синтаксис:
| ||||||||||||||||
| Описание: Партерная матрица Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Матрица Pei Синтаксис:
| ||||||||||||||||
| Описание: Блок тридиагональной матрицы из уравнения Пуассона (разреженная матрица) Синтаксис:
| ||||||||||||||||
| Описание: Матрица пролата Синтаксис:
Свойства:
| ||||||||||||||||
| Описание: Случайная матрица с нормализованными столбцами и заданными сингулярными значениями Синтаксис:
| ||||||||||||||||
| Описание: Матрица случайной корреляции с указанными собственными значениями Синтаксис:
См. также: | ||||||||||||||||
| Описание: Случайная, ортогональная верхняя матрица Гессенберга Синтаксис:
| ||||||||||||||||
| Описание: Случайная J-ортогональная матрица Синтаксис:
| ||||||||||||||||
| Описание: Случайная матрица, состоящая из элементов -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', 'single', 'int8', 'int16', 'int32', 'uint8', 'uint16', или 'uint32'.
A1,A2,...,Am - Выходные коэффициенты, векторы, матрицы или многомерные массивыВыходные коэффициенты, векторы, матрицы или многомерные массивы. Продукция A1,A2,...,Am которые генерируются синтаксисом вызова, зависят от семейства матриц, как описано в таблице в matrixname. В большинстве случаев gallery функция возвращает только одну матрицу в качестве выходного аргумента.
A - Выходная матрица или многомерный массивВыходная матрица или многомерный массив.
[1] Галерея тестовых матриц MATLAB ® основана на работе Николаса Дж. Хайама на кафедре математики Манчестерского университета, Манчестер, Англия. Дополнительные сведения можно найти в книгах MATLAB Guide, 2-е изд., Десмонд Дж. Хайам и Николас Дж. Хайам, Филадельфия: SIAM, 2005, и Точность и стабильность численных алгоритмов, Николас Дж. Хайам, Филадельфия: SIAM, 1996.
[2] Грэм, Р. Л. и Н. Дж. А. Слоан. «Анти-Адамаровские матрицы.» Линейная алгебра и её приложения 62 (1984): 113-137.
[3] Липпольд, Г. "Тодд, Дж., Основная численная математика. Том 2: Численная алгебра. ISNM 22. Базель-Штутгарт, Бирхяузер-Верлаг 1977. 216 С. ДМ 48, - ". ZAMM - Zeitschrift für Angewandte Mathematik und Mechanik 59, № 10 (1979): 589-589.
[4] Передача, C. W. «Простой набор тестовых матриц для программ собственных значений». Математика вычисления 23, № 105 (1969): 119-125.
[5] Лоткин, М. «Набор тестовых матриц». Математические таблицы и другие вспомогательные средства к вычислению 9, № 52 (1955): 153.
[6] Дейвис, П. И. и Н. Дж. Хайам. «Стабильное в числовом отношении формирование корреляционных матриц и их факторов». BIT Численная математика 40 (2000): 640-651.
[7] Барретт, У. У. и Т. Дж. Джарвис. «Спектральные свойства матрицы Редхеффера». Линейная алгебра и её применения 162-164 (1992): 673-83.
[8] Рослер, Ф. «Гипотеза Римана как проблема собственного значения». Линейная алгебра и её приложения 81 (1986): 153-98.
[9] Бондессон, Л. и И. Траат. «Несимметричная матрица с целочисленными собственными значениями». Линейная и многолинейная алгебра 55, № 3 (2007): 239-47.
[10] Рутисхаузер, Н. «О тестовых матрицах». Программирование в Mathematiques Numeriques, Издательство Центра Нат Речерш Sci, Париж, 165 (1966): 349-65.
[11] Уилкинсон, Дж. Х. Алгебраическая проблема собственных значений. Монографии по численному анализу. Оксфорд: Оксфорд; Нью-Йорк: Кларендон Пресс; Издательство Оксфордского университета, 1988 год.
[12] Молер, С. Б. Численные вычисления с MATLAB. Филадельфия: Общество промышленной и прикладной математики, 2004.
compan | hadamard | hankel | hilb | magic | pascal | rosser | toeplitz | vander | wilkinson
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.