基于Matlab来计算矩阵特征值和特征向量

来源:互联网 发布:交流网络 编辑:程序博客网 时间:2024/06/05 19:48

简介
线性代数相关领域中,矩阵操作一般是核心内容。对矩阵的特征值和特征向量的计算一直在数值计算占有重要位置。这里介绍一种根据指定个数来返回矩阵特征值及特征向量的方式。
实例

% By lyqmath
% Dalian University of Technology
% School of Mathematical Sciences 2008
% BOLG: http://blog.sina.com.cn/lyqmath
% 取指定特征值对应的特征向量
clc; clear all; close all;
A = [1 3 7
    3 8 9
    5 4 6];
k = 2;
[V, D] = eig(A);
% 返回的V是以列向量对应的特征向量
% D是对角线上为特征值的矩阵
D = diag(D);
[D, I] = sort(D, 'descend');
% 得到了对应的排序
if k > length(D)
    k = length(D);
end
temp(1) = {D(1 : k)};
temp(2) = {V(:, I(1 : k))};
fprintf('\n 前k个最大特征值 : \n');
celldisp(temp(1));
fprintf('\n 前k个最大特征值对应的特征向量 : \n');
celldisp(temp(2));

结果

基于Matlab来计算矩阵特征值和特征向量 

总结
MATLAB提供了eig来计算矩阵的特征值、特征向量信息。如果再结合使用MATLAB的排序函数等资源,可以综合利用来解决问题。

转自:http://blog.sina.com.cn/s/blog_725866260100rzw0.html
0 0