国外的模板网站有哪些,郑州seo博客,贸易公司名称大全简单大气,品牌app定制开发目录
语法
说明
示例
矩阵特征值
矩阵的特征值和特征向量
排序的特征值和特征向量
左特征向量
不可对角化#xff08;亏损#xff09;矩阵的特征值
广义特征值
病态矩阵使用 QZ 算法得出广义特征值
一个矩阵为奇异矩阵的广义特征值 eig函数的功能是求取矩阵特征值…目录
语法
说明
示例
矩阵特征值
矩阵的特征值和特征向量
排序的特征值和特征向量
左特征向量
不可对角化亏损矩阵的特征值
广义特征值
病态矩阵使用 QZ 算法得出广义特征值
一个矩阵为奇异矩阵的广义特征值 eig函数的功能是求取矩阵特征值和特征向量。
语法
e eig(A)
[V,D] eig(A)
[V,D,W] eig(A)
e eig(A,B)
[V,D] eig(A,B)
[V,D,W] eig(A,B)
[___] eig(A,balanceOption)
[___] eig(A,B,algorithm)
[___] eig(___,outputForm)
说明
e eig(A) 返回一个列向量其中包含方阵 A 的特征值。
[V,D] eig(A) 返回特征值的对角矩阵 D 和矩阵 V其列是对应的右特征向量使得 A*V V*D
[V,D,W] eig(A) 还返回满矩阵 W其列是对应的左特征向量使得 W*A D*W。 特征值问题是用来确定方程 Av λv 的解其中A 是 n×n 矩阵v 是长度 n 的列向量λ 是标量。满足方程的 λ 的值即特征值。满足方程的 v 的对应值即右特征向量。左特征向量 w 满足方程 w’A λw’。
e eig(A,B) 返回一个列向量其中包含方阵 A 和 B 的广义特征值。
[V,D] eig(A,B) 返回广义特征值的对角矩阵 D 和满矩阵 V其列是对应的右特征向量使得 A*V B*V*D。
[V,D,W] eig(A,B) 还返回满矩阵 W其列是对应的左特征向量使得 W*A D*W*B。 广义特征值问题是用来确定方程 Av λBv 的解其中A 和 B 是 n×n 矩阵v 是长度 n 的列向量λ 是标量。满足方程的 λ 的值即广义特征值。对应的 v 的值即广义右特征向量。左特征向量 w 满足方程 w’A λw’B。 [___] eig(A,balanceOption)其中balanceOption 为 nobalance禁用该算法中的初始均衡步骤。balanceOption 的默认值是 balance表示启用均衡步骤。eig 函数可返回上述语法中的任何输出参数。
[___] eig(A,B,algorithm)其中algorithm 为 chol使用 B 的 Cholesky 分解计算广义特征值。algorithm 的默认值取决于 A 和 B 的属性但通常是 qz表示使用 QZ 算法。 如果 A 为埃尔米特并且 B 为埃尔米特正定矩阵则 algorithm 的默认值为 chol。
[___] eig(___,outputForm) 支持上述语法中的任何输入或输出参数并以 outputForm 指定的形式返回特征值。将 outputForm 指定为 vector 可返回列向量中的特征值指定为 matrix 可返回对角矩阵中的特征值。
示例
矩阵特征值 使用 gallery 创建一个对称正定矩阵。
A gallery(lehmer,4)
A 4×41.0000 0.5000 0.3333 0.25000.5000 1.0000 0.6667 0.50000.3333 0.6667 1.0000 0.75000.2500 0.5000 0.7500 1.0000 计算 A 的特征值。结果为一个列向量。
e eig(A)
e 4×10.20780.40780.84822.5362 或者使用 outputForm 返回对角矩阵中的特征值。
D eig(A,matrix)
D 4×40.2078 0 0 00 0.4078 0 00 0 0.8482 00 0 0 2.5362
矩阵的特征值和特征向量 使用 gallery 创建循环矩阵。
A gallery(circul,3)
A 3×31 2 33 1 22 3 1计算 A 的特征值和右特征向量。
[V,D] eig(A)
V 3×3 complex-0.5774 0.0000i 0.5774 0.0000i 0.5774 0.0000i-0.5774 0.0000i -0.2887 - 0.5000i -0.2887 0.5000i-0.5774 0.0000i -0.2887 0.5000i -0.2887 - 0.5000iD 3×3 complex6.0000 0.0000i 0.0000 0.0000i 0.0000 0.0000i0.0000 0.0000i -1.5000 0.8660i 0.0000 0.0000i0.0000 0.0000i 0.0000 0.0000i -1.5000 - 0.8660i 验证结果是否满足 A*V V*D。
A*V - V*D
ans 3×3 complex
10-14 ×-0.2220 0.0000i -0.0888 - 0.0111i -0.0888 0.0111i0.0888 0.0000i 0.0000 0.0833i 0.0000 - 0.0833i-0.0444 0.0000i -0.1110 0.0666i -0.1110 - 0.0666i 在理想情况下特征值分解可满足此关系。由于 eig 使用浮点计算执行分解那么 A*V 可最大程度接近 V*D。换言之A*V - V*D 接近但不等于 0。
排序的特征值和特征向量 默认情况下eig 并不总是返回已排序的特征值和特征向量。可以使用 sort 函数将特征值按升序排序并重新排序相应的特征向量。 计算 5×5 幻方矩阵的特征值和特征向量。
A magic(5)
A 5×517 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9[V,D] eig(A)
V 5×5-0.4472 0.0976 -0.6330 0.6780 -0.2619-0.4472 0.3525 0.5895 0.3223 -0.1732-0.4472 0.5501 -0.3915 -0.5501 0.3915-0.4472 -0.3223 0.1732 -0.3525 -0.5895-0.4472 -0.6780 0.2619 -0.0976 0.6330D 5×565.0000 0 0 0 00 -21.2768 0 0 00 0 -13.1263 0 00 0 0 21.2768 00 0 0 0 13.1263A 的特征值位于 D 的对角线上。但是特征值并未排序。 使用 diag(D) 从 D 的对角线上提取特征值然后按升序对得到的向量进行排序。sort 的第二个输出返回索引的置换向量。
[d,ind] sort(diag(D))
d 5×1-21.2768-13.126313.126321.276865.0000ind 5×123541使用 ind 对 D 的对角线元素进行重新排序。由于 D 中的特征值对应于 V 的各列中的特征向量因此还必须使用相同的索引对 V 的列进行重新排序。
Ds D(ind,ind)
Ds 5×5-21.2768 0 0 0 00 -13.1263 0 0 00 0 13.1263 0 00 0 0 21.2768 00 0 0 0 65.0000Vs V(:,ind)
Vs 5×50.0976 -0.6330 -0.2619 0.6780 -0.44720.3525 0.5895 -0.1732 0.3223 -0.44720.5501 -0.3915 0.3915 -0.5501 -0.4472-0.3223 0.1732 -0.5895 -0.3525 -0.4472-0.6780 0.2619 0.6330 -0.0976 -0.4472 (V,D) 和 (Vs,Ds) 都会生成 A 的特征值分解。A*V-V*D 和 A*Vs-Vs*Ds 的结果一致基于舍入误差。
e1 norm(A*V-V*D);
e2 norm(A*Vs-Vs*Ds);
e abs(e1 - e2)
e 1.2622e-29
左特征向量 创建一个 3×3 矩阵。 A [1 7 3; 2 9 12; 5 22 7]; 计算右特征向量 V、特征值 D 和左特征向量 W。
[V,D,W] eig(A)
V 3×3-0.2610 -0.9734 0.1891-0.5870 0.2281 -0.5816-0.7663 -0.0198 0.7912D 3×325.5548 0 00 -0.5789 00 0 -7.9759W 3×3-0.1791 -0.9587 -0.1881-0.8127 0.0649 -0.7477-0.5545 0.2768 0.6368 验证结果是否满足 W*A D*W。
W*A - D*W
ans 3×3
10-13 ×-0.0444 -0.1066 -0.0888-0.0011 0.0442 0.03330 0.0266 0.0178 在理想情况下特征值分解可满足此关系。由于 eig 使用浮点计算执行分解那么 W*A 可最大程度接近 D*W。换言之W*A - D*W 接近但不等于 0。
不可对角化亏损矩阵的特征值 创建一个 3×3 矩阵。
A [3 1 0; 0 3 1; 0 0 3]; 计算 A 的特征值和右特征向量。
[V,D] eig(A)
V 3×31.0000 -1.0000 1.00000 0.0000 -0.00000 0 0.0000D 3×33 0 00 3 00 0 3 A 包含重复特征值且特征向量非独立。这意味着 A 不可对角化因此为亏损矩阵。 尽管 A 为亏损矩阵仍验证 V 和 D 是否满足方程 A*V V*D。
A*V - V*D
ans 3×3
10-15 ×0 0.8882 -0.88820 0 0.00000 0 0 在理想情况下特征值分解可满足此关系。由于 eig 使用浮点计算执行分解那么 A*V 可最大程度接近 V*D。换言之A*V - V*D 接近但不等于 0。
广义特征值 创建两个矩阵A 和 B然后求解对组 (A,B) 的特征值和右特征向量的广义特征值问题。
A [1/sqrt(2) 0; 0 1];
B [0 1; -1/sqrt(2) 0];
[V,D]eig(A,B)
V 2×2 complex1.0000 0.0000i 1.0000 0.0000i0.0000 - 0.7071i 0.0000 0.7071iD 2×2 complex0.0000 1.0000i 0.0000 0.0000i0.0000 0.0000i 0.0000 - 1.0000i 验证结果是否满足 A*V B*V*D。
A*V - B*V*D
ans 2×20 00 0残差 A*V - B*V*D 精确为零。
病态矩阵使用 QZ 算法得出广义特征值 创建病态对称矩阵其包含的值接近计算机精度。
format long e
A diag([10^-16, 10^-15])
A 2×21.000000000000000e-16 00 1.000000000000000e-15 使用默认算法计算广义特征值和一组右特征向量。在这种情况下默认算法为 chol。
[V1,D1] eig(A,A)
V1 2×21.000000000000000e08 00 3.162277660168380e07D1 2×29.999999999999999e-01 00 1.000000000000000e00现在使用 qz 算法计算广义特征值和一组右特征向量。
[V2,D2] eig(A,A,qz)
V2 2×21 00 1D2 2×21 00 1 检查 chol 结果满足 A*V1 A*V1*D1 的程度。
format short
A*V1 - A*V1*D1
ans 2×2
10-23 ×0.1654 00 -0.6617现在检查 qz 结果满足 A*V2 A*V2*D2 的程度。
A*V2 - A*V2*D2
ans 2×20 00 0当两个矩阵均为对称矩阵时eig 默认使用 chol 算法。在这种情况下QZ 算法可返回更精确的结果。
一个矩阵为奇异矩阵的广义特征值 创建一个 2×2 单位矩阵 A 和一个奇异矩阵 B。
A eye(2);
B [3 6; 4 8]; 如果尝试用命令 [V,D] eig(B\A) 计算矩阵 B^−1A 的广义特征值则 MATLAB® 会返回错误因为 B\A 会生成 Inf 值。 在这种情况下应将上述两个矩阵传递给 eig 函数计算广义特征值和右特征向量。
[V,D] eig(A,B)
V 2×2-0.7500 -1.0000-1.0000 0.5000D 2×20.0909 00 Inf最好是分开传递两个矩阵并让 eig 选择求解该问题的最佳算法。在这种情况下eig(A,B) 会返回一组特征向量和至少一个实数特征值尽管 B 不可逆。 验证第一个特征值和第一个特征向量是否满足
eigval D(1,1);
eigvec V(:,1);
A*eigvec - eigval*B*eigvec
ans 2×1
10-15 ×0.11100.2220在理想情况下特征值分解可满足此关系。由于分解是使用浮点计算完成的那么 A*eigvec 可最大程度接近 eigval*B*eigvec本例中确实如此。
提示 eig 函数可以计算实数对称稀疏矩阵的特征值。要计算稀疏矩阵的特征向量或计算非实数对称稀疏矩阵的特征值请使用 eigs 函数。