gallery

Тестовые матрицы

Описание

пример

[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) дополнительно задает тип данных сгенерированных тестовых матриц.

пример

A = gallery(3) генерирует плохо обусловленную матрицу 3 на 3, которая чувствительна к возмущениям.

пример

A = gallery(5) генерирует матрицу 5 на 5 с интересной задачей собственного значения, которая чувствительна к ошибкам округления.

Примеры

свернуть все

Отобразите элементы матрицы нескольких тестовых матриц в виде масштабированных цветов.

Создайте циркулянтную матрицу размера 11 на 11. Циркулянтная матрица является особым видом матрицы Теплица, где каждая строка получается из предыдущей путем циклического перемещения записей на одно место вправо.

C = gallery('circul',11);

Отобразите изображение элементов матрицы в C. Добавьте шкалу палитры к графику, чтобы показать текущую палитру.

imagesc(C)
axis square
colorbar

Figure contains an axes. The axes contains an object of type image.

Создайте матрицу grcar размера 11 на 11. Матрица grcar является несимметричной матрицей Теплица с -1на поддиагонали, 1на основной диагонали, и 1на первых нескольких диагоналях выше основной диагонали.

G = gallery('grcar',11);

Отобразите изображение элементов матрицы в G.

imagesc(G)
axis square
colorbar

Figure contains an axes. The axes contains an object of type image.

Создайте матрицу minij размера 11 на 11. Матрица minij M - симметричная положительно определенная матрица с элементами M(i,j) = min(i,j).

M = gallery('minij',11);

Отобразите изображение элементов матрицы в M.

imagesc(M)
axis square
colorbar

Figure contains an axes. The axes contains an object of type image.

Целочисленная матрица имеет обратную матрицу, которая также является целочисленной матрицей тогда и только тогда, когда ее определяющий в точности равен 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-декомпозиции матрицы A=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

Чтобы создать матрицу Housholder, используйте функцию [v,beta] = gallery('house',x). Эта функция принимает вектор-столбец x, и возвращает v и β таким, что H=I-βvvT является матрицей Housholder. Преобразования Housholder используются, чтобы обнулить все, кроме первого элемента вектора x.

Вычислите матрицу Домохозяина P1 и выполните преобразование A1=P1A. Матрица A1 имеет только нули ниже диагонали в первом столбце.

[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 P2 таким, что A2=P2A1 имеет только нули ниже диагонали в первом и втором столбцах.

[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 P3 таким, что A3=P3A2 имеет только нули в поддиагональных элементах.

[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

Матрица R=P3P2P1A является верхней треугольной матрицей. Поскольку матрицы Housholder являются инволюторными (матрицы равны их собственным обратным элементам), QR-разложение A становится A=QR с Q=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

Проверьте, что A=QR, в пределах точности машины.

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 в комплексной плоскости. Установите x- и y-предельные пределы по осям в диапазоне от -3 до 3.

scatter(real(E(:)),imag(E(:)),'b.')
xlabel('Re(E)')
ylabel('Im(E)')
xlim([-3 3])
ylim([-3 3])
axis square

Figure contains an axes. The axes contains an object of type scatter.

Создайте тестовую матрицу 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 имеет пятикратные собственные значения λ=0 (строго говоря, A имеет собственное значение 0 алгебраической кратности 5 и геометрической кратности 1). Это означает, что точный характеристический полином A является λ5=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. 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

Figure contains an axes. The axes contains 2 objects of type line.

Рисунок показывает, что числовые собственные значения лежат на вершинах правильного пятиугольника в комплексной плоскости с центром в источник. Радиус пятиугольника составляет около 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

Figure contains an axes. The axes contains 7 objects of type line.

Рисунок показывает, что исходный пятиугольник, который представляет собственные значения A, может изменить ориентацию, когда A возмущается. Собственные значения 20 возмущенных матриц лежат на вершинах пятиугольников с радиусами в области значений от 0,01 до 0,07. Вычисленные собственные значения возмущенных матриц ведут себя аналогично вычисленным собственным значениям исходной матрицы. Неточность вычисленных собственных значений вызвана чувствительностью gallery(5).

Входные параметры

свернуть все

Имя семейства матриц, заданное как вектор символов или строковый скаляр. Аргумент matrixname определяет семейство сгенерированных тестовых матриц, как описано ниже.

'binomial'

Описание: Биномиальная матрица, которая является произведением инволютивной матрицы

Синтаксис:

  • A = gallery('binomial',n) возвращает n-by- n матрица с целочисленными значениями, такими что A^2 = 2^(n-1)*eye(n).

Свойства:

  • Матрица B = A*2^((1-n)/2) является инволюторным (матрица, которая является ее собственной обратной).

'cauchy'

Описание: Матрица Коши

Синтаксис:

  • A = gallery('cauchy',x,y) возвращает n-by- n матрица с записями A(i,j) = 1/(x(i)+y(j)). Аргументы x и y являются векторами длины n. Если вы проходите в скалярах для x и y, они интерпретируются как векторы 1:x и 1:y.

  • A = gallery('cauchy',x) возвращает то же, что и выше, с y = x. Другими словами, A(i,j) = 1/(x(i)+x(j)).

Свойства:

  • Явные формулы известны для обратной и определяющей матрицы Коши.

  • Определяющий det(C) ненулевое, если x и y оба имеют отдельные элементы.

  • C полностью положительно, если 0 < x(1) < ... < x(n) и 0 < y(1) < ... < y(n).

'chebspec'

Описание: Матрица спектральной дифференцировки Чебышева

Синтаксис:

  • A = gallery('chebspec',n,k) возвращает матрицу спектральной дифференцировки Чебышева размера n-by- n. Аргументы в k, который может взять значение 0 (по умолчанию) или 1, определяет символ выходной матрицы.

    Для k = 0 (без граничных условий), A является nilpotent, что означает, что существует положительное целое число c таким образом A^c = 0. Матрица A имеет вектор null ones(n,1).

    Для k = 1, A является несингулярным и хорошо обусловленным, и его собственные значения имеют отрицательные реальные части.

Свойства:

  • Для k = 0, матрица A аналогичен матрице Жордана размера n с собственным значением нуль. Две матрицы A и B называются аналогичными, если существует инвертируемая матрица P того же размера, такого что B = inv(P)*A*P.

  • Для обоих k, собственная векторная матрица матрицы спектральной дифференцировки Чебышёва плохо обусловлена.

'chebvand'

Описание: Vandermonde-подобная матрица для Полиномов Чебышева

Синтаксис:

  • A = gallery('chebvand',x) производит основную матрицу Чебышева Вандермонде на основе вектора точек x, который определяет, где вычисляется полином Чебышева. Аргументы в x является вектором длины nи размер A является n-by- n. Записи A являются A(i, j) = <reservedrangesplaceholder1> <reservedrangesplaceholder0> – 1 (x(j)), где T i - 1 - Полином Чебышева первого рода степеней i – 1. Если x является скаляром, тогда x равномерно разнесенные точки на интервале [0,1] используются для вычисления A.

  • A = gallery('chebvand',m,x) создает прямоугольный вариант вышеописанного с m строки, где m является скаляром.

'chow'

Описание: Сингулярный Теплиц нижняя Матрица Хессенберга

Синтаксис:

  • A = gallery('chow',n,alpha,delta) возвращает матрицу Чау порядка <reservedrangesplaceholder0>, который является n-by- n нижняя Матрица Хессенберга. Матрица A определяется как

    A=Hα+δI

    где элементы матрицы H α H α (i, j) = α(ij + 1) для (i - j + 1) ≥ 0, δ является коэффициентом, а I является n-by- n единичная матрица.

  • A = gallery('chow',n) использует значения по умолчанию 1 и 0 для alpha и delta, соответственно.

Свойства:

  • H α имеет p = floor(n/2) собственных значений, которые равны нулю. Остальные собственные значения равны 4*alpha*cos(k*pi/(n+2))^2, где k = 1:(n-p).

'circul'

Описание: Циркулянтная матрица

Синтаксис:

  • A = gallery('circul',v) возвращает n-by- n циркулянтная матрица, чья первая строка является вектором v длины n. Циркулянтная матрица является особым видом матрицы Теплица, где каждая строка получается из предыдущей путем циклического перемещения записей на одно место вправо. Если v является скаляром, тогда A = gallery('circul',1:v).

Свойства:

  • Собственная система A известен явно. Если t является nпервый корень единства, затем скалярное произведение v и w = [1 t t^2 ... t^(n – 1)] является собственным значением A и w(n:-1:1) является собственным вектором.

См. также: toeplitz

'clement'

Описание: Тридиагональная матрица Климента с нулевыми диагональными элементами

Синтаксис:

  • A = gallery('clement',n,k) возвращает n-by- n тридиагональная матрица с нулями на основной диагонали. Для k = 0 (по умолчанию), A является несимметричным. Для k = 1, A симметрично.

Свойства:

  • A = gallery('clement',n,1) по диагонали аналогичен B = gallery('clement',n,0), где существует диагональная матрица D того же размера, что и B = inv(D)*A*D.

  • Если n нечетно, тогда A является сингулярной матрицей.

  • Собственные значения A явно известны, которые включают в себя плюс и минус числа n-1, n-3, n-5, ..., 1 или 0.

  • Два предыдущих свойства также относятся к gallery('tridiag',x,y,z), где y = zeros(n,1). Если длина входного вектора y или n нечетно, тогда gallery('tridiag',x,y,z) сингулярно. Собственные значения по-прежнему приходят в плюс и минус парах, но они явным образом неизвестны.

  • Для нечетных n = 2*m+1 и k = 0, gallery('clement',n,0) имеет m+1 сингулярные значения, которые равны sqrt((2*m+1)^2 - (2*t+1).^2) для t = 0:m.

'compar'

Описание: Матрица сравнения

Синтаксис:

  • A = gallery('compar',B,k) возвращает матрицу сравнения B.

    Для k = 0 (по умолчанию), A(i,j) = abs(B(i,j)) если i == j и A(i,j) = -abs(B(i,j)) в противном случае.

    Для k = 1, A = gallery('compar',B,1) заменяет каждый диагональный элемент B с его абсолютным значением и заменяет каждый off-диагональный элемент отрицательным от наибольшего абсолютного значения off-диагональных элементов в одной строке.

Свойства:

  • Если B является треугольным, тогда A = gallery('compar',B,1) также треугольный.

'condex'

Описание: Контрпримеры к оценке числа матричных обусловленности

Синтаксис:

  • A = gallery('condex',n,k,alpha) возвращает матрицу контрпримера в оценщик числа обусловленности. Он принимает скалярный параметр alpha (по умолчанию 100) и возвращает матрицу размера n-by- n.

    Матрица, ее естественный размер и оценка, к которой она применяется, заданы k.

    k = 1

    4 на 4

    Контрпример к RCOND LINPACK

    k = 2

    3 на 3

    Контрпример к RCOND LINPACK

    k = 3

    произвольный

    Контрпример к RCOND LINPACK (независимо от alpha)

    k = 4 (по умолчанию)

    n >= 4

    Контрпример к RCOND LAPACK (это обратная матрица, которая является встречным примером)

    Если n не равен натуральному размеру матрицы, затем матрица заполняется тождествами матрицей в порядок n.

'cycol'

Описание: Матрица, столбцы которой повторяются циклически

Синтаксис:

  • A = gallery('cycol',n,k) возвращает n-by- n матрица с циклически повторяющимися столбцами, где один цикл состоит из столбцов, заданных как randn(n,k). Таким образом, ранг матричных A не может превышать k, и k должно быть скаляром. Аргументы в k является скаляром со значением по умолчанию round(n/4)и ему не нужно равномерно делиться n.

  • A = gallery('cycol',[m n],k) возвращает m-by- n матрица с циклически повторяющимися столбцами, где один цикл состоит из столбцов, заданных как randn(m,k).

'dorr'

Описание: Диагонально доминирующая, плохо обусловленная, тридиагональная матрица (разреженная матрица)

Синтаксис:

  • A = gallery('dorr',n,theta) возвращает матрицу Дорра, которая является n-by- n, строка по диагонали доминирующая, тридиагональная матрица, которая плохо обусловлена для малых неотрицательных значений theta. Значение по умолчанию theta является 0.01.

  • [v1,v2,v3] = gallery('dorr',n,alpha) возвращает векторы, которые задают матрицу Дорра. Сама матрица Дорра аналогична gallery('tridiag',v1,v2,v3).

'dramadah'

Описание: Матрица нулей и таковых

Синтаксис:

  • A = gallery('dramadah',n,k) возвращает n-by- n матрица 0и 1. n и k должны быть оба скаляров. Для k = 0 и 1, mu(A) = norm(inv(A),'fro') относительно большой, хотя и не обязательно максимальный [2]. Аргументы в k определяет символ выходной матрицы, как указано ниже.

    k = 1 (по умолчанию)

    A является теплиц и unimodular с abs(det(A)) = 1 и mu(A) > c*(1.75)^2n, где c является константой. Обратная A имеет целочисленные значения.

    k = 2

    A является верхним треугольным и теплиц. Обратная A имеет целочисленные значения.

    k = 3

    A является Теплицем и имеет максимальный определяющего среди нижних двоичных матриц Гессенберга (со всеми элементами 0 или 1). det(A) равно nЧисло Фибоначчи. Собственные значения имеют интересное распределение в комплексной плоскости.

'fiedler'

Описание: Симметричная матрица Фидлера

Синтаксис:

  • A = gallery('fiedler',x), где x - длина n вектор, возвращает n-by- n симметричная матрица с элементами A(i,j) = abs(x(i)-x(j)). Для скалярных x, A = gallery('fiedler',1:x).

Свойства:

  • Матричные A имеет доминирующее положительное собственное значение, и все другие собственные значения отрицательны.

  • Явные формулы для inv(A) и det(A) приведены в [3] и приписываются Фидлеру. Эти формулы указывают, что inv(A) является тридиагональным, за исключением ненулевого (1,n) и (n,1) элементы.

'forsythe'

Описание: Матрица Forsythe или возмущенная матрица Жордана

Синтаксис:

  • A = gallery('forsythe',n,alpha,lambda) возвращает n-by- n матрица, равная матрице Жордана с собственным значением lambda, кроме того A(n,1) = alpha. Значения по умолчанию для скаляров alpha и lambda являются sqrt(eps) и 0, соответственно.

Свойства:

  • Характеристический полином A задается det(A-t*I) = (lambda-t)^n - alpha*(-1)^n.

'frank'

Описание: Матрица Фрэнка с плохо обусловленными собственными значениями

Синтаксис:

  • A = gallery('frank',n,k) возвращает матрицу Франка размера n-by- n для значения по умолчанию k = 0. Матрица Франка является верхней матрицей Хессенберга с определяющим 1. Если k = 1, элементы отражаются вокруг антидиагональной, (1,n), (2,n-1), …, (n,1).

Свойства:

  • Собственные значения A может быть получен в терминах нулей многочленов Эрмита. Они положительны и происходят в взаимных парах.

  • Если n нечетно, тогда 1 является собственным значением.

  • Наименьшая половина собственных значений или наименьшая floor(n/2) собственные значения, плохо обусловлены.

'gcdmat'

Описание: Наибольшая общая матрица делителя

Синтаксис:

  • A = gallery('gcdmat',n) возвращает n-by- n матрица с A(i,j) равно gcd(i,j).

Свойства:

  • Матричные A симметрично положительно определено, и A.^r симметричный положительный полуопределенный для всех неотрицательных r.

'gearmat'

Описание: Зубчатая матрица

Синтаксис:

  • A = gallery('gearmat',n,i,j) возвращает n-by- n матрица с 1на поддиагональной и сверхдиагональной, sign(i) в (1,abs(i)) положение, sign(j) в (n,n+1-abs(j)) положение и 0где бы то ни было. Аргументы i и j по умолчанию это n и -n, соответственно. Они должны быть целыми числами в области значений -n на n.

Свойства:

  • Матричные A сингулярна, может иметь двойные и тройные собственные значения и может быть дефектной.

  • Все собственные значения имеют вид 2 * cos (a), а собственные векторы имеют вид [sin (w + a), sin (w + 2 a),..., sin (w + n a)], где a и w приведены в [4].

'grcar'

Описание: Матрица Теплица с чувствительными собственными значениями

Синтаксис:

  • A = gallery('grcar',n,k) возвращает n-by- n Матрица Теплица с -1на поддиагонали, 1на основной диагонали, и 1включен k диагонали выше основной диагонали. k должно быть целым числом, а значение по умолчанию k = 3. A имеет собственные значения, которые чувствительны к возмущению.

'hanowa'

Описание: Матрица, собственные значения которой лежат на вертикальной линии в комплексной плоскости

Синтаксис:

  • A = gallery('hanowa',n,alpha) возвращает 2-by- 2 блочная матрица с четырьмя n/2-by- n/2 блоки формы:

    [alpha*eye(n/2) -diag(1:n/2)
    diag(1:n/2)     alpha*eye(n/2)]

    Аргументы в n должно быть четным целым числом. Значение по умолчанию alpha является -1. A имеет сложные собственные значения вида alpha ± k*i, для 1 <= k <= n/2.

'house'

Описание: Домашняя матрица

Синтаксис:

  • [v,beta] = gallery('house',x) принимает x, скаляром или n-элементный вектор-столбец и возвращает v и beta таким образом H = eye(n) - beta*v*v' является матрицей Housholder. Матрица Домохозяина H удовлетворяет свойству

    H*x = -sign(x(1))*norm(x)*e1 

    где e1 - первый столбец eye(n).

    Обратите внимание, что если x комплексно, тогда sign(x) = exp(i*arg(x)), что равно x./abs(x) когда x является ненулевым. Если x равен нулю, тогда v равен нулю и beta = 1.

  • [v,beta,s] = gallery('house',x,k) принимает x, an n-элементный вектор-столбец и возвращает v и beta таким образом H*x = s*e1. В этом выражении e1 - первый столбец eye(n), abs(s) = norm(x), и H = eye(n) - beta*v*v' является матрицей Housholder.

    k определяет знак s как указано ниже.

    k = 0 (по умолчанию)

    sign(s) = -sign(x(1))

    k = 1

    sign(s) = sign(x(1))

    k = 2

    sign(s) = 1 (x должно быть реальным)

    Если x равен нулю, или если x = alpha*e1 (alpha >= 0) и любое из них k = 1 или k = 2, затем v равен нулю, beta = 1, и s = x(1). В этом случае H = eye(n) является матрицей тождеств, которая не является строго матрицей Housholder.

'integerdata'

Описание: Массив случайным образом выбранных целых чисел из равномерного распределения в заданной области

Синтаксис:

  • A = gallery('integerdata',imax,[m,n,...],k) возвращает m-by- nоколо-... массивы направленности A значения которых являются выборкой из равномерного распределения по целым числам 1:imax. k является случайным seed и должно быть целым значением в интервале [0,2^32-1]. Вызывающие gallery('integerdata',...) с различными значениями k возвращает различные массивы. Повторные вызовы в gallery('integerdata',...) с тем же imax, вектор размера и k всегда возвращает тот же массив.

    При любом вызове gallery('integerdata',...) можно подставить отдельные входы m,n,... для входного параметра вектора размера [m,n,...]. Для примера, gallery('integerdata',7,[1,2,3,4],5) эквивалентно gallery('integerdata',7,1,2,3,4,5).

  • A = gallery('integerdata',[imin imax],[m,n,...],k) возвращает m-by- nоколо-... массивы направленности A значения которых являются выборкой из равномерного распределения по целым числам imin:imax.

  • [A1,A2,...,Am] = gallery('integerdata',[imin imax],[m,n,...],k) возвращает несколько m-by- nоколо-... массивы A1, A2..., Am содержащие различные значения.

  • [A1,A2,...,Am] = gallery('integerdata',[imin imax],[m,n,...],k,typename) создает массивы с элементами типа typename. typename должен быть 'double' (по умолчанию), 'single', 'uint8', 'uint16', 'uint32', 'int8', 'int16', или int32'.

Читайте также: randi | rng

'invhess'

Описание: Обратная часть верхней матрицы Хессенберга

Синтаксис:

  • A = gallery('invhess',x,y), где x - длина n вектор и y - длина n-1 вектор, возвращает матрицу с элементами A(i,j) = x(j) если i <= j, и A(i,j) = y(i) в противном случае. Нижний треугольник A основан на векторе x, и строгий верхний треугольник основан на y. Аргументы в y по умолчанию является -x(1:n-1).

    Для скалярного n, gallery('invhess',n) то же, что и gallery('invhess',1:n).

Свойства:

  • Матрица A является несингулярным, если x(1) ~= 0 и x(i+1) ~= y(i) для всех i.

  • Обратная A является верхней матрицей Хессенберга.

'invol'

Описание: Инволюторная матрица (матрица, которая является ее собственной обратной)

Синтаксис:

  • A = gallery('invol',n) возвращает n-by- n инволюторная матрица, где A*A = eye(n) и A является плохо обусловленной. Это диагонально масштабируемая версия hilb(n).

Свойства:

  • Матрицы B = (eye(n)-A)/2 и B = (eye(n)+A)/2 являются идемпотентными, где B*B = B.

См. также: hilb

'ipjfact'

Описание: Hankel матрица с факториальными элементами

Синтаксис:

  • [A,beta] = gallery('ipjfact',n,k) возвращает n-by- n Матрица Ханкеля A и его определяющий beta, что известно явно. Обратная A также известно явным образом.

    Если k = 0 (по умолчанию), затем элементы A являются A(i,j) = factorial(i+j). Если k = 1, затем элементы A являются A(i,j) = 1/factorial(i+j).

Читайте также: hankel | toeplitz

'jordbloc'

Описание: Матрица Жордана

Синтаксис:

  • A = gallery('jordbloc',n,lambda) возвращает n-by- n Матрица Жордана с собственным значением lambda. Значение по умолчанию для lambda является 1.

'kahan'

Описание: Верхняя трапеция матрицы Кахана

Синтаксис:

  • A = gallery('kahan',n,theta,pert) возвращает верхнюю трапецию матрицы, которая имеет интересные свойства в отношении оценки условия и ранга. Например, матрица Каана иллюстрирует, что использование простого в столбце QR-разложения может не дать хорошую оценку ранга матрицы.

    Если n является двухэлементным вектором, тогда A является n(1)-by- n(2); в противном случае A является n-by- n. Полезная область значений theta является 0 < theta < pi, со значением по умолчанию 1.2.

    Чтобы убедиться, что QR-факторизация с поворотом столбца не меняет столбцы при наличии ошибок округления, главная диагональ возмущается pert*eps*diag([n:-1:1]). Значение по умолчанию pert является 1e3, что не обеспечивает никаких взаимозамен для gallery('kahan',n) по крайней мере, до n = 100 в IEEE® арифметика (для значения по умолчанию theta = 1.2).

'kms'

Описание: Матрица Каца-Мердока-Сегё Теплица

Синтаксис:

  • A = gallery('kms',n,rho) возвращает n-by- n Матрица Каца-Мердока-Сегё Теплица такая, что A(i,j) = rho^(abs(i-j)) для реальных rho. Для сложных rhoэта же формула имеет место за исключением того, что элементы ниже диагонали сопряжены. rho значение по умолчанию 0,5.

Свойства:

  • Существует LDL-разложение A с L = inv(gallery('triw',n,-rho,1))', и D = (1-abs(rho)^2)*eye(n), кроме первого элемента D является D(1,1) = 1.

  • A положительно определено тогда и только тогда, когда 0 < abs(rho) < 1.

  • Обратное inv(A) является тридиагональным.

'krylov'

Описание: Крыловская матрица

Синтаксис:

  • A = gallery('krylov',B,x,k) возвращает матрицу Крылова, где B является n-by- n матрица, x - вектор с длиной n, и k должно быть целым числом. Матрица Крылова равна

    [x, B*x, B^2*x, ..., B^(k-1)*x]

    для вектора-столбца x. Если вы не задаете аргументы x и k, они берут значения по умолчанию x = ones(n,1) и k = n.

  • A = gallery('krylov',n) для скалярного n то же, что и gallery('krylov',B) с B = randn(n).

'lauchli'

Описание: Лаухли прямоугольная матрица

Синтаксис:

  • A = gallery('lauchli',n,mu) возвращает (n+1)-by- n матрица вида [ones(1,n); mu*eye(n)]. Аргументы в mu по умолчанию является sqrt(eps).

Свойства:

  • Матрица Лаухли является хорошо известным примером в наименьших квадратах и других задачах, который показывает опасность формирования A'*A при решении уравнения ATAx^=ATb. Матрица A'*A в целом более чувствителен к ошибкам округления, чем начальная матрица A.

'lehmer'

Описание: Лемер симметричный положительно определенный матрица

Синтаксис:

  • A = gallery('lehmer',n) возвращает симметричное положительное определенное n-by- n матрица такая, что A(i,j) = i/j для j >= i и A(i,j) = j/i в противном случае.

Свойства:

  • A полностью неотрицательна.

  • Обратное inv(A) является тридиагональным и явно известным.

  • The порядка <reservedrangesplaceholder0> удовлетворяет n <= cond(A) <= 4*n*n.

'leslie'

Описание: Матрица показателей рождаемости и выживаемости из модели населения Лесли

Синтаксис:

  • A = gallery('leslie',x,y) является n-by- n матрица из модели населения Лесли со средними числами рождений x(1:n) и показатели выживания y(1:n-1). Элементы матрицы в основном равны нулю, кроме первой строки, которая содержит x(i) и первую поддиагональную, которая содержит y(i). Для действительной модели элементы x неотрицательны, и элементы y положительны и ограничены 1, где 0 < y(i) <= 1.

  • A = gallery('leslie',n) генерирует матрицу Лесли с x = ones(n,1) и y = ones(n-1,1).

'lesp'

Описание: Триидиагональная матрица с реальными, чувствительными собственными значениями

Синтаксис:

  • A = gallery('lesp',n) возвращает n-by- n матрица, собственные значения которой действительны и плавно распределены в интервале [-2*n-3.5,-4.5].

Свойства:

  • Чувствительность собственных значений увеличивается экспоненциально, когда собственные значения становятся более отрицательными.

  • Матрица подобна симметричной тридиагональной матрице B с теми же диагональными элементами и с off-diagonal входами 1 посредством преобразования подобия A = inv(D)*B*D, где D = diag(factorial(1:n)).

'lotkin'

Описание: Лоткин матрица

Синтаксис:

  • A = gallery('lotkin',n) возвращает Гильбертову матрицу с первой строкой, измененной на все 1.

Свойства:

  • Матрица Лоткина A является несимметричным, плохо обусловленным и имеет много отрицательных собственных значений малой величины.

  • Его обратная переменная имеет целочисленные значения и известна явно [5].

'minij'

Описание: Симметричная положительная определенная матрица

Синтаксис:

  • A = gallery('minij',n) возвращает n-by- n симметричная положительно определенная матрица с записями A(i,j) = min(i,j).

Свойства:

  • A имеет собственные значения 0.25*sec(r*pi/(2*n+1)).^2, где r = 1:n.

  • Обратное inv(A) является тридиагональным и равным -1 умножить на вторую матрицу различий, за исключением ее (n,n) элемент 1.

  • Матрица 2*A-ones(size(A)) имеет тридиагональную обратную и собственные значения 0.5*sec((2*r-1)*pi/(4*n)).^2, где r = 1:n.

'moler'

Описание: Молер симметричный положительно определенный матрица

Синтаксис:

  • A = gallery('moler',n,alpha) возвращает симметричное положительное определенное n-by- n матрица U'*U, где U = gallery('triw',n,alpha). Для значения по умолчанию alpha = -1, A(i,j) = min(i,j)-2, и A(i,i) = i.

Свойства:

  • Для alpha = -1, одно из собственных значений A является маленьким, который отличается многими порядками величины по сравнению с остальными собственными значениями.

'neumann'

Описание: Сингулярная матрица из дискретной задачи Неймана (разреженная матрица)

Синтаксис:

  • A = gallery('neumann',n) возвращает разреженную n-by- n сингулярная, строковая диагонально доминирующая матрица, возникающая в результате дискретизации задачи Неймана с обычным пятиточечным оператором на регулярной сетке. Аргументы в n должно быть идеальным квадратным целым числом. A разрежен и имеет одномерное ядро с пространством null ones(n,1).

  • A = gallery('neumann',[m n]) возвращает идентичную матрицу, но с размером m*n-by- m*n. Аргументы m и n должны быть положительными целыми числами, где m должно быть больше 1.

'normaldata'

Описание: Массив случайным образом выбранных чисел из стандартного нормального (Гауссова) распределения

Синтаксис:

  • A = gallery('normaldata',[m,n,...],k) возвращает m-by- nоколо-... массивы направленности A. Элементы A являются случайной выборкой чисел из стандартного нормального распределения. k является случайным seed и должно быть целым значением в интервале [0, 2^32-1]. Вызывающие gallery('normaldata',...) с различными значениями k возвращает различные массивы. Повторные вызовы в gallery('normaldata',...) с тем же вектором размера [m,n,...] и то же значение k всегда возвращает тот же массив.

    При любом вызове gallery('normaldata',...) можно подставить отдельные входы m,n,... для входного параметра вектора размера [m,n,...]. Для примера, gallery('normaldata',[1,2,3,4],5) эквивалентно gallery('normaldata',1,2,3,4,5).

  • [A1,A2,...,Am] = gallery('normaldata',[m,n,...],k) возвращает несколько m-by- nоколо-... массивы A1, A2..., Am содержащие различные значения.

  • [A1,A2,...,Am] = gallery('normaldata',[m,n,...],k,typename) создает массивы с элементами типа typename. typename должно быть либо 'double'(по умолчанию) или 'single'.

Читайте также: randn | rng

'orthog'

Описание: Ортогональные и почти ортогональные матрицы

Синтаксис:

  • A = gallery('orthog',n,k) возвращает kПервый тип матрицы порядок <reservedrangesplaceholder0>, где k > 0 возвращает точно ортогональные матрицы и k < 0 возвращает различные диагональные масштабирования ортогональных матриц.

    k = 1 (по умолчанию)

    A(i,j) = sqrt(2/(n+1)) * sin(i*j*pi/(n+1))

    Матрица собственных векторов второй разностной матрицы gallery('tridiag',n). A симметрично и ортогонально.

    k = 2

    A(i,j) = 2/(sqrt(2*n+1)) * sin(2*i*j*pi/(2*n+1))

    Симметричная и ортогональная матрица.

    k = 3

    A(r,s) = exp(2*pi*i*(r-1)*(s-1)/n) / sqrt(n)

    Комплексная матрица, которая является унитарной. A^4 является матрицей тождеств. Это в точности та же матрица, что и fft(eye(n))/sqrt(n).

    k = 4

    Стандартная матрица Хельмерта: сочетание нижней матрицы Хессенберга, чья первая строка ones(1,n)/sqrt(n).

    k = 5

    A(i,j) = sin(2*pi*(i-1)*(j-1)/n)/sqrt(n) + cos(2*pi*(i-1)*(j-1)/n)/sqrt(n)

    Симметричная матрица, возникающая в преобразовании Хартли.

    k = 6

    A(i,j) = sqrt(2/n) * cos((i-1/2)*(j-1/2)*pi/n)

    Симметричная матрица, возникающая как дискретное косинусное преобразование.

    k = -1

    A(i,j) = cos((i-1)*(j-1)*pi/(n-1))

    Чебышёвская вандермондообразная матрица, основанная на экстремме Полинома Чебышева первого рода T(n-1). Эта матрица симметрична. Каждый вектор четного столбца (строки) матрицы ортогональен каждому вектору нечетного столбца (строки), то есть A(i,:)*A(j,:)' = 0 для любых четных i и нечетные j.

    k = -2

    A(i,j) = cos((i-1)*(j-1/2)*pi/n)

    Чебышёвская вандермондообразная матрица, основанная на нулях T(n). Эта матрица имеет векторы-строки, которые ортогональны друг другу, то есть A(i,:)*A(j,:)' = 0 для i не равно j. Матрица A*A' не является матрицей тождеств, но является матрицей диагонали.

'parter'

Описание: Parter матрица

Синтаксис:

  • A = gallery('parter',n) возвращает матрицу A таким образом A(i,j) = 1/(i-j+0.5).

Свойства:

  • A является матрицей Коши и Теплица.

  • Большинство сингулярных значений A очень близки к pi.

'pei'

Описание: Pei matrix

Синтаксис:

  • A = gallery('pei',n,alpha), где alpha является скаляром, возвращает симметричную матрицу alpha*eye(n) + ones(n). Значение по умолчанию для alpha является 1. Матрица сингулярна для alpha равны любому из 0 или -n.

'poisson'

Описание: Блочная трехугольная матрица из уравнения Пуассона (разреженная матрица)

Синтаксис:

  • A = gallery('poisson',n) возвращает разреженную блоком трехугольную матрицу порядка <reservedrangesplaceholder0> в результате дискретизации уравнения Пуассона оператором с 5 точками на n-by- n mesh.

'prolate'

Описание: Пролят матрица

Синтаксис:

  • A = gallery('prolate',n,alpha) возвращает n-by- n проляция матрицы параметром alpha. Это симметричная, плохо обусловленная матрица Теплица. Если 0 < alpha < 0.5, затем A положительно определено.

Свойства:

  • Собственные значения A отличаются, лежат в интервале (0,1)и, как правило, объединяются вокруг 0 и 1.

  • Значение по умолчанию w составляет 0,25.

'randcolu'

Описание: Случайная матрица с нормированными столбцами и заданными сингулярными значениями

Синтаксис:

  • A = gallery('randcolu',n) генерирует случайный n-by- n матрица с нормированными столбцами модуля 2-норма и случайными сингулярными значениями от равномерного распределения.

    A'*A является корреляционной матрицей подобной формы, произведенной gallery('randcorr',n). Собственные значения последних распределены равномерно, в то время как для первых квадратные корни собственных значений распределены равномерно.

  • A = gallery('randcolu',x), где x является вектором длины n (n > 1), создает случайное n-by- n матрица с сингулярными значениями, заданными вектором x. Векторная x должны иметь неотрицательные элементы, сумма квадратов которых n. Эта матрица также имеет нормированные столбцы модуля 2-нормы.

  • A = gallery('randcolu',__,m), где m >= n, создает m-by- n матрица.

  • A = gallery('randcolu',__,m,k) предоставляет дополнительные опции, основанные на k.

    k = 0 (по умолчанию)

    diag(x) первоначально подвергается случайному двустороннему ортогональному преобразованию, а затем применяется последовательность вращений Гивенса.

    k = 1

    Начальное преобразование опущено. Это быстрее при генерации тестовой матрицы, но получившаяся матрица обычно имеет много нулевых значений.

'randcorr'

Описание: Матрица случайной корреляции с заданными собственными значениями

Синтаксис:

  • A = gallery('randcorr',n) является случайным n-by- n матрица корреляции со случайными собственными значениями из равномерного распределения. Матрица корреляции является симметричной положительной полуопределенной матрицей с 1на диагонали.

  • A = gallery('randcorr',x) производит матрицу случайной корреляции с собственными значениями, заданными вектором x, где length(x) > 1. Векторная x должны иметь неотрицательные элементы, сумма которых length(x).

  • A = gallery('randcorr',x,k) предоставляет дополнительные опции, основанные на k.

    k = 0 (по умолчанию)

    Диагональная матрица собственных значений сначала подвергается случайному ортогональному преобразованию подобия, а затем применяется последовательность вращений Гивенса [6].

    k = 1

    Начальное преобразование опущено. Это быстрее при генерации тестовой матрицы, но получившаяся матрица обычно имеет много нулевых значений.

См. также: corrcoef

'randhess'

Описание: Случайная, ортогональная верхняя матрица Хессенберга

Синтаксис:

  • A = gallery('randhess',n) возвращает n-by- n вещественная, случайная, ортогональная верхняя матрица Хессенберга.

  • A = gallery('randhess',x) создает A непередаваемое использование элементов x как параметры. x должен быть вектор действительных чисел с длиной n, где n > 1.

    В обоих случаях матричные A построен из продукта n-1 Вращений Givens.

'randjorth'

Описание: Случайная J-ортогональная матрица

Синтаксис:

  • A = gallery('randjorth',n) создает случайную n-by- n J-ортогональная матрица A который удовлетворяет отношению A'*J*A = J (такие матрицы также известны как гиперболические). Здесь, J = blkdiag(eye(ceil(n/2)),-eye(floor(n/2))), и cond(A) = sqrt(1/eps).

  • A = gallery('randjorth',n,m), для положительных целых чисел n и m, создает случайный (n+m) -by- (n+m) J-ортогональная матрица A. Здесь, J = blkdiag(eye(n),-eye(m)), и cond(A) = sqrt(1/eps).

  • A = gallery('randjorth',n,m,alpha,symm,method)

    использует следующие необязательные входные параметры:

    • alpha - Задайте cond(A) = alpha, где alpha должно быть равно или больше 1.

    • symm - Применить симметрию или нет A. является несимметричным, если скаляр symm равен 0. A симметрично, если скаляр symm равен 1 или ненулевым.

    • method - Выбор вызова qr для выполнения базовых ортогональных преобразований или нет qr. не вызывается, если скаляр method равен 0. qr вызывается, если скаляр method равен 1 или ненулевым. Вызов qr намного быстрее метода по умолчанию для создания J-ортогональной матрицы для больших размерностей.

'rando'

Описание: Случайная матрица, составленная из элементов -1, 0 или 1

Синтаксис:

  • A = gallery('rando',n,k) возвращает случайное n-by- n матрица. Входной параметр k определяет элементы матрицы из одного из следующих дискретных распределений.

    k = 1 (по умолчанию)

    A(i,j) = 0 или 1 с равной вероятностью.

    k = 2

    A(i,j) = -1 или 1 с равной вероятностью.

    k = 3

    A(i,j) = -1, 0, или 1 с равной вероятностью.

  • A = gallery('rando',[n m],k) возвращает случайное n-by- m матрица.

'randsvd'

Описание: Случайная матрица с предварительно назначенными сингулярными значениями

Синтаксис:

  • A = gallery('randsvd',n,kappa,mode,kl,ku) возвращает полосчатую (мультидиагональ) случайную матрицу порядка <reservedrangesplaceholder0> с числом обусловленности cond(A) = abs(kappa), который должен быть больше или равен 1. Если n является двухэлементным вектором, A имеет размер n(1)-by- n(2).

    Значение по умолчанию kappa является sqrt(1/eps). Режим распределения mode определяет сингулярные значения матрицы.

    Аргументы kl и ku задайте количество нижних и верхних задних диагоналей в A, соответственно. Если они опущены, создается полная матрица с kl = n-1 и ku = kl. Если только kl присутствует, ku по умолчанию является kl.

    Доступные значения mode перечислены ниже.

    mode = 1

    Одно большое сингулярное значение, которое равно 1 (а остальные сингулярные значения равны 1/abs(kappa)).

    mode = 2

    Одно маленькое сингулярное значение, которое равно 1/abs(kappa) (а остальные сингулярные значения равны 1).

    mode = 3 (по умолчанию)

    Геометрически распределенные сингулярные значения.

    mode = 4

    Арифметически распределенные сингулярные значения.

    mode = 5

    Случайные сингулярные значения с равномерно распределенным логарифмом.

    mode < 0

    Если mode является -1, -2, -3, -4, или -5, затем randsvd лечит mode как abs(mode). Однако в исходной матрице сингулярных значений порядок диагональных элементов меняется от малого к большому вместо от большого к маленькому.

    В особом случае kappa <= 1, A - симметричная, положительно определенная матрица со cond(A) = -kappa и собственные значения, распределенные согласно mode. В этом случае аргументы kl и ku игнорируются.

  • A = gallery('randsvd',n,kappa,mode,kl,ku,method) определяет, как выполняются расчеты для генерации тестовой матрицы. method = 0 является значением по умолчанию, в то время как method = 1 использует альтернативный метод для вызова qr это намного быстрее для больших размерностей, хотя это использует больше операций с плавающей точкой в секунду.

'redheff'

Описание: Матрица Redheffer таковых и нулей

Синтаксис:

  • A = gallery('redheff',n) возвращает n-by- n матрица 0и 1определяется как A(i,j) = 1, если j = 1 или если i делит j, и A(i,j) = 0 в противном случае.

Свойства:

  • A имеет n-floor(log2(n))-1 собственных значений, которые равны 1.

  • A имеет действительное собственное значение (и его спектральный радиус), которое приблизительно sqrt(n).

  • A имеет отрицательное собственное значение, которое приблизительно -sqrt(n).

  • Оставшиеся floor(log2(n))-1 собственные значения имеют относительно небольшие модули, которые лежат внутри круга log2εn, для ε > 0 и достаточно большие n.

  • Гипотеза Римана верна тогда и только тогда, когда |det(A)|=O(n1/2+ε) для каждого ε > 0.

  • Барретт и Джарвис догадываются, что floor(log2(n)) из малых собственных значений находятся внутри модуля круга abs(z) = 1. Доказательство этой догадки, вместе с доказательством того, что некоторые собственные значения имеют тенденцию к нулю как n имеет тенденцию к бесконечности, даст новое доказательство теоремы о простых числах [7].

'riemann'

Описание: Матрица, связанная с гипотезой Римана

Синтаксис:

  • A = gallery('riemann',n) возвращает n-by- n матрица, для которой гипотеза Римана верна тогда и только тогда, когда

    det(A)=O(n!n1/2+ε)

    для каждого ε > 0 [8].

    Матрица Римана определяется A = B(2:n+1,2:n+1), где B(i,j) = i-1 если i делит j, и B(i,j) = -1 в противном случае.

Свойства:

  • Каждое собственное значение e(i) удовлетворяет abs(e(i)) <= m-1/m, где m = n+1.

  • Собственные значения также удовлетворяют i <= e(i) < i+1, самое большее с m-sqrt(m) исключения.

  • Все целые числа в интервале (m/3,m/2] являются собственными значениями.

'ris'

Описание: Res matrix

Синтаксис:

  • A = gallery('ris',n) возвращает симметричное n-by- n Матрица Ханкеля с элементами A(i,j) = 0.5/(n-i-j+1.5). Собственные значения A кластер вокруг π/2 и - π/2.

'sampling'

Описание: Несимметричная матрица с плохо обусловленными целыми собственными значениями

Синтаксис:

  • A = gallery('sampling',x), где x является вектором длины n, возвращает n-by- n несимметричная матрица. Элементы матрицы A(i,j) = x(i)/(x(i)-x(j)) для i ~= j и A(j,j) равен сумме недиагональных элементов в столбце j. Если x является скаляром, тогда A = gallery('sampling',1:x).

Свойства:

  • A имеет целочисленные собственные значения 0:n-1 которые плохо обусловлены.

  • Для собственных значений 0 и n-1, соответствующие собственные векторы x и ones(n,1), соответственно.

  • A имеет свойство, которое A(i,j) + A(j,i) = 1 для i ~= j.

  • Явные формулы доступны для левых собственных векторов A.

  • Частный случай этой матрицы появился в теории дискретизации, где ее правые собственные векторы, если они правильно нормализованы, дают вероятности включения условного проекта выборки Пуассона [9].

'smoke'

Описание: Сложная матрица с псевдоспектром «дымовой звонок»

Синтаксис:

  • A = gallery('smoke',n) возвращает n-by- n матрица с 1находится на супердиагонали и 1 в (n,1) положение. Диагональ состоит из множества всех nпервые корни единства.

  • A = gallery('smoke',n,1) возвращает то же, что и выше, за исключением того, что элемент A(n,1) равен нулю.

Свойства:

  • Собственные значения gallery('smoke',n,1) являются ли nпервые корни единства.

  • Собственные значения gallery('smoke',n) являются ли nПервые корни времени единства 2^(1/n).

  • Псевдоспектр матричной A может быть вычислен путем нахождения минимального сингулярного значения матричной zI - A в комплексной плоскости. Здесь z представляет точки в комплексной плоскости, а I является матрицей тождеств. Псевдоспектров gallery('smoke',n) и gallery('smoke',n,1) иметь «звонок дыма» шаблонов около собственных значений.

'toeppd'

Описание: Симметричная положительная определенная матрица Теплица

Синтаксис:

  • A = gallery('toeppd',n,m,x,theta) возвращает n-by- n симметричная матрица Теплица, составленная из суммы m Матрицы Теплица (с рангом 1 или 2). x и theta являются векторами длины m. Матрица A положительно определено, если все элементы x положительны. В частности, A сгенерирован

    A = x(1)*T1 + ... + x(k)*Tk + ... + x(m)*Tm

    где Tk является n-by- n матрица, которая зависит от theta(k). Элементы Tk являются Tk(i,j) = cos(2*pi*theta(k)*(i-j)).

    По умолчанию m = n, x = rand(m,1), и theta = rand(m,1).

'toeppen'

Описание: Пятиугольная матрица Теплица (разреженная матрица)

Синтаксис:

  • A = gallery('toeppen',n,a,b,c,d,e) возвращает n-by- n разреженная пятиугольная матрица Теплица с элементами: a на второй диагонали ниже основной диагонали, b на поддиагонали, c на основной диагонали, d на супердиагонали, и e на второй диагонали выше основной диагонали, где a, b, c, d, и e являются скалярами.

    По умолчанию (a,b,c,d,e) = (1,-10,0,10,1), получая матрицу, которая была первоначально введена Рутисхаузером [10]. Эта матрица имеет собственные значения, лежащие приблизительно на кривой 2*cos(2*t) + 20*i*sin(t) в комплексной плоскости.

'tridiag'

Описание: Тридиагональная матрица (разреженная матрица)

Синтаксис:

  • A = gallery('tridiag',n) возвращает разреженную трехугольную матрицу размера n-by- n с поддиагональными элементами -1, диагональные элементы 2, и сверхдиагональные элементы -1. Эта матрица имеет собственные значения 2 + 2*cos(k*pi/(n+1)), где k = 1:n.

    Сгенерированная матрица является симметричной положительно определенной M-матрицей с действительными неотрицательными собственными значениями. Эта матрица также является отрицательной для второй матрицы различий.

  • A = gallery('tridiag',c,d,e) возвращает тридиагональную матрицу с поддиагональной c, диагональные d, и сверхдиагональные e задается векторами c, d, и e. Длина векторов c и e должен быть length(d)-1.

  • A = gallery('tridiag',n,c,d,e), где c, d, и e все скаляры, приводит к тридиагональной матрице Теплица размера n-by- n с поддиагональными элементами c, диагональные элементы d, и сверхдиагональные элементы e. Эта матрица имеет собственные значения d + 2*sqrt(c*e)*cos(k*pi/(n+1)), где k = 1:n.

'triw'

Описание: Верхняя треугольная матрица, обсуждаемая Уилкинсоном и другими

Синтаксис:

  • A = gallery('triw',n,alpha,k) возвращает верхнюю треугольную матрицу с 1 на диагонали и alphaна первом k >= 0 супердиагонали. По умолчанию alpha = -1, и k = n-1.

    The порядка <reservedrangesplaceholder0> может быть вектором с 2 элементами, в этом случае матрица n(1)-by- n(2) и верхнюю трапецию.

Свойства:

  • Для alpha = 2, число обусловленности матрицы удовлетворяет:

    cond(gallery('triw',n,2)) = cot(pi/(4*n))^2,
  • Для больших abs(alpha), cond(gallery('triw',n,alpha)) приблизительно abs(alpha)^n*sin(pi/(4*n-2)).

  • Матрица A = gallery('triw',n) становится сингулярным, когда вы добавляете -2^(2-n) к своему (n,1) элемент. Матрица также становится сингулярной, когда вы добавляете -2^(1-n) к его элементам в первом столбце.

'uniformdata'

Описание: Массив случайным образом выбранных чисел от стандартного равномерного распределения

Синтаксис:

  • A = gallery('uniformdata',[m,n,...],k) возвращает m-by- nоколо-... массивы направленности A. Элементы A являются случайной выборкой чисел из стандартного равномерного распределения. k является случайным seed и должно быть целым значением в интервале [0, 2^32-1]. Вызывающие gallery('uniformdata',...) с различными значениями k возвращает различные массивы. Повторные вызовы в gallery('uniformdata',...) с тем же вектором размера [m,n,...] и то же значение k всегда возвращает тот же массив.

    При любом вызове gallery('uniformdata',...) можно подставить отдельные входы m,n,... для входного параметра вектора размера [m,n,...]. Для примера, gallery('uniformdata',[1,2,3,4],5) эквивалентно gallery('uniformdata',1,2,3,4,5).

  • [A1,A2,...,Am] = gallery('uniformdata',[m,n,...],k) возвращает несколько m-by- nоколо-... массивы A1, A2..., Am содержащие различные значения.

  • [A1,A2,...,Am] = gallery('uniformdata',[m,n,...],k,typename) создает массивы с элементами типа typename. typename должно быть либо 'double' (по умолчанию) или 'single'.

Читайте также: rand | rng

'wathen'

Описание: Матрица Ватена (разреженная матрица)

Синтаксис:

  • A = gallery('wathen',nx,ny) возвращает разреженный, случайный, n-by- n матрица конечных элементов, где n = 3*nx*ny + 2*nx + 2*ny + 1.

    Матричные A является именно «последовательной большой матрицей» для регулярной nx-by- ny сетка из 8-узловых (serendipity) элементов в двух размерностях. A симметрично, положительно определено для любых (положительных) значений «плотности» rho(nx,ny), который выбирается случайным образом.

  • B = gallery('wathen',nx,ny,1) возвращает диагонально масштабированную матрицу, основанную на предыдущем синтаксисе, где B = diag(diag(A))\A. Собственные значения этой матрицы удовлетворяют

    0.25 <= eig(B) <= 4.5

    для любых положительных целых чисел nx и ny и любые плотности rho(nx,ny).

'wilk'

Описание: Различные матрицы, разработанные или обсуждаемые Уилкинсоном

Синтаксис:

  • [U,b] = gallery('wilk',3) возвращает верхнюю треугольную систему U*x = b иллюстрирует неточное решение.

  • [L,b] = gallery('wilk',4) возвращает нижнюю треугольную систему L*x = b, что плохо обусловлено.

  • A = gallery('wilk',5) возвращает симметричную положительно определенную матрицу A = B(1:5,2:6)*1.8144, где B = hilb(6).

  • A = gallery('wilk',21) возвращает W21+, тридиагональная матрица с парами почти одинаковых собственных значений. Для получения дополнительной информации см. раздел [11].

Входные параметры, заданные как скаляры, векторы или матрицы. Параметры P1,P2,...,Pn используемый в синтаксисе вызова, зависит от семейства матриц, как описано в таблице в matrixname.

Тип данных сгенерированных тестовых матриц, заданный как вектор символов или строковый скаляр.

  • Если 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 которые сгенерированы синтаксисом вызова, зависят от семейства матриц, как описано в таблице в matrixname. В большинстве случаев gallery функция возвращает только одну матрицу в качестве выходного аргумента.

Выходная матрица или многомерный массив.

Ссылки

[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.

См. также

| | | | | | | | |

Представлено до R2006a