基于MATLAB的特征值与特征向量(附完整代码)

2023-10-27

目录

一. 一般矩阵的特征值与特征向量

例题1

二. 广义特征向量问题

例题2

三.稀疏矩阵的最大特征值

例题3


一. 一般矩阵的特征值与特征向量

A为n阶矩阵,若数\lambda和向量x满足Ax=\lambda x,那么数\lambda称为A的特征值,x称为A对应于特征值\lambda特征向量。如果把式子改写成(A-\lambda E)x=0,那么|A-\lambda E|就叫做A的特征多项式

在MATLAB中,求解特征值和特征向量,格式如下:

[V,D]=eig(A)

备注:该函数也可以只求一个量

例题1

利用两种方法求矩阵A的特征值与特征向量,并验证其对应的范数误差。

A=\begin{bmatrix}16&2&3&13\\ 5&11&10&8\\ 9&7&6&12\\ 4&14&15&1\\ \end{}

解:

MATLAB代码如下:

clc;clear;
A=[16 2 3 13;5 11 10 8;9 7 6 12;4 14 15 1];

%直接求解
[v,d]=eig(A)
norm1=norm(A*v-v*d)

%解析解
[v,d]=eig(sym(A))
norm2=norm(double(A*v(:,2)-34*v(:,2))) %double函数转换为双精度类型

运行结果:

v =

   -0.5000   -0.8236    0.3764   -0.2236
   -0.5000    0.4236    0.0236   -0.6708
   -0.5000    0.0236    0.4236    0.6708
   -0.5000    0.3764   -0.8236    0.2236


d =

   34.0000         0         0         0
         0    8.9443         0         0
         0         0   -8.9443         0
         0         0         0   -0.0000


norm1 =1.2284e-14

 
v =
[ -1, 1, (12*5^(1/2))/31 - 41/31, - (12*5^(1/2))/31 - 41/31]
[ -3, 1,  17/31 - (8*5^(1/2))/31,    (8*5^(1/2))/31 + 17/31]
[  3, 1, - (4*5^(1/2))/31 - 7/31,     (4*5^(1/2))/31 - 7/31]
[  1, 1,                       1,                         1]
 
 
d =
[ 0,  0,          0,         0]
[ 0, 34,          0,         0]
[ 0,  0, -4*5^(1/2),         0]
[ 0,  0,          0, 4*5^(1/2)]
 

norm2 =0

二. 广义特征向量问题

广义特征向量的表达式,如下:

Ax=\lambda Bx

如果上式子中的B=I,那么就是普通矩阵特征值问题。求解广义特征值与特征向量的MATLAB格式如下:

[V,D]=eig(A,B)

很遗憾的是,符号运算工具箱中的eig()函数不支持广义特征值的相关运算。

例题2

求A,B的广义特征值与特征向量矩阵。

A=\begin{bmatrix}5&7&6&5\\ 7&10&8&7\\ 6&8&10&9\\ 5&7&9&10\\ \end{}A=\begin{bmatrix}2&6&-1&-2\\ 5&-1&2&3\\ -3&-4&1&10\\ 5&-2&-3&8\\ \end{}

解:

MATLAB代码如下:

clc;clear;
A=[5 7 6 5;7 10 8 7;6 8 10 9;5 7 9 10];
B=[2 6 -1 -2;5 -1 2 3;-3 -4 1 10;5 -2 -3 8];
[V,D]=eig(A,B)

norm(A*V-B*V*D)

运行结果:

V =

   0.3697 + 0.0000i  -0.3741 + 0.6259i  -0.3741 - 0.6259i   1.0000 + 0.0000i
   0.9948 + 0.0000i  -0.0674 - 0.2531i  -0.0674 + 0.2531i  -0.6090 + 0.0000i
   0.7979 + 0.0000i   0.9239 + 0.0264i   0.9239 - 0.0264i  -0.2316 + 0.0000i
   1.0000 + 0.0000i  -0.6599 - 0.3263i  -0.6599 + 0.3263i   0.1319 + 0.0000i


D =

   4.7564 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0471 + 0.1750i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0471 - 0.1750i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i  -0.0037 + 0.0000i


ans =

   3.3761e-14

三.稀疏矩阵的最大特征值

计算稀疏矩阵k个模最大特征值,MATLAB格式如下:

d=eigs(A,k)

同时计算最大特征值与特征向量,MATLAB格式如下:

[V,D]=eigs()

例题3

利用delsq和numgrid函数生成稀疏矩阵,求该稀疏矩阵的六个模最大特征值,并分析该方法的误差。

解:

MATLAB代码如下:

clc;clear;
A=delsq(numgrid('C',15));
%生成稀疏矩阵,这个稀疏矩阵有点复杂,感兴趣的小伙伴可自行查找下 delsq和numgrid函数
[v,d]=eigs(A,6) %6代表6个模
norm=norm(A*v-v*d)

运行结果:

d =

    7.8666         0         0         0         0         0
         0    7.7324         0         0         0         0
         0         0    7.6531         0         0         0
         0         0         0    7.5213         0         0
         0         0         0         0    7.4480         0
         0         0         0         0         0    7.3517


norm =

   1.4182e-14
特征向量的结果较长,此处仅显示一部分。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于MATLAB的特征值与特征向量(附完整代码) 的相关文章

  • 通过 h5py 将 matlab v7.3 文件读入 python numpy 数组列表

    我知道以前已经有人问过这个问题 但在我看来 仍然没有答案可以解释正在发生的事情 并且不适用于我的情况 我有一个 matlab v7 3 文件 其结构如下 gt rank lt 1x454 cell gt gt each element is
  • Matlab 中的多行匿名函数? [复制]

    这个问题在这里已经有答案了 是否可以在 Matlab 中创建多行匿名函数 没有合适的例子在文档中 http www mathworks com help matlab matlab prog anonymous functions html
  • 如何将条形图的 XtickLabels 向左移动?

    我目前正在尝试创建频率直方图 为此 我必须创建一个条形图 条形图之间没有空格 然而 这集中于XTickLabels在酒吧的中间 由于它是一个直方图 我希望数值位于每个条形之间的线上 以便它可以直观地指示间隔 本质上 我需要将所有刻度标签移至
  • 图像堆栈的最大强度投影

    我正在尝试重新创建该功能 max array 3 来自 MatLab 它可以获取 N 个图像的 300x300px 图像堆栈 我在这里说 图像 因为我正在处理图像 实际上这只是一个大的双数组 300x300xN 并创建一个 300x300
  • 使用 GPU 进行 Matlab 卷积

    我用gpuArray尝试了matlab的卷积函数conv2 convn 例如 convn gpuArray rand 100 100 10 single gpuArray rand 5 single 并将其与 cpu 版本 convn ra
  • 在 MATLAB 中检索 spfun、cellfun、arrayfun 等中的元素索引

    有什么办法可以找回index调用函数的元素的cellfun arrayfun or spfun行为 即检索函数范围内元素的索引 为了简单起见 假设我有以下玩具示例 S spdiags 1 4 0 4 4 f spfun x 2 x S 它构
  • MATLAB 中时间戳过滤器的优化 - 处理非常大的数据集

    我正在 MATLAB 中编写一个程序 必须使用 MATLAB 并且不能真正使用 MEX 来过滤大量数据 我需要实现的过滤器之一要求我将时间戳向量与其他时间戳不会出现的已知 不良 时间列表进行比较 一个典型的时间戳向量有大约 2 000 00
  • 两个 y 轴与相同的 x 轴[重复]

    这个问题在这里已经有答案了 可能的重复 在单个图中绘制 4 条曲线 具有 3 个 y 轴 https stackoverflow com questions 1719048 plotting 4 curves in a single plo
  • MATLAB 中最有效的矩阵求逆

    在 MATLAB 中计算某个方阵 A 的逆矩阵时 使用 Ai inv A should be the same as Ai A 1 MATLAB 通常会通知我这不是最有效的求逆方法 那么什么是更有效率的呢 如果我有一个方程系统 可能会使用
  • 在另一列中添加具有特定条件的一列,如 excel 的 sumif

    我有一个像这样的矩阵 A 1 2 2 3 3 4 4 5 5 6 6 8 7 9 8 5 9 4 现在我想添加第二列 条件是如果 limit 0 interval 3 且 limit limit interval 或者换句话说 当第 1 列
  • Python 函数句柄 ala Matlab

    在 MATLAB 中可以创建function handles http www mathworks co uk help techdoc ref function handle html与类似的东西 myfun arglist body 这
  • 如何找到在matlab中重复的矩阵的每一行的索引?

    我想找到矩阵中所有有重复项的行的索引 例如 A 1 2 3 4 1 2 3 4 2 3 4 5 1 2 3 4 6 5 4 3 要返回的向量将是 1 2 4 很多类似的问题建议使用unique函数 我已经尝试过 但我能得到的最接近我想要的功
  • 什么是 ANN 中的纪元以及它如何转换为 MATLAB 中的代码?

    我试图理解 并可视化 训练人工神经网络的时代到底是什么 我们有一个包含约 7000 个产品的训练集 其中有 10 个特征 输入 这些产品必须根据这 10 个输入分为 7 个类别 我们的 ANN 有 10 个输入 这些输入进入由 10 个神经
  • 如何在没有安装Visual Studio的另一台机器上使用Visual Studio生成的dll?

    我已经在 Visual Studio 2012 中生成了动态库 我想在另一台机器上使用该库 但我不想在远程机器上安装 Visual Studio 我有 mex 库和 dll 我想运行一个使用这两个库的脚本 当我运行脚本时 出现以下错误 缺少
  • MATLAB 特征函数

    我很好奇哪里可以找到完整的描述FEATURE功能 它接受哪些论点 没有找到文档 我只听说过memstats and getpid 还要别的吗 gt gt which feature built in undocumented 注意 更完整的
  • 有没有办法在matlab中进行隐式微分

    我经常使用 matlab 来帮助我解决数学问题 现在我正在寻找一种在 matlab 中进行隐式微分的方法 例如 我想区分y 3 sin x cos y exp x 0关于dy dx 我知道如何使用数学方法通常做到这一点 但我一直在努力寻找使
  • 如何将二进制值列表转换为int32类型?

    我在 MATLAB 工作区中有一个小端格式的二进制数列表 我想将它们转换为 int32 a是由 0 和 1 组成的双向量 如下所示 a 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1
  • 在 Matlab 中高效获取像素坐标

    我想在 Matlab 中创建一个函数 给定一个图像 该函数将允许人们通过单击图像中的像素来选择该像素并返回该像素的坐标 理想情况下 人们能够连续单击图像中的多个像素 并且该函数会将所有相应的坐标存储在一个矩阵中 有没有办法在Matlab中做
  • 通过 Matlab 访问 Physionet 的 ptbdb 中的数据库

    我首先设置系统 old path which rdsamp if isempty old path rmpath old path 1 end 8 end wfdb url http physionet org physiotools ma
  • 如何在放置颜色条后保持子图大小不变

    假设我们有一个 1 2 子图 我们在其中绘制了一些图形 如下所示 subplot 1 2 1 surf peaks 20 subplot 1 2 2 surf peaks 20 然后我们要添加一个颜色条 colorbar 我不希望结果中的正

随机推荐

  • wptx64能卸载吗_Win10自带应用卸载教程(本人亲测)

    使用 win10 有一段时间了 其中也用过诸如腾讯电脑管家 软媒魔方等工具对开机启动项进 行过优化 多数时候都没出现问题 但最近几次优化使系统出现了各种问题 现在来总结一 下 win10 的那些服务项目不能动 不能禁止开机启动 不能关闭后台
  • 古巴雪茄高希霸世纪1.2.3.4.5.6.半世纪7款雪茄的区别?

    Magic雪茄Club 18 11 0411 30 本人实拍 请勿盗图 此款高希霸世纪6 世纪1 环径为40 世纪系列里个头最小 却刚劲有力 皮革奶油味和豆香的甘甜 松木咖啡最明显伴其左右 口感被称为 开胃雪茄 独特的三段发酵 其烟叶取自布
  • 关于Navicat连接mysql数据库报host XXXXXXX is not allowed to connect to this mysql server

    服务器重新做了一个系统 然后安装mysql 这一系列应该都是做完才搜索这个问题的 我就不废话了 使用本地的Navicat进行连接就报了一个host XXXXXXX is not allowed to connect to this mysq
  • 章节2 开始使用SystemView - Segger SystemView使用手册(译文)

    本文博客链接 http blog csdn net bjr2016 作者 bjr2016 未经允许不得转载 2 开始使用SystemView 这一节描述如何开始使用SEGGER SystemView 解释了如何分析基于监视数据分析一个应用程
  • 共阳和共阴数码管详细段码(带图)

    今天带大家了解数码管的详细段码 数码管主要分共阳数码管和共阴数码管 区别在于其公共端是接电源还是接地 这里我们讲解共阴 共阳 数码管的0 F不带小数点段码和0 F带小数点段码 共阴数码管 1 共阴不带小数点0 F段码为 0x3f 0x06
  • 2022年4月16日-4月22日(ogrePlatformManager源码抄写+ue4视频教程,本周20小时,共1290小时,剩下8710小时。)

    ogre的主题部分ogremain终于抄写完了 good 原以为其他部分不重要 其实并不是 比如 文件系统写到了插件部分 所以还是要抄写 胜利可期 远程办公回来后 感觉心态有些急功近利了 沉不下来了 那先把章节少的ue4视频教程调试部分学下
  • win10系统使用Virtual Box 报错Error reaunching Virtual BoxVM process.5 what: 5 VERR INVALID NAME (-104)

    做101作业的时候 出现这个报错 supR3HardenedWinReSpawn what 5 The virtual machine Windows XP has terminated unexpectedly during startu
  • 史上最简单的SpringCloud教程

    转载请标明出处 原文首发于 https www fangzhipeng com springcloud 2017 07 12 sc09 sleuth 本文出自方志朋的博客 最新Finchley版本请访问 https www fangzhip
  • 【Robot Framework】发送GET和POST请求

    做接口自动化时 经常要使用GET与POST请求 那么如何使用RF发送对应的请求呢 一 安装RequestsLibrary pip install robotframework requests 安装以后 导入到对应的测试套件或测试用例中 本
  • React Native_初识ReactNative

    RN中的View 作为创建UI时最基础的组件 View是一个支持Flexbox布局 样式 一些触摸处理 和一些无障碍功能的容器 并且它可以放到其它的视图里 也可以有任意多个任意类型的子视图 不论在什么平台上 View都会直接对应一个平台的原
  • FTP上传和下载文件

    使用FTP之前最好先在服务器上安装一个serv u软件 用它设置ftp服务表叫方便 实现ftp文件下载 package cn java store test import java io File import java io FileIn
  • Android studio 分析内存泄漏

    http www cnblogs com kelina2mark p 6140658 html
  • Bat脚本自动卸载软件-静默执行

    通过Bat脚本卸载软件 原理是得到某软件的ProductCode 然后通过MsiExec exe命令卸载软件 下面是卸载一个产品的基本代码示例 set ML4 0HF4Name Product4 0HF4 set ML4 0HF4Produ
  • 冒泡排序法

    Hello 大家好 今天我要介绍的是冒泡排序法 冒泡排序法是一种C语言中的数字大小排序的一种方法 这种排序方法是C语言中最简单的一种方法 Now 首先让我们先看一 下冒泡排序法的基本思想 冒泡排序法的思想 两两比较 如果前一个数比后一个数大
  • 程序员的职业成长之路?从初级到高级的技能提升之路

    程序员是一个非常有挑战性和创造性的职业 但也是一个需要不断学习和进步的职业 如果你想在这个行业里有所作为 你需要掌握一些必备的技能和方法 从初级到中级 再到高级 最后达到资深的水平 那么 程序员的成长路线是什么呢 维哥将为你介绍一些实用的建
  • 学计算机电脑屏幕多大,买电脑显示器的技巧 电脑显示屏多大尺寸好

    购买电脑是时 大多数的商家都会把电脑显示器作为电脑配置中的一个主要卖点 但其实很多时候 商家给与我们的信息都是错误的 所以买电脑显示器前 需要自己掌握一些技巧 而一些用户也会在购买多大尺寸的显示屏上纠结着 接下来小编为大家带来买电脑显示器的
  • pytorch之torch.randn()

    torch randn sizes out None dtype None layout torch strided device None requires grad False gt Tensor Args sizes int a se
  • 进入传奇荣耀显示服务器不存在,传奇荣耀复古版

    传奇荣耀复古版 1区服务器爆满排队15分钟 传奇荣耀复古版是一款复古系列的传奇游戏 玩家能够在游戏中24小时匹配到队友进行副本攻略 更有完善的社交系统 让玩家轻松结识更多的兄弟姐妹 实时语音系统方便玩家更好的进行沟通 让玩家们的作战更加轻松
  • 通过Android Timer来实现3S自动页面跳转

    实现开始页面的跳转 就是打开一个Android手机APP的欢迎界面后跳转到指定界面 启动页面的作用能够打广告 发公告 做缓存处理 更新数据等等 Timer是一种定时器工具 用来在一个后台线程计划执行指定任务 它可以计划执行一个任务一次或反复
  • 基于MATLAB的特征值与特征向量(附完整代码)

    目录 一 一般矩阵的特征值与特征向量 例题1 二 广义特征向量问题 例题2 三 稀疏矩阵的最大特征值 例题3 一 一般矩阵的特征值与特征向量 A为n阶矩阵 若数和向量x满足 那么数称为A的特征值 x称为A对应于特征值的特征向量 如果把式子改