空灵学院

 找回密码
 立即注册

扫一扫,访问微社区

搜索
查看: 1828|回复: 0

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

[复制链接]

1137

主题

1761

帖子

7558

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7558
发表于 2014-1-15 19:50:21 | 显示全部楼层 |阅读模式
以下内容摘自好友lyqmath新浪博客,在此借花献佛。

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

代码

  1. <font size="3" color="#696969">% By lyqmath
  2. % Dalian University of Technology
  3. % School of Mathematical Sciences 2008
  4. % BOLG: http://blog.sina.com.cn/lyqmath
  5. % 取指定特征值对应的特征向量
  6. clc; clear all; close all;
  7. A = [1 3 7
  8.     3 8 9
  9.     5 4 6];
  10. k = 2;
  11. [V, D] = eig(A);
  12. % 返回的V是以列向量对应的特征向量
  13. % D是对角线上为特征值的矩阵
  14. D = diag(D);
  15. [D, I] = sort(D, 'descend');
  16. % 得到了对应的排序
  17. if k > length(D)
  18.     k = length(D);
  19. end
  20. temp(1) = {D(1 : k)};
  21. temp(2) = {V(:, I(1 : k))};
  22. fprintf('\n 前k个最大特征值 : \n');
  23. celldisp(temp(1));
  24. fprintf('\n 前k个最大特征值对应的特征向量 : \n');
  25. celldisp(temp(2));</font>
复制代码

结果

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|空灵学院 ( 11033542 )

GMT+8, 2024-5-15 16:26 , Processed in 0.023533 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表