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为0表示矩阵A是正定的并且R给出了因子分解。否则p将具有正值。
如果使用三个输出参数矩阵调用A必须是稀疏的,并且将保持稀疏性的行/列置换应用于矩阵A在因子分解之前。那是R是的因子分解A(Q,Q)
使得
R' * R = Q' * A * Q.
保持稀疏性的置换通常以矩阵形式返回。然而,给定可选标志位"vector"
, Q将变为向量,使得
R' * R = A(Q, Q).
一般来说,较低的三角因子分解对于稀疏矩阵来说明显更快。
详见: hess, lu, qr, qz, schur, svd, ichol, cholinv, chol2inv, cholupdate, cholinsert, choldelete, cholshift.
Ainv =
chol2inv (R)
¶从Cholesky分解中反演一个对称的正定方阵,R.
请注意R应该是具有正对角化元素的上三角矩阵。chol2inv (U)
提供inv (R'*R)
但比使用inv
快得多.
[R1, info] =
cholupdate (R, u, op)
¶向上或向下更新Cholesky因子分解。
给定一个上三角矩阵R和列向量u,尝试确定另一个上三角矩阵R1使得
"+"
"-"
如果op是"-"
, info设置为
如果info如果不存在,则在情况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,:)'=u ,andp=[1:j-1,j+1:n+1] ,.u(j) ,应该是正的。
在返回时,info设置为
如果info如果不存在,则在情况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, circshift(i:j, 1), j+1:n]
if i < j
或
p = [1:j-1, circshift(j:i,-1), i+1:n]
if j < i.
详见: chol, cholupdate, cholinsert, choldelete.
H =
hess (A)
¶[P, H] =
hess (A)
¶计算矩阵的Hessenberg分解A.
Hessenberg分解是P * H * P' = A
这里的P是一个平方次矩阵(P' * P = I
,使用复共轭转置)且H是上海森堡(H(i, j) = 0 forall i > j+1)
.
Hessenberg分解通常被用作单位值计算的第一步,但也有其他应用(见Golub、Nash和Van Loan,IEEE Transactions on Automatic Control,1979)。
[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
。这通常导致更稀疏和更稳定的因子分解。
一个额外的输入参数thresh可以给出定义枢轴阈值的。thresh可以是标量,在这种情况下,它定义UMFPACK对称和非对称情况下的枢轴误差范围。如果thresh是一个2元素向量,那么第一个元素定义了不对称的枢轴误差范围UMFPACK且第二个元素定义了对称策略。默认情况下,spparms
定义的值使用([0.1,0.001])。
给定字符串参数"vector"
, lu
返回的值P和Q作为向量值,A(P,:) = L * U
和R(P,:)
* A(:,Q) = L * U
.
当用两个返回变量调用时,返回上三角矩阵和下三角矩阵的置换形式,使得A = L * U
。当用一个返回变量y调用时,返回从LAPACK 子程序返回的矩阵。如果输入矩阵是稀疏的,那么矩阵L嵌入到U以给出相似于满秩形式的返回值。对于满秩矩阵和稀疏矩阵,lu
丢失置换信息。
[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.’ ,这里的x和y列向量(秩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 (…, "econ")
¶[…] =
qr (…, "vector")
¶[…] =
qr (…, "matrix")
¶[…] =
qr (…, 0)
¶计算A的QR因子分解,使用标准LAPACK 子程序。
QR因子分解是
Q * R = A
这里的Q是正交矩阵,并且R是上三角矩阵。
例如,给定矩阵A = [1, 2; 3, 4]
,
[Q, R] = qr (A)
返回
Q = -0.31623 -0.94868 -0.94868 0.31623 R = -3.16228 -4.42719 0.00000 -0.63246
相乘后返回原始矩阵
Q * R ⇒ 1.0000 2.0000 3.0000 4.0000
如果只指定一个返回值,则为R(如果A稀疏),或者X,使得R = triu (X)
(如果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.44721 R = -4.47214 -3.13050 0.00000 0.44721 P = 0 1 1 0
如果输入矩阵A是稀疏的,稀疏的QR因子分解使用SPQR或CXsparse(如果SPQR不可用)。因为矩阵Q通常是一个满秩矩阵,建议只指定一个返回值R。在这种情况下,计算可避免构造Q且返回稀疏R使得R = chol (A' * A)
.
如果A是稠密的,额外传入一个矩阵B并指定两个返回值,此时qr
返回C,这里的C = Q' * B
。这允许将最小二乘近似A \ B
计算为
[C, R] = qr (A, B) X = R \ C
如果A是稀疏MxN矩阵,额外传入一个矩阵B,则可能有一个或两个返回值。如果一个返回值X被指定并且M<N,则X是A \ B
,的最小2-范数解。如果M>=N,X是A \ B
,的最小二乘逼近。如果指定两个返回值,C和R与稠密情况下的含义相同(C稠密R稀疏)。应该首选带有一个返回参数的版本,因为它使用较少的内存,并且可以更好地处理缺秩矩阵。
如果最后一个参数是字符串"vector"
然后P是变异向量(的列A)而不是置换矩阵。在这种情况下,定义关系是:
Q * R = A(:, P)
然而,默认情况是返回一个置换矩阵,这可以通过使用的最后一个参数来明确指定"matrix"
.
当可选参数是字符串"econ"
时,返回经济因子。如果原始矩阵A具有大小MxN和M>N,则经济因子分解将仅计算R中的N行和Q中的N列并省略R中的零.如果M≤N,则经济因子分解和标准因子分解之间没有区别。
如果可选参数是数字0,那么qr
的行为就像"econ"
和"vector"
参数均给定一样。
注意:这个语法仍然被接受,但不推荐而且将来可能被移除。改用"econ"
。
背景:QR因子分解在最小二乘问题的求解中有应用
min norm (A*x - b)
用于超定方程组(即,A是高而薄的矩阵)。
置换QR因子分解[Q, R, P] = qr (A)
允许构造span (A)
的正交基.
详见: chol, hess, lu, qz, schur, svd, qrupdate, qrinsert, qrdelete, qrshift.
[Q1, R1] =
qrupdate (Q, R, u, v)
¶在给定更新向量或矩阵的情况下更新QR因子分解。
给定实矩阵或复矩阵的QR因子分解A= Q*R , Q为酉矩阵且R为上梯形矩阵,返回的QR因子分解A+ u*v’ ,这里的u和v是列向量(秩1更新)或具有相等列数的矩阵(秩k更新)。请注意,后一种情况是作为一系列的rank-1更新实现的;因此,对于足够大的k,从头开始重新计算因子分解将更快、更准确。
所提供的QR因子分解可以是完全的(Q是方阵)或经济的(R是方阵)。
[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如果orient是"col"
),或[A(1:j-1,:);x;A(:,j:n)]的QR因子分解 ,这里的x是要插入的行向量A如果orient是"row"
).
的默认值orient是"col"
如果orient是"col"
, u可以是矩阵,并且j矩阵QR因子分解的一个索引向量B使得B(:,j) ,给予u和B(:,j) = [] ,给予A注意,后一种情况是作为k个插入的序列来实现的;因此,对于足够大的k,从头开始计算因子分解将更快、更准确。
如果orient是"col"
,所提供的QR因子分解可以是完全的(Q是方阵)或经济的(R是方阵)。
如果orient是"row"
,需要完全因子分解。
[Q1, R1] =
qrdelete (Q, R, j, orient)
¶更新给定行或列的QR因子分解以从原始因子矩阵中删除。
给定实矩阵或复矩阵A= Q*R 的QR因子分解, Q为酉矩阵且R为上梯形矩阵,返回[A(:,1:j-1),U,A(:,j:n)]的QR因子分解 ,这里的u是要插入的列向量A,如果orient是"col"
),或[A(1:j-1,:);X;A(:,j:n)]的QR因子分解 ,这里的x是行,orient是"row"
).orient的默认值是"col"
.
如果orient是"col"
, j可以是导致矩阵的QR因子分解的索引向量B使得A(:,j) = [] ,给予B。请注意,后一种情况是通过删除k个序列来实现的;因此,对于足够大的k,从头开始重新计算因子分解将更快、更准确。
如果orient是"col"
,所提供的QR因子分解可以是完全的(Q是方阵)或经济的(R是方阵)。
如果orient是"row"
,需要完全因子分解。
[Q1, R1] =
qrshift (Q, R, i, j)
¶更新QR因子分解,给定要在原始因子矩阵中移动的列的范围。
给定实矩阵或复矩阵的QR因子分解A= Q*R , Q为酉矩阵且R为上梯形矩阵,返回的QR分解A(:,p) ,其中p是置换
p = [1:i-1, circshift(i:j, 1), j+1:n]
if i < j
或
p = [1:j-1, circshift(j:i,-1), i+1:n]
if j < i.
[AA, BB, Q, Z, V, W] =
qz (A, B)
¶[AA, BB, Q, Z, V, W] =
qz (A, B, opt)
¶计算广义特征值问题的QZ分解。
广义特征值问题定义为
A x=lambda B x
函数有两种调用形式:
[AA, BB, Q, Z, V, W] = qz (A, B)
计算复QZ分解、广义特征向量和广义特征值。
AA = Q * A * Z, BB = Q * B * Z A * V * diag (diag (BB)) = B * V * diag (diag (AA)) diag (diag (BB)) * W' * A = diag (diag (AA)) * W' * B
具有AA和BB上部三角形,以及Q和Z单一的。矩阵V和W分别包含右广义特征向量和左广义特征向量。
[AA, BB, Q, Z, V, W] = qz (A, B, opt)
这里的opt自变量必须等于"real"
或"complex"
。如果等于"complex"
,则此调用形式等效于第一个只有两个inputarguments的调用形式。
如果opt等于"real"
,则计算实QZ分解。特别地,AA仅保证是对角线上具有1乘1和2乘2块的准上三角矩阵,并且Q和Z是正交的。只有当AA是上三角的(即,当所有广义特征值都是实数时,在这种情况下实数和复数QZ重合)。
注意qz
执行置换平衡,但不执行缩放(详见balance
),这可能导致比eig
。选择输出参数的顺序是为了与兼容MATLAB.
对于特征值, 用 ordeig
函数基于
结果矩阵 AA 和 BB 计算.
详见: eig, gsvd, balance, chol, hess, lu, qr, qzhess, schur, ordeig.
[aa, bb, q, z] =
qzhess (A, B)
¶计算矩阵笔的Hessenberg三角分解(A, B)
,返回aa = q * A * z
,bb = q * B * z
具有q和z正交的。
例如
[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 = Diagonal Matrix 1 0 0 1
Hessenberg三角分解是Moler和Stewart的QZ分解算法的第一步。
算法取自Golub和Van Loan,Matrix Computations, 2nd edition.
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是上三角矩阵。的特征值A和S)的对角线元素S.如果矩阵A是实,那么计算实Schur分解,其中矩阵U是正交的,并且S是块的上三角矩阵,块的大小最大2 x 2
沿着对角线。
实数矩阵的默认值是实数Schur分解。可以通过传递标志位来强制进行复数分解"complex"
.
根据的值,特征值可选opt按对角线排序:
opt = "a"
将具有负实部的特征值移动到S的前导块.助记符:"a"
是代数Riccati方程,这种排序是有用的。
opt = "d"
将幅度小于1的特征值移动到S的前导块.助记符:"d"
是离散代数Riccati方程,这种排序是有用的。
opt = "u"
无序。没有特定的特征值排序(默认)。
U的前k列始终跨越A-不变量空间,对应于S的k前导特征值.
详见: rsf2csf, ordschur, ordeig, lu, chol, hess, qr, qz, svd, eig.
[U, T] =
rsf2csf (UR, TR)
¶转换实的伪三角Schur形式TR到复上三角Schur形式T.
请注意,以下关系成立:
UR * TR * UR' = U * T * U'
和U' * U
是单位矩阵I。
还要注意的是U和T不是唯一的。
详见: schur.
[UR, SR] =
ordschur (U, S, select)
¶重排序实Schur因子分解(U,S)使用获得schur
函数,使得所选择的特征值出现在伪三角Schur矩阵的左上对角线块中。
逻辑向量select沿S的对角线指定所选特征值。
例如,给定矩阵A = [1, 2; 3, 4]
,及其Schurdecomposition
[U, S] = schur (A)
返回
U = -0.82456 -0.56577 0.56577 -0.82456 S = -0.37228 -1.00000 0.00000 5.37228
可以对分解进行重新排序,使正特征值位于左上角,方法如下:
[U, S] = ordschur (U, S, [0,1])
[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, Q和Z满足:
AA = Q * A * Z, BB = Q * B * Z
这里的ordqz
函数计算酉变换QR和ZR使得AA和BB的对角线上的特征值的阶已更改。得到的重新排序矩阵AR和BR满足:
AR = QR * A * ZR, BR = QR * B * ZR
函数可以用调用keyword选择的左上角块中的特征值的自变量AR和BR以以下方式:
"S"
, "udi"
small:前导块具有所有|lambda1.
"B"
, "udo"
big:领先区块拥有所有|lambda| ≥ 1
"-"
, "lhp"
负实部:前导块在开左半平面上具有所有特征值
"+"
, "rhp"
非负实部:前导块在闭右半平面上具有所有特征值
如果指定一个逻辑向量select而不指定关键字,ordqz
函数对所有特征值k
进行重新排序到左侧块使得select(k)
为真。
注意:关键字与qr
中的关键字兼容.
lambda =
ordeig (A)
¶lambda =
ordeig (A, B)
¶按伪三角矩阵在矩阵中的出现顺序返回其特征值A.
伪三角矩阵A通常是Schur分解的结果。如果传入第二个参数B,则该对A, B的广义特征值按矩阵A-lambda*B
出现的顺序返回。这对A, B通常是QZ分解的结果。
angle =
subspace (A, B)
¶确定矩阵扫描的两个子空间之间A和B的最大主角.
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和V,例如
svd (hilb (3))
返回
ans = 1.4083189 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.00000 0.12233 0.00000 0.00000 0.00000 0.00269 v = -0.82704 0.54745 0.12766 -0.45986 -0.52829 -0.71375 -0.32330 -0.64901 0.68867
当给出不为0的第二自变量时,svd
返回经济大小的组合,消除不必要的U或V的行或列.
如果第二个参数恰好为0,则分解的选择基于矩阵A。如果A行数多于列数,则返回经济大小的分解,否则计算常规分解。
算法注释:当计算完全分解(除了奇异值之外还有左奇异矩阵和右奇异矩阵)时,可以选择LAPACK 中的两个子程序。Octave使用的默认子程序是gesvd
。另一种选择是gesdd
,其速度快5倍,但可能使用更多的内存并且对于某些输入矩阵可能不准确。还有第三个程序gejsv
,适用于在极端规模下获得更好的精度。详见svd_driver
的文档以获取有关选择驱动的更多信息。
val =
svd_driver ()
¶old_val =
svd_driver (new_val)
¶old_val =
svd_driver (new_val, "local")
¶查询或设置基础LAPACK 的svd
使用的驱动程序.
目前已知的值是"gesdd"
, "gesvd"
和"gejsv"
。默认为"gesvd"
.
当从具有"local"
参数的函数内部调用时,则该变量会为函数及其调用的任何子程序在本地进行更改。退出函数时将恢复原始变量值。
算法注释:LAPACK 库子程序gesvd
和gesdd
只有在计算完全奇异值分解(左奇异矩阵和右奇异矩阵以及奇异值)时才不同。当仅计算奇异值时,以下讨论不相关。
更新的gesdd
子程序是基于一个Divide and Conquer算法,该算法比替代品gesvd
算法快5倍,它是基于QR分解的。然而,新算法可能使用更多的内存。对于MxN输入矩阵,内存使用是O(min(M,N)^2)阶,而替代品是O(max(M,N))阶。
例程gejsv
使用预处理的Jacobi SVD算法。不像在gejsv
里面的gesvd
和gesdd
,在某些极端情况下,不存在可能污染准确性的双向校准步骤。而且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)
¶计算豪斯霍尔德反射向量housv以反射x作为第j主子列,
(I - beta*housv*housv')x = norm (x)*e(j) if x(j) < 0, (I - beta*housv*housv')x = -norm (x)*e(j) if x(j) >= 0
输入
向量
索引到向量
零的阈值(通常应该是数字0)
输出(见Golub和Van Loan):
如果beta=0,则不需要应用反射(zer设置为0)
豪斯霍尔德向量
[u, h, nu] =
krylov (A, V, k, eps1, pflg)
¶构造块Krylov子空间的正交基u。
块Krylov子空间具有以下形式:
[v a*v a^2*v ... a^(k+1)*v]
该构造采用Householder反射,以防止正交性的损失。
如果V是一个向量,并且h包含Hessenberg矩阵,则a*u == u*h+rk*ek'
,其中rk = a*u(:,k)-u*h(:,k)
且ek'
是向量[0, 0, …, 1]
的长度k。否则h没有意义。
如果V是一个向量,并且k大于length (A) - 1
且h包含Hessenberg矩阵,使得a*u == u*h
.
nu的值是Krylov子空间跨度的维数(基于eps1).
如果b是一个向量,且k大于m-1,则h包含A的Hessenberg分解.
可选参数eps1是零的阈值。默认值为1e-12。
如果可选参数pflg为非零时,行旋转用于改进数值行为。默认值为0。
参考文献:A.Hodel,P.Misra,Partial Pivoting in the Computation of Krylov Subspaces of Large Sparse Systems,第42届IEEE决策与控制会议论文集,2003年12月。
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2