18.3矩阵分解

 
: R = chol (A)
: [R, p] = chol (A)
: [R, p, Q] = chol (A)
: [R, p, Q] = chol (A, "vector")
: [L, …] = chol (…, "lower")
: [R, …] = chol (…, "upper")

计算Cholesky因子的上限,R,的实对称复埃尔米特正定矩阵A.

Cholesky因子的上限R通过使用矩阵的上三角部分来计算A定义为

R * R= A.

使命感chol使用可选upper标志具有相同的行为。相比之下,使用可选lower旗帜chol返回使用矩阵的下三角部分计算的下三角因子分解A,使得

L * L = A.

使用一个输出参数调用chol如果矩阵失败A不是肯定的。注意,如果矩阵A不是实对称复埃尔米特,则下三角部分被认为是上三角部分的(复共轭)转置,或反之亦然,给定lower旗帜

使用两个或多个输出参数调用</p>符号矩阵是否A是肯定的并且chol不会失败。的零值</p>表示矩阵A是正定的并且R给出了因子分解。否则</p>将具有正值。

如果使用三个输出参数矩阵调用A必须是稀疏的,并且将保持稀疏性的行/列排列应用于矩阵A在因子分解之前。那是R是的因子分解A(Q,Q)使得

R * R= Q * A * Q.

保持稀疏性的排列通常以矩阵形式返回。然而,给定可选标志向量, Q将变为向量,使得

R * R= A(Q, Q).

一般来说,较低的三角因子分解对于稀疏矩阵来说明显更快。

详见: hess, lu, qr, qz, 舒尔, svd, 伊科尔, cholinv, chol2inv, cholupdate, cholinsert, choldelete, cholshift.

 
: Ainv = cholinv (A)

计算对称正定矩阵的逆A使用Cholesky因子分解。

详见: chol, chol2inv, inv.

 
: Ainv = chol2inv (R)

从Cholesky分解中反演一个对称的正定方阵,R.

请注意R应该是具有正对角化元素的上三角矩阵。chol2inv(U)提供inv(R*R)但比使用快得多inv.

详见: chol, cholinv, inv.

 
: [R1, info] = cholupdate (R, u, op)

更新或降低Cholesky因子分解的日期。

给定一个上三角矩阵R和列向量u,尝试确定另一个上三角矩阵R1使得

  • R1’*R1= R’*R+ u*u如果op+
  • R1’*R1= R’*R- u*u如果op-

如果op-, 信息设置为

  • 0,如果向下日期成功,
  • 1如果R’*R- u*u’不是肯定的,
  • 2如果R是单数。

如果信息如果不存在,则在情况1和情况2中会打印错误消息。

详见: chol, cholinsert, choldelete, cholshift.

 
: R1 = cholinsert (R, j, u)
: [R1, info] = cholinsert (R, j, u)

更新给定行或列的Cholesky因子分解以插入原始因子矩阵。

给定实对称或复埃尔米特正定矩阵的Cholesky因子分解A= R’*R, R上三角,返回的Cholesky因子分解A1,其中A1(p,p)=A,A1(:,j)=A1(j,:)'=uandp=[1:j-1,j+1:n+1].u(j)应该是积极的。

在返回时,信息设置为

  • 0,如果插入成功,
  • 1如果A1不是肯定的,
  • 2如果R是单数。

如果信息如果不存在,则在情况1和情况2中会打印错误消息。

详见: chol, cholupdate, choldelete, cholshift.

 
: R1 = choldelete (R, j)

更新Cholesky因子分解,给定要从原始因子矩阵中删除的行或列。

给定实对称或复埃尔米特正定矩阵的Cholesky因子分解A= R’*R, R上三角,返回A(p,p)的Cholesky因子分解,其中p=[1:j-1,j+1:n+1].

详见: chol, cholupdate, cholinsert, cholshift.

 
: R1 = cholshift (R, i, j)

更新Cholesky因子分解,给定要在原始因子矩阵中移动的列的范围。

给定实对称或复埃尔米特正定矩阵的Cholesky因子分解A= R’*R, R上三角,返回的Cholesky因子分解A(p,p),其中p是排列
p=[1:i-1,shift(i:j,1),j+1:n]如果< j

p=[1:j-1,移位(j:i,-1),i+1:n]如果j< .

详见: chol, cholupdate, cholinsert, choldelete.

 
: H = hess (A)
: [P, H] = hess (A)

计算矩阵的Hessenberg分解A.

Hessenberg分解是P * H * P = A这里的P是一个平方次矩阵(P * P,使用复合共轭四移位)和H是上海森堡(H(i,j)=0(对于所有i>j+1).

Hessenberg分解通常被用作单位值计算的第一步,但也有其他应用(见Golub、Nash和Van Loan,IEEE Transactions on Automatic Control,1979)。

详见: eig, chol, lu, qr, qz, 舒尔, svd.

 
: [L, U] = lu (A)
: [L, U, P] = lu (A)
: [L, U, P, Q] = lu (S)
: [L, U, P, Q, R] = lu (S)
: […] = lu (S, thresh)
: y = lu (…)
: […] = lu (…, "vector")

计算的LU分解A.

如果A已满,则从中执行子程序LAPACK 使用,如果A那么是稀疏的UMFPACK使用。

根据可选的返回值,结果以排列的形式返回P例如,给定矩阵A= [1, 2; 3, 4],

[L, U, P]=lu(A)

退货

L=1.00000 0.00000 0.33333 1.00000 u=3.00000 4.00000 0.00000 0.66667 p=0 1 1 0

矩阵不需要是正方形的。

当用两个或三个输出自变量和稀疏输入矩阵调用时,lu不尝试执行保持稀疏性的列排列。使用第四个输出参数调用,即保持稀疏性的列转换Q返回,从而P * A * Q= L * U。这是首选调用的方式lu具有稀疏输入矩阵。

用第五输出自变量和稀疏输入矩阵调用,lu尝试使用比例因子R在输入矩阵上,使得P* (R\ A) * Q= L * U这通常导致更稀疏和更稳定的因子分解。

一个额外的输入参数脱粒可以给出定义枢转阈值的。脱粒可以是标量,在这种情况下,它定义UMFPACK对称和非对称情况下的枢轴公差。如果脱粒是一个2元素向量,那么第一个元素定义了不对称的枢转公差UMFPACK第二种是对称策略。默认情况下,从定义的值spparms使用([0.1,0.001])。

给定字符串参数向量, lu返回的值PQ作为向量值,A(P,:) = L * UR(P,:)* A(:,Q) = L * U.

使用两个输出参数,返回上三角矩阵和下三角矩阵的排列形式,使得A= L * U。带有一个输出参数y,然后从返回的矩阵LAPACK 返回子程序。如果输入矩阵是稀疏的,那么矩阵L嵌入到U以给出类似于完整大小写的返回值。对于全矩阵和稀疏矩阵,lu丢失术语信息。

详见: 亮度更新, ilu, chol, hess, qr, qz, 舒尔, svd.

 
: [L, U] = luupdate (L, U, x, y)
: [L, U, P] = luupdate (L, U, P, x, y)

给定实矩阵或复矩阵的LU因子分解A= L*U, L下部单元梯形和U上梯形,返回的LU分解A+ x*y.’这里的xy列向量(秩1更新)或列数相等的矩阵(秩k更新)。

可选地,可以通过提供行排列(枢轴)矩阵来使用行枢轴更新P; 在这种情况下,将返回更新的置换矩阵。请注意,如果L, U, P是一个枢轴LU因子分解,从lu:

[L, U, P]=lu(A);

则的因子分解A+x*y.可以作为

[L1, U1]=lu(L, U, P*x, y)

[L1, U1, P1]=lu(L, U, P, x, y)

第一种形式使用非点动算法,速度更快,但稳定性较差。第二种形式使用了一种较慢的数据透视算法,这更具稳定性。

矩阵情况作为秩1更新的序列来完成;因此,对于足够大的k,从头开始重新计算重构将更快、更准确。

详见: lu, cholupdate, qrupdate.

 
: [Q, R] = qr (A)
: [Q, R, P] = qr (A)
: X = qr (A) # non-sparse A
: R = qr (A) # sparse A
: X = qr (A, B) # sparse A
: [C, R] = qr (A, B)
: […] = qr (…, 0)
: […] = qr (…, "econ")
: […] = qr (…, "vector")
: […] = qr (…, "matrix")

计算的QR因子分解A,使用标准LAPACK 子程序。

QR因子分解是

Q * R= A

这里的Q是正交矩阵,并且R是上三角矩阵。

例如,给定矩阵A= [1, 2; 3, 4],

[Q, R]=qr(A)

退货

Q=  -0.31623  -0.94868  -0.94868   0.31623R=  -3.16228  -4.42719   0.00000  -0.63246

相乘后返回原始矩阵

Q * R⇒     1.0000   2.0000     3.0000   4.0000

如果只指定一个返回值,则为R如果A稀疏,或者十、,使得R=triu(十、)如果A已满。(注意:与大多数命令不同,当指定多个值时,单个返回值不是第一个返回值。)

如果第三个输出P被指定,则qr计算置换QR因子分解

Q * R= A * P

这里的Q是正交矩阵,R是上三角矩阵,并且P是置换矩阵。

如果A是稠密的,置换QR因子分解具有的对角项的附加性质R按递减幅度排序。换句话说,abs(diag(R))将按从大到小的顺序排列。

如果A是稀疏的,P是列的填充减少排序A。在这种情况下,的对角线条目R不是按大小递减排序的。

例如,给定矩阵A= [1, 2; 3, 4],

[Q, R, P]=qr(A)

退货

Q=  -0.44721  -0.89443  -0.89443   0.44721R=  -4.47214  -3.13050   0.00000   0.44721P=   0  1   1  0

如果输入矩阵A是稀疏的,稀疏的QR因子分解是通过使用SPQRCXsparse(例如,如果SPQR不可用)。因为矩阵Q通常是一个完整的矩阵,建议只指定一个返回值R。在这种情况下,计算避免了的构造Q并返回稀疏R使得R=chol(A * A).

如果A是稠密的,一个额外的矩阵B并指定两个返回值,然后qr退货C这里的C= Q * B。这允许的最小二乘近似A\ B计算为

[C, R]=qr(A, B)十、= R\ C

如果A是稀疏MxN矩阵和附加矩阵B如果已应用,则可能有一个或两个返回值。如果一个返回值十、被指定并且M<N,则十、是的最小2-范数解A\ B如果M>=N,十、是的最小二乘逼近A\ B如果指定两个返回值,CR与稠密情况下的含义相同(C密度大R稀疏)。应该首选带有一个返回参数的版本,因为它使用较少的内存,并且可以更好地处理缺k矩阵。

如果最后一个参数是字符串向量然后P是变异向量(的列A)而不是排列矩阵。在这种情况下,定义关系是:

Q * R= A(:, P)

然而,默认情况是返回一个排列矩阵,这可以通过使用的最后一个参数来明确指定矩阵.

如果最后一个参数是标量0或字符串经济,返回经济因子。如果原始矩阵A具有大小MxN和M>N,则经济因子分解将仅计算中的NrowsR和中的N列Q并省略中的零R.如果M≤N,则经济因子分解和标准因子分解之间没有区别。当计算经济因子分解和Aisdense,输出P总是向量而不是矩阵。如果A稀疏,输出P是一个稀疏排列矩阵。

背景:QR因子分解在最小二乘问题的求解中有应用

最小范数(A*x-b)

对于超定方程组(即。,A是高而薄的矩阵)。

置换QR因子分解[Q, R, P]=qr(A)允许构造的正交基跨度(A).

详见: chol, hess, lu, qz, 舒尔, svd, qrupdate, qrinsert, qrdelete, qrshift.

 
: [Q1, R1] = qrupdate (Q, R, u, v)

在给定更新向量或矩阵的情况下更新QR因子分解。

给定实矩阵或复矩阵的QR因子分解A= Q*R, Q酉和R上梯形,返回的QR因子分解A+ u*v这里的uv是列向量(秩1更新)或具有相等列数的矩阵(秩k更新)。请注意,后一种情况是作为一系列的rank-1更新完成的;因此,对于足够大的k,从头开始重新计算因子分解将更快、更准确。

所提供的QR因子分解可以是完全的(Q是平方)或经济的(R是平方)。

详见: qr, qrinsert, qrdelete, qrshift.

 
: [Q1, R1] = qrinsert (Q, R, j, x, orient)

更新给定行或列的QR因子分解以插入原始因子矩阵。

给定实矩阵或复矩阵的QR因子分解A= Q*R, Q酉和R上梯形,返回[A(:,1:j-1)xA(:,j:n)]的QR因子分解这里的u是要插入的列向量A如果朝向col),或[A(1:j-1,:);x;A(:,j:n)]的QR因子分解这里的x是要插入的行向量A如果朝向一行).

的默认值朝向col如果朝向col, u可以是矩阵,并且j矩阵QR因子分解的一个索引向量B使得B(:,j)给予u和B(:,j) = []给予A注意,后一种情况是作为k个插入的序列来完成的;因此,对于足够大的k,从头开始计算因子分解将更快、更准确。

如果朝向col,所提供的QR因子分解可以是满的(Q是平方)或节省的(R是平方)。

如果朝向一行,需要完全因子分解。

详见: qr, qrupdate, qrdelete, qrshift.

 
: [Q1, R1] = qrdelete (Q, R, j, orient)

更新给定行或列的QR因子分解以从原始因子矩阵中删除。

给定实矩阵或复矩阵的QR因子分解A= Q*R, Q酉和R上梯形,返回[A(:,1:j-1),U,A(:,j:n)]的QR因子分解这里的u是要插入的列向量A如果朝向col),或[A(1:j-1,:);X;A(:,j:n)]的QR因子分解这里的x是一排朝向一行).的默认值朝向col.

如果朝向col, j可以是导致矩阵的QR因子分解的索引向量B使得A(:,j) = []给予B请注意,后一种情况是作为k个删除的序列来完成的;因此,对于足够大的k,从头开始重新计算因子分解将更快、更准确。

如果朝向col,所提供的QR因子分解可以是满的(Q是平方)或节省的(R是平方)。

如果朝向一行,需要完全因子分解。

详见: qr, qrupdate, qrinsert, qrshift.

 
: [Q1, R1] = qrshift (Q, R, i, j)

更新QR因子分解,给定要在原始因子矩阵中移动的列的范围。

给定实矩阵或复矩阵的QR因子分解A= Q*R, Q酉和R上梯形,返回的QR分解A</p>,其中p是排列
p=[1:i-1,shift(i:j,1),j+1:n]如果< j

p=[1:j-1,移位(j:i,-1),i+1:n]如果j< .

详见: qr, qrupdate, qrinsert, qrdelete.

 
: [AA, BB, Q, Z, V, W] = qz (A, B)
: [AA, BB, Q, Z, V, W] = qz (A, B, opt)

计算广义特征值问题的QZ分解。

广义特征值问题定义为

A x=lambdaB x

函数有两种调用形式:

  1. [AA, BB, Q, Z, 五、, W, lambda]=qz(A, B)

    计算复QZ分解、广义特征向量和广义特征值。

    
    AA= Q * A * Z, BB= Q * B * Z
    A * 五、*diag(diag(BB)) = B * 五、*diag(diag(AA))diag(diag(BB)) * W * A=diag(diag(AA)) * W * B
    
    

    具有AABB上部三角形,以及QZ单一的。矩阵五、W分别包含右广义特征向量和左广义特征向量。

  2. [AA, BB, Z{, lambda}]=qz(A, B, opt)

    这个opt自变量必须等于真实的复杂的。如果等于复杂的,则此调用形式等效于第一个只有两个inputarguments的调用形式。

    如果opt等于真实的,则计算出真实的QZ分解。特别地,AA仅保证是对角线上具有1乘1和2乘2块的准上三角矩阵,并且QZ是正交的。只有当AA是上三角的(即,当所有广义本征值都是实数时,在这种情况下实数和复数QZ重合)。

笔记qz执行排列平衡,但不执行缩放(详见balance),这可能导致比eig。选择输出参数的顺序是为了与兼容MATLAB.

详见: eig, 广义奇异值分解, balance, chol, hess, lu, qr, qzhess, 舒尔.

 
: [aa, bb, q, z] = qzhess (A, B)

计算矩阵笔的Hessenberg三角分解(A, B),返回aa= q * A * z,bb= q * B * z具有qz正交的。

例如

[aa,bb,q,z]=qzhess([1,2;3,4],[5,6;7,8])⇒ aa=-3.02244-4.41741 0.92998 0.69749⇒ bb=-8.60233-9.99730 0.00000-0.23250⇒ q=-0.58124-0.81373-0.81373 0.58124⇒ z=对角矩阵1 0 0 1

Hessenberg三角分解是Moler和Stewart的QZ分解算法的第一步。

算法取自Golub和Van Loan,矩阵计算,第2版.

详见: lu, chol, hess, qr, qz, 舒尔, svd.

 
: S = schur (A)
: S = schur (A, "real")
: S = schur (A, "complex")
: S = schur (A, opt)
: [U, S] = schur (…)

计算的Schur分解A.

正方阵的Schur分解A定义为

S= U * A * U

这里的U是酉矩阵(U* U是身份)和S是上三角矩阵。的特征值AS)的对角线元素S.如果矩阵A是真实的,那么计算真实的Schur分解,其中矩阵U是正交的,并且S是块的上三角矩阵,块的大小最大2 x 2沿着对角线。

实数矩阵的默认值是实数Schur分解。可以通过传递标志来强制进行复杂分解复杂的.

根据的值,特征值可选地沿着对角线排序opt:

opt

将具有负实部的特征值移动到的前导块S.助记符:a对于代数Riccati方程,这种排序是有用的。

optd

将幅度小于1的特征值移动到的前导块S.助记符:d对于离散代数Riccati方程,这种排序是有用的。

optu

无序。没有特定的特征值排序(默认)。

领先的k的列U始终跨越A-不变量空间对应于k的前导特征值S.

详见: rsf2csf, 填字机, ordeig, lu, chol, hess, qr, qz, svd, eig.

 
: [U, T] = rsf2csf (UR, TR)

转换实的上拟三角形Schur形式TR到复上三角Schur形式T.

请注意,以下关系成立:

UR * TR * UR = U * T * UU * U是单位矩阵I。

还要注意的是UT不是唯一的。

详见: 舒尔.

 
: [UR, SR] = ordschur (U, S, select)

重排序实Schur因子分解(U,S)使用获得舒尔函数,使得所选择的特征值出现在拟三角Schur矩阵的左上对角线块中。

逻辑向量opt指定所选特征值沿S的对角线。

例如,给定矩阵A= [1, 2; 3, 4],及其Schurdecomposition

[U, S]=舒尔(A)

返回

U=  -0.82456  -0.56577   0.56577  -0.82456S=  -0.37228  -1.00000   0.00000   5.37228

可以对分解进行重新排序,使正本征值位于左上角,方法如下:

[U, S]=单词搅拌器(U, S, [0,1])

详见: 舒尔, ordeig, ordqz.

 
: [AR, BR, QR, ZR] = ordqz (AA, BB, Q, Z, keyword)
: [AR, BR, QR, ZR] = ordqz (AA, BB, Q, Z, select)

重新排序广义特征值问题的QZ分解。

广义特征值问题定义为

A x=lambdaB x

它的广义Schur分解是使用qz算法:

[AA, BB, Q, Z]=qz(A, B)

这里的AA, BB, QZ完成


AA= Q * A * Z, BB= Q * B * Z

这个ordqz函数计算酉变换QRZR使得特征值在的对角线上的阶AABB已更改。得到的重新排序矩阵应收账BR完成:


应收账= QR * A * ZR, BR= QR * B * ZR

函数可以用调用关键字选择的左上角块中的特征值的自变量应收账BR以以下方式:

S, udi

small:前导块具有所有|lambda1.

B, udo

big:领先区块拥有所有|lambda| ≥ 1

-, lhp

负实部:前导块在开左半平面上具有所有特征值

+, rhp

非负实部:前导块在闭右半平面上具有所有特征值

如果一个逻辑向量opt而不是关键字ordqz函数对所有特征值进行重新排序k到左侧块选择(k)是真的。

注意:关键字与中的关键字兼容qr.

详见: eig, ordeig, qz, 舒尔, 填字机.

 
: lambda = ordeig (A)
: lambda = ordeig (A, B)

按拟三角矩阵在矩阵中的出现顺序返回其特征值A.

拟三角矩阵A通常是曲面化的结果。如果使用第二个输入调用B则该对的广义特征值A, B按矩阵出现的顺序返回A-lambda*B。这对A, B通常是QZ分解的结果。

详见: 填字机, ordqz, eig, 舒尔, qz.

 
: angle = subspace (A, B)

确定矩数组扫描的两个子空间之间的最大主角AB.

 
: s = svd (A)
: [U, S, V] = svd (A)
: [U, S, V] = svd (A, "econ")
: [U, S, V] = svd (A, 0)

计算的奇异值分解A.

奇异值分解从以下关系定义

A=U*S*V

函数svd通常只返回奇异值的向量。当使用三个返回值调用时,它计算U, S五、例如

svd(hilb(3))

退货

ans=1.083189 0.1223271 0.0026873

[u,s,v]=svd(hilb(3))

退货

u=-0.82704 0.54745 0.12766-0.45986-0.52829-0.71375-0.32330-0.64901 0.68867 s=1.40832 0.00000 0.00000 0.12233 0.00000 0.000000 0.00269 v=-0.827040.54745 0.125766-0.45786-0.52829--0.71375-0.132330-0.64 901 0.688 67

当给出不为0的第二自变量时,svd返回经济大小的组合,消除不必要的行或列U五、.

如果第二个参数恰好为0,则分解的选择基于矩阵A如果A行数多于列数,则返回经济大小的分解,否则计算出规则分解。

算法注释:当计算全分解(除了奇异值之外还有左奇异矩阵和右奇异矩阵)时,可以选择中的两个子程序LAPACK 。Octave使用的默认子程序是gesvd。另一种选择是gesdd其速度快5倍,但可能使用更多的内存并且对于某些输入矩阵可能不准确。还有第三个程序gejsv,适用于在极端规模下获得更好的精度。详见的文档svd_driver有关选择驾驶员的更多信息。

详见: svd_driver, svds, eig, lu, chol, hess, qr, qz.

 
: val = svd_driver ()
: old_val = svd_driver (new_val)
: old_val = svd_driver (new_val, "local")

查询或设置基础LAPACK 使用的驱动程序svd.

目前公认的价值是gesdd, gesvdgejsv。默认为gesvd.

当从具有的函数内部调用时地方的参数,则该变量会为函数及其调用的任何子程序在本地进行更改。退出函数时将恢复原始变量值。

算法注释:LAPACK 库子程序gesvdgesdd只有在计算全奇异值分解(左奇异矩阵和右奇异矩阵以及奇异值)时才不同。当仅计算奇异值时,以下讨论不相关。

更新的gesdd子程序是基于一个Divide and Conquer算法,该算法比其他算法快5倍gesvd,它是基于QRFactorion的。然而,新算法可以使用明显更多的内存。对于MxN输入矩阵,内存使用是O(min(M,N)^2)阶,而替代是O(max(M,N))阶。

例行程序gejsv使用预处理的Jacobi SVD算法。不像gesvdgesdd在里面gejsv,在某些极端情况下,不存在可能污染准确性的双向校准步骤。而且gejsv已知在某种意义上是最佳准确的。但是,速度较慢(核心为单线程),并使用更多内存(O(min(M,N)^2+M+N))。

除了速度和内存问题之外,有些情况下,一些输入矩阵没有通过gesdd。详见当前活动的bughttps://savannah.gnu.org/bugs/?55564。在新版本的中解决这些准确性问题之前LAPACK 库,Octave中的默认驱动程序已设置为gesvd.

详见: svd.

 
: [housv, beta, zer] = housh (x, j, z)

计算户主反射向量豪斯以反映x作为身份的第j列。,

(I-β*housv*housv')x=范数(x)*e(j),如果x(j)<0,(I-贝塔*housv*housv

输入

x

向量

j

索引到向量

z

零的阈值(通常应该是数字0)

输出(见Golub和Van Loan):

贝塔

如果beta=0,则不需要应用反射(zer设置为0)

豪斯

户主向量

 
: [u, h, nu] = krylov (A, V, k, eps1, pflg)

构造正交基u块Krylov子空间的。

块Krylov子空间具有以下形式:

[v a*v a^2*v…a^(k+1)*v]

该结构体采用Householder反射,以防止正交性的损失。

如果五、是一个向量,那么h包含Hessenberg矩阵,因此a*u==u*h+rk*ek,其中rk=a*u(:,k)-u*h(:,k)ek是向量[0, 0, …, 1]的长度k否则h毫无意义。

如果五、是一个向量,并且k大于长度(A)-1然后h包含Hessenberg矩阵,使得a*u==u*h.

的值nu是Krylov子空间跨度的维数(基于eps1).

如果b是一个向量,并且k大于m-1然后h包含的Hessenberg分解A.

可选参数eps1是零的阈值。默认值为1e-12。

如果可选参数pflg为非零时,行旋转用于改进数值行为。默认值为0。

参考文献:A.Hodel,P.Misra,大型稀疏系统Krylov子空间计算中的局部旋转,第42届IEEE决策与控制会议论文集,2003年12月。


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号