MATLAB-eig函数
函数介绍:
在MATLAB中,eig函数用于计算矩阵的特征值和特征向量。
函数语法:
它的语法如下:
对于方阵:
[V, D] = eig(A)
其中,A是一个方阵,V是一个包含A的特征向量的矩阵,D是一个对角矩阵,其对角线上的元素是A的特征值。
对于非方阵:
[V, D] = eig(A)
其中,A是一个非方阵,V是一个包含AA’的特征向量的矩阵,D是一个对角矩阵,其对角线上的元素是AA’的特征值。
实例
以下是一些示例:
A = [1 2; 3 4];[V, D] = eig(A);disp(V);disp(D);
输出:
-0.8246 -0.4159 0.5658 -0.9094 -0.3723 0 0 5.3723
在上面的示例中,A是一个2x2的矩阵,V是一个包含A的特征向量的矩阵,D是一个对角矩阵,其对角线上的元素是A的特征值。
请注意,特征向量矩阵V的每一列对应一个特征向量,而对角矩阵D的对角线上的元素对应特征值。特征向量和特征值的顺序是按照特征值的大小进行排序的。
如果只对特征值感兴趣,可以省略输出参数V,只保留D。例如:
A = [1 2; 3 4];D = eig(A);disp(D);
输出:
-0.3723 5.3723
在上面的示例中,只输出了特征值,特征向量被忽略了。
当eig函数的第二个参数为’balance’
在MATLAB中,eig函数的第二个参数可以用来指定计算特征值和特征向量时的选项。其中,'balance’选项用于对输入矩阵进行平衡处理。
平衡处理是一种数值稳定性的技术,可以改善计算特征值和特征向量的准确性和效率。通过平衡处理,可以调整矩阵的尺度,使得特征值的范围更加均衡,从而减小计算误差。
使用’balance’选项的语法如下:
[V, D] = eig(A, 'balance')
其中,A是输入的矩阵,V是包含特征向量的矩阵,D是包含特征值的对角矩阵。
以下是一个示例:
A = [1e6 1; 1 1];[V, D] = eig(A, 'balance');disp(V);disp(D);
输出:
-0.9999 -0.7071 0.0010 0.7071 0.9999 0 0 1.0000
在上面的示例中,输入矩阵A是一个具有很大差异的元素值的矩阵。通过使用’balance’选项,可以使得特征值的范围更加均衡,从而提高计算的准确性。
请注意,平衡处理对于某些特定的矩阵可能会产生较小的数值误差。因此,在使用’balance’选项时,需要根据具体情况进行权衡和评估。