16.4 Известные матрицы
Следующие функции возвращают известные формы матриц.
- : 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) ¶
-
Создать матрицу Чоу — вырожденную нижнетреугольную матрицу Тоepлицa.
- : c = gallery ("circul", v) ¶
-
Создать циркулярную матрицу.
- : a = gallery ("clement", n) ¶
- : a = gallery ("clement", n, 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) ¶
-
Создать матрицу (0, 1), обратная которой имеет большие целочисленные значения.
- : a = gallery ("fiedler", c) ¶
-
Создать симметричную матрицу Фидлера.
- : a = gallery ("forsythe", n) ¶
- : a = gallery ("forsythe", n, alpha) ¶
- : a = gallery ("forsythe", n, alpha, lambda) ¶
-
Создать матрицу Форсайтa (возмущённый блок Жордана).
- : 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) ¶
-
Создать матрицу Тоepлицa с чувствительными собственными значениями.
- : 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) ¶
-
Создать матрицу Ханкеля с факториальными элементами.
- : u = gallery ("kahan", n) ¶
- : u = gallery ("kahan", n, theta) ¶
- : u = gallery ("kahan", n, theta, pert) ¶
-
Создать матрицу Кахана (верхняя трапециевидная).
- : a = gallery ("kms", n) ¶
- : a = gallery ("kms", n, rho) ¶
-
Создать матрицу Каца-Мёрдока-Зеге (матрица Тоepлицa).
- : 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) ¶
-
Создать матрицу Партера (матрица Тоepлицa с сингулярными значениями, близкими к pi).
- : 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, 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/Правильность этой формулы легко проверить, раскрыв биномиальные коэффициенты в обеих формулах через факториалы. Ее можно вывести более непосредственно из теории матриц Коши. См. Дж. В. Деммель, Прикладная численная линейная алгебра, стр. 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.
© 1996–2023 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/v8.1.0/Famous-Matrices.html