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)¶ -
Создаёт матрицу Чау — сингулярную нижнюю верхнетреугольную матрицу Топлица.
-
:
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)¶ -
Создаёт матрицу Форсайтта (возмущённый блок Жордана).
-
:
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)¶ -
Создать матрицу Gear.
-
:
g =gallery("grcar", n)¶ -
:
g =gallery("grcar", n, k)¶ -
Создать матрицу Теплица с чувствительными собственными значениями.
-
:
a =gallery("hanowa", n)¶ -
:
a =gallery("hanowa", n, d)¶ -
Создать матрицу, собственные значения которой лежат на вертикальной линии в комплексной плоскости.
-
:
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)¶ -
Создать матрицу Теплица Каца-Мердока-Сеге.
-
:
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, std = 1).
Первый входной параметр - это матрица размеров, описывающая размер выходных данных. Размеры также могут быть введены в виде аргументов, разделенных запятыми.
Входной параметр j - это целочисленный индекс в диапазоне [0, 2^32-1]. Значения выходной матрицы всегда точно совпадают (воспроизводимость) для заданного входного размера и индекса j.
Последний необязательный аргумент определяет класс результирующей матрицы. Возможные значения для class:
"single","double". Значение по умолчанию -"double".
-
:
q =gallery("orthog", n)¶ -
:
q =gallery("orthog", n, k)¶ -
Создать ортогональные и почти ортогональные матрицы.
-
:
a =gallery("parter", n)¶ -
Создать матрицу Партера (матрица Теплица с сингулярными значениями, близкими к пи).
-
:
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)¶ -
Создать симметричную матрицу Ханкеля.
-
:
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)¶ -
Создаёт пентадиагональную матрицу Тоepлица (разреженную).
-
:
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, 232-1]. Значения выходной матрицы всегда точно одинаковы (воспроизводимость) для заданного входного размера и индекса j.
Последний необязательный аргумент определяет класс результирующей матрицы. Возможные значения для class:
"single",("wathen", nx, ny). По умолчанию"double".
-
:
[a, b] =gallery("wilk", n)¶ -
Создаёт различные специфические матрицы, разработанные/обсуждавшиеся Уилкинсоном.
-
:
h =hadamard(n)¶ -
Создаёт матрицу Адамара (Hn) размера n-на-n.
Размер n должен иметь вид 2k * 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/v9.2.0/Famous-Matrices.html