16.4 Известные матрицы
Следующие функции возвращают матрицы известных видов.
-
: gallery
(name) -
: gallery
(name, args) -
Создать интересные матрицы для тестирования.
-
:
c =gallery("cauchy", x) -
:
c =gallery("cauchy", x, y) -
Создать матрицу Коши.
-
:
c =gallery("chebspec", n) -
:
c =gallery("chebspec", n, k) -
Создать спектральную матрицу дифференцирования Чебышёва.
-
:
c =gallery("chebvand", p) -
:
c =gallery("chebvand", m, p) -
Создать матрицу типа Вандермонда для полиномов Чебышёва.
-
:
a =gallery("chow", n) -
:
a =gallery("chow", n, alpha) -
:
a =gallery("chow", n, alpha, delta) -
Создать матрицу Чоу — вырожденную нижнюю матрицу Тёплица типа Хессенберга.
-
:
c =gallery("circul", v) -
Создать циркулянтную матрицу.
-
:
a =gallery("clement", n) -
:
a =gallery("clement", n, k) -
Создать трёхдиагональную матрицу с нулевыми диагональными элементами.
-
:
c =gallery("compar", a) -
:
c =gallery("compar", a, k) -
Создать матрицу сравнения.
-
:
a =gallery("condex", n) -
:
a =gallery("condex", n, k) -
:
a =gallery("condex", n, k, theta) -
Создать матрицу-контрпример для оценки обусловленности.
-
:
a =gallery("cycol", [m n]) -
:
a =gallery("cycol", n) -
:
a =gallery(…, k) -
Создать матрицу с циклически повторяющимися столбцами.
-
:
[c, d, e] =gallery("dorr", n) -
:
[c, d, e] =gallery("dorr", n, theta) -
:
a =gallery("dorr", …) -
Создать диагонально доминирующую плохо обусловленную трёхдиагональную матрицу.
-
:
a =gallery("dramadah", n) -
:
a =gallery("dramadah", n, k) -
Создать матрицу из нулей и единиц, обратная матрица которой содержит большие целые числа.
-
:
a =gallery("fiedler", c) -
Создать симметричную матрицу Фидлера.
-
:
a =gallery("forsythe", n) -
:
a =gallery("forsythe", n, alpha) -
:
a =gallery("forsythe", n, alpha, lambda) -
Создать матрицу Форсайта (возмущённый блок Жордана).
-
:
f =gallery("frank", n) -
:
f =gallery("frank", n, k) -
Создать матрицу Франка (плохо обусловленные собственные значения).
-
:
c =gallery("gcdmat", n) -
Создать матрицу наибольшего общего делителя.
c — матрица размера n на n, значения которой соответствуют наибольшему общему делителю координат, то есть c(i,j) соответствует
gcd (i, j).
-
:
a =gallery("gearmat", n) -
:
a =gallery("gearmat", n, i) -
:
a =gallery("gearmat", n, i, j) -
Создать матрицу Гира.
-
:
g =gallery("grcar", n) -
:
g =gallery("grcar", n, k) -
Создать матрицу Тёплица с чувствительными собственными значениями.
-
:
a =gallery("hanowa", n) -
:
a =gallery("hanowa", n, d) -
Создать матрицу, собственные значения которой лежат на вертикальной прямой комплексной плоскости.
-
:
v =gallery("house", x) -
:
[v, beta] =gallery("house", x) -
Создать матрицу Хаусхолдера.
-
:
a =gallery("integerdata", imax, [M N …], j) -
:
a =gallery("integerdata", imax, M, N, …, j) -
:
a =gallery("integerdata", [imin, imax], [M N …], j) -
:
a =gallery("integerdata", [imin, imax], M, N, …, j) -
:
a =gallery("integerdata", …, "class") -
Создать матрицу со случайными целыми числами в диапазоне [1, imax]. Если задано imin, числа будут находиться в диапазоне [imin, imax].
Второй входной аргумент — матрица размеров, задающая размер выходного результата. Размеры также можно передать в виде аргументов, разделённых запятыми.
Входной аргумент j — целочисленный индекс в диапазоне [0, 2^32-1]. Значения выходной матрицы всегда в точности одинаковы (воспроизводимы) для заданных размера и индекса j.
Последний необязательный аргумент задаёт класс результирующей матрицы. Возможные значения для class:
"uint8","uint16","uint32","int8","int16", int32","single","double". Значение по умолчанию —"double".
-
:
a =gallery("invhess", x) -
:
a =gallery("invhess", x, y) -
Создать обратную матрицу верхней матрицы типа Хессенберга.
-
:
a =gallery("invol", n) -
Создать инволютивную матрицу.
-
:
a =gallery("ipjfact", n) -
:
a =gallery("ipjfact", n, k) -
Создать матрицу Ханкеля с факториальными элементами.
-
:
a =gallery("jordbloc", n) -
:
a =gallery("jordbloc", n, lambda) -
Создать блок Жордана.
-
:
u =gallery("kahan", n) -
:
u =gallery("kahan", n, theta) -
:
u =gallery("kahan", n, theta, pert) -
Создать матрицу Кахана (верхнюю трапецеидальную).
-
:
a =gallery("kms", n) -
:
a =gallery("kms", n, rho) -
Создать матрицу Тёплица Каца—Мердока—Сего.
-
:
b =gallery("krylov", a) -
:
b =gallery("krylov", a, x) -
:
b =gallery("krylov", a, x, j) -
Создать матрицу Крылова.
-
:
a =gallery("lauchli", n) -
:
a =gallery("lauchli", n, mu) -
Создать матрицу Лаухли (прямоугольную).
-
:
a =gallery("lehmer", n) -
Создать матрицу Лемера (симметричную положительно определённую).
-
:
t =gallery("lesp", n) -
Создать трёхдиагональную матрицу с вещественными чувствительными собственными значениями.
-
:
a =gallery("lotkin", n) -
Создать матрицу Лоткина.
-
:
a =gallery("minij", n) -
Создать симметричную положительно определённую матрицу MIN(i,j).
-
:
a =gallery("moler", n) -
:
a =gallery("moler", n, alpha) -
Создать матрицу Молера (симметричную положительно определённую).
-
:
[a, t] =gallery("neumann", n) -
Создать вырожденную матрицу дискретной задачи Неймана (разреженную).
-
:
a =gallery("normaldata", [M N …], j) -
:
a =gallery("normaldata", M, N, …, j) -
:
a =gallery("normaldata", …, "class") -
Создать матрицу со случайными выборками из стандартного нормального распределения (среднее = 0, стандартное отклонение = 1).
Первый входной аргумент — матрица размеров, задающая размер выходного результата. Размеры также можно передать в виде аргументов, разделённых запятыми.
Входной аргумент j — целочисленный индекс в диапазоне [0, 2^32-1]. Значения выходной матрицы всегда в точности одинаковы (воспроизводимы) для заданных размера и индекса j.
Последний необязательный аргумент задаёт класс результирующей матрицы. Возможные значения для class:
"single","double". Значение по умолчанию —"double".
-
:
q =gallery("orthog", n) -
:
q =gallery("orthog", n, k) -
Создать ортогональные и почти ортогональные матрицы.
-
:
a =gallery("parter", n) -
Создать матрицу Партера (матрицу Тёплица с сингулярными числами, близкими к pi).
-
:
p =gallery("pei", n) -
:
p =gallery("pei", n, alpha) -
Создать матрицу Пея.
-
:
a =gallery("poisson", n) -
Создать блочно-трёхдиагональную матрицу из уравнения Пуассона (разреженную).
-
:
a =gallery("prolate", n) -
:
a =gallery("prolate", n, w) -
Создать пролатную матрицу (симметричную плохо обусловленную матрицу Тёплица).
-
:
h =gallery("randhess", x) -
Создать случайную ортогональную верхнюю матрицу типа Хессенберга.
-
:
a =gallery("rando", n) -
:
a =gallery("rando", n, k) -
Создать случайную матрицу с элементами -1, 0 или 1.
-
:
a =gallery("randsvd", n) -
:
a =gallery("randsvd", n, kappa) -
:
a =gallery("randsvd", n, kappa, mode) -
:
a =gallery("randsvd", n, kappa, mode, kl) -
:
a =gallery("randsvd", n, kappa, mode, kl, ku) -
Создать случайную матрицу с заранее заданными сингулярными числами.
-
:
a =gallery("redheff", n) -
Создать матрицу из нулей и единиц Редхеффера, связанную с гипотезой Римана.
-
:
a =gallery("riemann", n) -
Создать матрицу, связанную с гипотезой Римана.
-
:
a =gallery("ris", n) -
Создать симметричную матрицу Ханкеля.
-
:
a =gallery("smoke", n) -
:
a =gallery("smoke", n, k) -
Создать комплексную матрицу с псевдоспектром в форме «дымового кольца».
-
:
t =gallery("toeppd", n) -
:
t =gallery("toeppd", n, m) -
:
t =gallery("toeppd", n, m, w) -
:
t =gallery("toeppd", n, m, w, theta) -
Создать симметричную положительно определённую матрицу Тёплица.
-
:
p =gallery("toeppen", n) -
:
p =gallery("toeppen", n, a) -
:
p =gallery("toeppen", n, a, b) -
:
p =gallery("toeppen", n, a, b, c) -
:
p =gallery("toeppen", n, a, b, c, d) -
:
p =gallery("toeppen", n, a, b, c, d, e) -
Создать пятидиагональную матрицу Тёплица (разреженную).
-
:
a =gallery("tridiag", x, y, z) -
:
a =gallery("tridiag", n) -
:
a =gallery("tridiag", n, c, d, e) -
Создать трёхдиагональную матрицу (разреженную).
-
:
t =gallery("triw", n) -
:
t =gallery("triw", n, alpha) -
:
t =gallery("triw", n, alpha, k) -
Создать верхнюю треугольную матрицу, рассмотренную Каханом, Голубом и Уилкинсоном.
-
:
a =gallery("uniformdata", [M N …], j) -
:
a =gallery("uniformdata", M, N, …, j) -
:
a =gallery("uniformdata", …, "class") -
Создать матрицу со случайными выборками из стандартного равномерного распределения (диапазон [0,1]).
Первый входной аргумент — матрица размеров, задающая размер выходного результата. Размеры также можно передать в виде аргументов, разделённых запятыми.
Входной аргумент j — целочисленный индекс в диапазоне [0, 2^32-1]. Значения выходной матрицы всегда в точности одинаковы (воспроизводимы) для заданных размера и индекса j.
Последний необязательный аргумент задаёт класс результирующей матрицы. Возможные значения для class:
"single","double". Значение по умолчанию —"double".
-
:
a =gallery("wathen", nx, ny) -
:
a =gallery("wathen", nx, ny, k) -
Создать матрицу Уотена.
-
:
[a, b] =gallery("wilk", n) -
Создать различные специальные матрицы, предложенные или рассмотренные Уилкинсоном.
-
:
h =hadamard(n) -
Построить матрицу Адамара (Hn) размера n-на-n.
Размер n должен иметь вид 2^k * p, где p равно 1, 12, 20 или 28. Возвращаемая матрица нормирована, то есть
Hn(:,1) == 1иHn(1,:) == 1.Некоторые свойства матриц Адамара:
-
kron (Hm, Hn)является матрицей Адамара размера m-на-n. -
Hn * Hn' = n * eye (n). - Строки Hn ортогональны.
-
det (A) <= abs (det (Hn))для всех A, таких чтоabs (A(i, j)) <= 1. - При умножении любой строки или столбца на -1 матрица остается матрицей Адамара.
-
-
:
h =hankel(c) -
:
h =hankel(c, r) -
Вернуть матрицу Ганкеля, построенную по первому столбцу c и (необязательно) последней строке r.
Если последний элемент c не совпадает с первым элементом r, используется последний элемент c. Если второй аргумент не указан, считается, что это вектор нулей того же размера, что и c.
Матрица Ганкеля, построенная по m-мерному вектору c и n-мерному вектору r, имеет элементы
H(i,j) = c(i+j-1), i+j-1 <= m; H(i,j) = r(i+j-m), otherwise
-
:
h =hilb(n) -
Вернуть матрицу Гильберта порядка n.
Элемент i,j матрицы Гильберта определяется как
H(i, j) = 1 / (i + j - 1)
Матрицы Гильберта близки к вырожденным, поэтому их трудно обратить с помощью численных методов. Сравнение числа обусловленности случайной матрицы 5x5 с числом обусловленности матрицы Гильберта порядка 5 показывает, насколько сложна эта задача.
cond (rand (5)) ⇒ 14.392 cond (hilb (5)) ⇒ 4.7661e+05
См. также: invhilb.
-
:
hinv =invhilb(n) -
Вернуть обратную матрицу Гильберта порядка n.
Ее можно вычислить точно с помощью
(i+j) /n+i-1\ /n+j-1\ /i+j-2\ 2 A(i,j) = -1 (i+j-1)( )( ) ( ) \ n-j / \ n-i / \ i-2 / = p(i) p(j) / (i+j-1)где
k /k+n-1\ /n\ p(k) = -1 ( ) ( ) \ k-1 / \k/Корректность этой формулы легко проверить, разложив биномиальные коэффициенты в обеих формулах в факториалы. Ее можно получить более прямым путем, используя теорию матриц Коши. См. J. W. Demmel, Прикладная численная линейная алгебра, с. 92.
Сравните это с численным вычислением
inv (hilb (n)), которое страдает от плохой обусловленности матрицы Гильберта и ограниченной точности арифметики с плавающей запятой на вашем компьютере.См. также: hilb.
-
:
M =magic(n) -
Создать магический квадрат размером n-на-n.
Магический квадрат — это расположение целых чисел
1:n^2, при котором суммы элементов каждой строки, каждого столбца и каждой диагонали равны одному и тому же значению.Примечание: n должно быть скалярным значением, большим или равным 3. Если указать n меньше 3, magic вернет либо немагический квадрат, либо вырожденный магический квадрат 1 или [].
-
:
P =pascal(n) -
:
P =pascal(n, t) -
Вернуть матрицу Паскаля порядка n, если
t = 0.Значение t по умолчанию равно 0.
Если
t = 1, вернуть псевдонижний треугольный множитель Холецкого матрицы Паскаля (знаки некоторых столбцов могут быть отрицательными). Эта матрица является обратной самой себе, то естьpascal (n, 1) ^ 2 == eye (n).Если
t = -1, вернуть настоящий множитель Холецкого со строго положительными значениями на диагонали.Если
t = 2, вернуть транспонированную и переставленную версиюpascal (n, 1), являющуюся кубическим корнем из единичной матрицы. То естьpascal (n, 2) ^ 3 == eye (n).См. также: chol.
-
:
R =rosser() -
Вернуть матрицу Россера.
Это сложный тестовый пример, используемый для оценки алгоритмов вычисления собственных значений.
-
:
T =toeplitz(c) -
:
T =toeplitz(c, r) -
Вернуть матрицу Тёплица, построенную по первому столбцу c и, необязательно, первой строке r.
Если второй аргумент не указан, первая строка совпадает с первым столбцом. Если первый элемент r не совпадает с первым элементом c, используется первый элемент c.
Матрица Тёплица, или матрица с постоянными диагоналями, имеет одинаковые значения вдоль каждой диагонали. Она не обязательно должна быть квадратной, хотя часто так и бывает. Матрица Тёплица размера MxN имеет вид:
c(1) r(2) r(3) ... r(n) c(2) c(1) r(2) ... r(n-1) c(3) c(2) c(1) ... r(n-2) . . . . . . . . . . . . . . . c(m) c(m-1) c(m-2) ... c(m-n+1)
См. также: hankel.
-
:
V =vander(c) -
:
V =vander(c, n) -
Вернуть матрицу Вандермонда, предпоследний столбец которой равен c.
Если задано n, оно определяет число столбцов; в противном случае n считается равным длине c.
Матрица Вандермонда имеет вид:
c(1)^(n-1) ... c(1)^2 c(1) 1 c(2)^(n-1) ... c(2)^2 c(2) 1 . . . . . . . . . . . . . . . c(n)^(n-1) ... c(n)^2 c(n) 1См. также: polyfit.
-
:
W =wilkinson(n) -
Вернуть матрицу Уилкинсона порядка n.
Матрицы Уилкинсона симметричны и трехдиагональны; их собственные значения образуют пары почти, но не в точности равных значений. Они полезны для проверки поведения и производительности алгоритмов поиска собственных значений.
© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Famous-Matrices.html