您的位置:首页 > 编程语言 > MATLAB

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

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

% By lyqmath
% Dalian University of Technology
% School of Mathematical Sciences 2008
% BOLG: http://blog.csdn.net/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提供了eig来计算矩阵的特征值、特征向量信息。如果再结合使用MATLAB的排序函数等资源,可以综合利用来解决问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: