16.4 Famous Matrices

Last-modified: 2025-03-30 (日) 20:14:46

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)
チェビシェフ多項式の Vandermonde のような行列を作成します。

: 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)

逆行列に大きな整数要素を持つ (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)

ギアマトリックスを作成します。

: 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)

householderマトリックスを作成します。

: 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 ]の範囲内になります。

2 番目の入力は、出力のサイズを表す次元の行列です。次元は、コンマで区切られた引数として入力することもできます。

入力j は、[0, 2^32-1] の範囲の整数インデックスです。出力行列の値は、指定されたサイズの入力とjインデックスに対して常にまったく同じ (再現性) になります。

最後のオプション引数は、 結果の行列のクラスを決定します。class に指定できる値: 、、、、、 int32 "uint8"" 、、。 デフォルトは です。 "uint16""uint32""int8""int16""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)

Kahan 行列 (上台形) を作成します。

: a = gallery ("kms", n)

: a = gallery ("kms", n, rho)

Kac-Murdock-Szego テプリッツ行列を作成します。

: b = gallery ("krylov", a)

: b = gallery ("krylov", a, x)

: b = gallery ("krylov", a, x, j)

クリロフ行列を作成します。

: a = gallery ("lauchli", n)

: a = gallery ("lauchli", n, mu)

Lauchli 行列 (長方形) を作成します。

: a = gallery ("lehmer", n)

Lehmer 行列 (対称正定値) を作成します。

: t = gallery ("lesp", n)

実数の敏感な固有値を持つ三角対角行列を作成します。

: a = gallery ("lotkin", n)

ロトキン行列を作成します。

: a = gallery ("minij", n)

対称正定値行列MIN(i,j)を作成します。

: a = gallery ("moler", n)

: a = gallery ("moler", n, alpha)

Moler 行列 (対称正定値) を作成します。

: [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インデックスに対して常にまったく同じ (再現性) になります。

最後のオプション引数は、結果の行列のクラスを決定します。クラスの可能な値: "single"、"double"。デフォルトは です"double"。

: q = gallery ("orthog", n)

: q = gallery ("orthog", n, k)

直交行列とほぼ直交行列を作成します。

: a = gallery ("parter", n)

パート行列 (π 付近の特異値を持つテプリッツ行列) を作成します。

: p = gallery ("pei", n)

: p = gallery ("pei", n, alpha)

Pei マトリックスを作成します。

: 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)

リーマン予想に関連する Redheffer の 0 と 1 の行列を作成します。

: 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)

5 対角 Toeplitz 行列 (スパース) を作成します。

: 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)

Kahan、Golub、Wilkinson によって議論された上三角行列を作成します。

: a = gallery ("uniformdata", [M N …], j)

: a = gallery ("uniformdata", M, N, …, j)

: a = gallery ("uniformdata", …, "class")

標準均一分布(範囲[0,1])からのランダムサンプルを含む行列を作成します。

最初の入力は、出力のサイズを表す次元の行列です。次元は、コンマで区切られた引数として入力することもできます。

入力j は、[0, 2^32-1] の範囲の整数インデックスです。出力行列の値は、指定されたサイズの入力とjインデックスに対して常にまったく同じ (再現性) になります。

最後のオプション引数は、結果の行列のクラスを決定します。クラスの可能な値: "single"、"double"。デフォルトは です"double"。

: a = gallery ("wathen", nx, ny)

: a = gallery ("wathen", nx, ny, k)

Wathen マトリックスを作成します。

: [a, b] = gallery ("wilk", n)

ウィルキンソンが考案/議論したさまざまな特定のマトリックスを作成します。

: h = hadamard (n)

n行n列のアダマール行列 (Hn) を構築します。

サイズ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 を掛けても、行列はアダマール行列のままになります。

See also: compan, hankel, toeplitz.

: h = hankel (c)

: h = hankel (c, r)

最初の列cと(オプションで)最後の行rから構築されたハンケル行列を返します。

cの最後の要素がrの最初の要素と同じでない 場合は、 cの最後の要素が使用されます。2 番目の引数が省略された場合は、 cと同じサイズのゼロのベクトルであると見なされます 。

mベクトルcとnベクトルrから形成されるハンケル行列の要素は、

H(i,j) = c(i+j-1),  i+j-1 <= m;
H(i,j) = r(i+j-m),  otherwise

See also: hadamard, toeplitz.

: 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

See also: 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)

where

        k  /k+n-1\   /n\
p(k) = -1  (       ) (   )
           \ k-1 /   \k/

この式の妥当性は、両方の式の二項係数を階乗として展開することで簡単に確認できます。コーシー行列の理論によって、より直接的に導くことができます。JW Demmel 著『 Applied Numerical Linear Algebra』92 ページを参照してください。

inv (hilb (n))これを、ヒルベルト行列の悪条件とコンピュータの浮動小数点演算の有限精度の影響を受ける の数値計算と比較してください。

See also: hilb.

: M = magic (n)

n行n列の魔方陣 を作成します。

1:n^2魔方陣は、行の合計、列の合計、対角の合計がすべて同じ値になるように 整数を配置したものです。

注意: n は3 以上のスカラーである必要があります 。3 未満のnを指定した場合、magic は非魔方陣、または退化した魔方陣 1 と [] を返します。

: P = pascal (n)

: P = pascal (n, t)

= 0の場合、 n次のパスカル行列を返しますt 。

tのデフォルト値は 0 です。

のときt = 1、パスカル行列の擬似下三角コレスキー因子を返します(一部の列の符号は負になる場合があります)。この行列はそれ自身の逆行列、つまり です 。 pascal (n, 1) ^ 2 == eye (n)

の場合t = -1、対角要素に正の値を持つ真のコレスキー因子を返します。

の場合t = 2、 の転置および並べ替えられたバージョンを返します 。これは単位行列の 3 乗根です。つまり、 です。 pascal (n, 1)pascal (n, 2) ^ 3 == eye (n)

See also: chol.

: R = rosser ()

Rosser 行列を返します。

これは、固有値アルゴリズムを評価するために使用される難しいテスト ケースです。

See also: wilkinson, eig.

: T = toeplitz (c)

: T = toeplitz (c, r)

最初の列cと、オプションで最初の行rから構築された Toeplitz 行列を返します。

2 番目の引数が省略された場合、最初の行は最初の列と同じになります。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)

See also: hankel.

: V = vander (c)

: V = vander (c, n)

最後から 2 番目の列がcである Vandermonde 行列を返します 。

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

See also: polyfit.

: W = wilkinson (n)

n 次のウィルキンソン行列を返します。

ウィルキンソン行列は対称かつ三角行列で、ほぼ等しいが正確には等しくない固有値のペアを持ちます。これらは、固有値ソルバーの動作とパフォーマンスをテストするのに役立ちます。

See also: rosser, eig.