目录
normest 函数的功能是用于估计矩阵的2-范数(Frobenius 范数)的上界。
语法
n = normest(S)
n = normest(S,tol)
[n,count] = normest(___)
说明
n = normest(S) 返回矩阵 S 的 2-范数估值。
本函数旨在主要用于稀疏矩阵,尽管也适用于大型满矩阵。
n = normest(S,tol) 使用相对误差容限 tol 而不是默认容限 1.0e-6 来估计 2-范数。
[n,count] = normest(___) 返回 2-范数估值并给出在计算中使用的幂迭代数。请将此语法与上述语法中的任何输入参数结合使用。
示例
估计稀疏矩阵的 2-范数
创建一个 5×5 稀疏对角矩阵。
S = sparse(1:5,1:5,1:5)
S =
(1,1) 1
(2,2) 2
(3,3) 3
(4,4) 4
(5,5) 5
估计矩阵 S
的 2-范数。
n = normest(S)
n = 5.0000
估计 2-范数以加快计算速度
创建一个由均匀分布的随机数组成的 1000×1000 矩阵。
rng default
S = rand(1000);
使用 norm 计算矩阵 S 的 2-范数。通过一对 tic 和 toc 调用来测量经过的时间。
tic
norm(S)
ans = 500.4856
toc
Elapsed time is 0.481935 seconds.
要加快 2-范数的计算速度,请使用 normest 与指定的容差 1.0e-4 来估计 S 的 2-范数。
tic
normest(S,1.0e-4)
ans = 500.4856
toc
Elapsed time is 0.024841 seconds.
估计 2-范数并返回幂迭代的次数
创建一个 7×7 矩阵。
S = gallery('clement',7,7)
S = 7×7
0 2.4495 0 0 0 0 0
2.4495 0 3.1623 0 0 0 0
0 3.1623 0 3.4641 0 0 0
0 0 3.4641 0 3.4641 0 0
0 0 0 3.4641 0 3.1623 0
0 0 0 0 3.1623 0 2.4495
0 0 0 0 0 2.4495 0
估计该矩阵的 2-范数,并返回在计算中使用的幂迭代的次数。
[n,count] = normest(S)
n = 6.0000
count = 4
算法
幂迭代涉及到 S 及其转置 S' 的多次相乘。执行迭代,直到两个连续的范数估计值均在指定的相对误差容限内。