exponenta event banner

галерея

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

Описание

пример

[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. Матрица Гркара - несимметричная матрица Тёплица с -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около-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-разложения матрицы 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

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

Затем вычислите матрицу Домохозяина 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

Наконец, вычислите матрицу Домохозяина 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 является верхней треугольной матрицей. Поскольку матрицы Домохозяера являются невольными (матрицы равны их собственным инверсам), 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

В этом примере показано распределение собственных значений из выборки из 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

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 путем сложения матрицы равномерно распределенных случайных чисел. Установите начальное значение генератора случайных чисел в значение по умолчанию. Добавление случайной матрицы с элементами в интервале от 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. 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около-n матрица с целочисленными записями, такими, что A^2 = 2^(n-1)*eye(n).

Свойства:

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

'cauchy'

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

Синтаксис:

  • A = gallery('cauchy',x,y) возвращает nоколо-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около-n. Аргумент k, которая может принять значение 0 (по умолчанию) или 1, определяет символ выходной матрицы.

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

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

Свойства:

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

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

'chebvand'

Описание: Вандермондоподобная матрица для многочленов Чебышёва

Синтаксис:

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

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

'chow'

Описание: Сингулярная Toeplitz нижняя матрица Гессенберга

Синтаксис:

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

    A = + δI

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

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

Свойства:

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

'circul'

Описание: Матрица циркулятора

Синтаксис:

  • A = gallery('circul',v) возвращает nоколо-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около-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 своим абсолютным значением и заменяет каждый внедиагональный элемент отрицательным из наибольшего абсолютного значения внедиагональных элементов в одной строке.

Свойства:

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

'condex'

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

Синтаксис:

  • A = gallery('condex',n,k,alpha) возвращает матрицу контрпримера оценщику номера условия. Он принимает скалярный параметр alpha (по умолчанию - 100) и возвращает матрицу размера nоколо-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около-n матрица с циклически повторяющимися столбцами, где один цикл состоит из столбцов, определенных randn(n,k). Таким образом, ранг матрицы A не может превышать k, и k должен быть скаляром. Аргумент k скаляр со значением по умолчанию round(n/4), и ему не нужно равномерно делить n.

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

'dorr'

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

Синтаксис:

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

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

'dramadah'

Описание: Матрица нулей и единиц

Синтаксис:

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

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

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

    k = 2

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

    k = 3

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

'fiedler'

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

Синтаксис:

  • A = gallery('fiedler',x), где x - длина n вектор, возвращает значение nоколо-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около-n матрица равна блоку Джордана с собственным значением lambda, за исключением того, что A(n,1) = alpha. Значения скаляров по умолчанию alpha и lambda являются sqrt(eps) и 0соответственно.

Свойства:

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

'frank'

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

Синтаксис:

  • A = gallery('frank',n,k) возвращает матрицу Франка размера nоколо-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около-n матрица с A(i,j) равно gcd(i,j).

Свойства:

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

'gearmat'

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

Синтаксис:

  • A = gallery('gearmat',n,i,j) возвращает значение nоколо-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 + 2a),..., sin (w + na)], где a и w даны в [4].

'grcar'

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

Синтаксис:

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

'hanowa'

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

Синтаксис:

  • A = gallery('hanowa',n,alpha) возвращает 2около-2 блочная матрица с четырьмя n/2около-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' является матрицей домохозяев. Матрица домохозяев 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один n- вектор столбца элемента и возвращает v и beta такой, что H*x = s*e1. В этом выражении e1 является первым столбцом eye(n), abs(s) = norm(x), и H = eye(n) - beta*v*v' является матрицей домохозяев.

    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) является единичной матрицей, которая не является матрицей домохозяев.

'integerdata'

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

Синтаксис:

  • A = gallery('integerdata',imax,[m,n,...],k) возвращает mоколо-nоколо-... множество A чьи значения являются выборкой из равномерного распределения по целым числам 1:imax. k является случайным начальным числом и должно быть целым числом в интервале [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около-nоколо-... множество A чьи значения являются выборкой из равномерного распределения по целым числам imin:imax.

  • [A1,A2,...,Am] = gallery('integerdata',[imin imax],[m,n,...],k) возвращает несколько mоколо-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около-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около-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около-n Иорданский блок с собственным значением lambda. Значение по умолчанию для lambda является 1.

'kahan'

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

Синтаксис:

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

    Если n является двухэлементным вектором, то A является n(1)около-n(2); в противном случае A является nоколо-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около-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около-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)около-n матрица формы [ones(1,n); mu*eye(n)]. Аргумент mu по умолчанию: sqrt(eps).

Свойства:

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

'lehmer'

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

Синтаксис:

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

Свойства:

  • A совершенно неотрицательно.

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

  • Заказ n удовлетворяет n <= cond(A) <= 4*n*n.

'leslie'

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

Синтаксис:

  • A = gallery('leslie',x,y) является nоколо-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около-n матрица, собственные значения которой вещественны и плавно распределены в интервале [-2*n-3.5,-4.5].

Свойства:

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

  • Матрица аналогична симметричной тридиагональной матрице B с теми же диагональными входами и с внедиагональными входами 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около-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'

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

Синтаксис:

  • A = gallery('moler',n,alpha) возвращает симметричное положительное определенное nоколо-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около-n сингулярная, диагонально доминирующая матрица в результате дискретизации задачи Неймана обычным пятиточечным оператором на регулярной сетке. Аргумент n должно быть совершенным квадратным целым числом. A разрежен и имеет одномерное нулевое пространство с нулевым вектором ones(n,1).

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

'normaldata'

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

Синтаксис:

  • A = gallery('normaldata',[m,n,...],k) возвращает mоколо-nоколо-... множество A. Элементы A представляют собой случайную выборку чисел из стандартного нормального распределения. k является случайным начальным числом и должно быть целым числом в интервале [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около-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третий тип матрицы порядка n, где 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'

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

Синтаксис:

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

Свойства:

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

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

'pei'

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

Синтаксис:

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

'poisson'

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

Синтаксис:

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

'prolate'

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

Синтаксис:

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

Свойства:

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

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

'randcolu'

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

Синтаксис:

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

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

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

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

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

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

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

    k = 1

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

'randcorr'

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

Синтаксис:

  • A = gallery('randcorr',n) является случайным nоколо-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около-n вещественная, случайная, ортогональная верхняя матрица Гессенберга.

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

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

'randjorth'

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

Синтаксис:

  • A = gallery('randjorth',n) создает случайный nоколо-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околоn+mJ-ортогональная матрица 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около-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около-m матрица.

'randsvd'

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

Синтаксис:

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

    det (A) = O (n! n 1/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'

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

Синтаксис:

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

'sampling'

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

Синтаксис:

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

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

    где Tk является nоколо-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около-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около-n с субдиагональными элементами -1, диагональные элементы 2, и сверхдиагональные элементы -1. Эта матрица имеет собственные значения 2 + 2*cos(k*pi/(n+1)), где k = 1:n.

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

  • 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 все скаляры, дает тридиагональную матрицу Toeplitz размера nоколо-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.

    Заказ n может быть 2-элементным вектором, в этом случае матрица n(1)около-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около-nоколо-... множество A. Элементы A представляют собой случайную выборку чисел из стандартного равномерного распределения. k является случайным начальным числом и должно быть целым числом в интервале [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около-nоколо-... множества A1, A2, ..., Am содержит различные значения.

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

См. также: rand | rng

'wathen'

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

Синтаксис:

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

    Матрица A является именно «непротиворечивой массовой матрицей» для обычного nxоколо-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 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.

См. также

| | | | | | | | |

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