矩阵代数与MATLAB实现(特征值、广义特征值、)

矩阵代数的相关知识

目录

一、特征值与特征向量

1、特征值与特征向量

2、MATLAB计算

二、广义特征值与广义特征向量

1、广义特征值与广义特征向量

2、MATLAB计算

三、酋矩阵

1、酋矩阵

2、MATLAB计算

四、矩阵的奇异值分解

1、奇异值

2、MATLAB计算

五、托普利兹矩阵(Toeplitz)

1、托普利兹矩阵

2、MATLAB计算

六、汉克尔矩阵(Hankel)

1、汉克尔矩阵

2、MATLAB计算

七、范德蒙矩阵(Vandermonde)

1、范德蒙矩阵

2、MATLAB计算

八、未完待续

总结


提示:以下是本篇文章正文内容,写文章实属不易,希望能帮助到各位,转载请附上链接。

一、特征值与特征向量

1、特征值与特征向量

\textbf{A}\in \mathbb{C}^{n\times n},\textbf{e}\in \mathbb{C}^{n},若标量\lambda和非零向量\textbf{e}满足方程

\textbf{Ae}=\lambda \textbf{e},\textbf{e}\neq 0

则称\lambda是矩阵\textbf{A}的特征值,\textbf{e}是与\lambda对应的特征向量。特征值可能为零,但特征向量一定非零。特征值与特征向量总是成对出现,称(\lambda ,\textbf{e})为矩阵\textbf{A}的特征对。

2、MATLAB计算

%% 特征值与特征向量
A=[1 2 4;0 2 0;2 -1 3];
[V,D]=eig(A) %V的每一列是特征向量,D的对角元素是特征值
A*V(:,1)
-1*V(:,1)

二、广义特征值与广义特征向量

1、广义特征值与广义特征向量

\textbf{A},\textbf{B}\in \mathbb{C}^{n\times n},\textbf{e}\in \mathbb{C}^{n},若标量\lambda和非零向量\textbf{e}满足方程

\textbf{Ae}=\lambda \textbf{B}\textbf{e},\textbf{e}\neq 0

则称\lambda是矩阵\textbf{A}相对于矩阵\textbf{B}的广义特征值,\textbf{e}是与\lambda对应的广义特征向量。特别的,当矩阵\textbf{B}为单位阵时,就成了普通的特征值问题。

2、MATLAB计算

%% 广义特征值与广义特征向量
A=[1 2 4;0 2 0;2 -1 3];
B=[2 -1 1;0 3 -1;2 1 3];
[V,D]=eig(A,B) %V的每一列是广义特征向量,D的对角元素是广义特征值
A*V(:,1)
-1.3011*B*V(:,1)

三、酋矩阵

1、酋矩阵

\textbf{A}\in \mathbb{C}^{n\times n},如果\textbf{AA}^{H}=\textbf{A}^{H}\textbf{A}=\textbf{I},其中'H'表示共轭转置,\textbf{I}表示单位矩阵,则称矩阵\textbf{A}为酋矩阵。  对于酋矩阵,\textbf{A}^{H}=\textbf{A}^{-1}

2、MATLAB计算

%% 酋矩阵验证
A=[(-1-1i)/2 (-1-1i)/2;(1+1i)/2 (-1-1i)/2]
inv_A=inv(A)
A*A'

四、矩阵的奇异值分解

1、奇异值

对于复矩阵\textbf{A}_{m\times n},称\textbf{A}^{H}\textbf{A}的n个特征根的算术根\sigma _{i}=\sqrt{\lambda _{i}}(i=1,2,...,n)为它的奇异值。记矩阵\textbf{A}的奇异值矩阵为

\sum_{m\times n} =\begin{pmatrix} \sigma _{1}& & & & & \\ & ... & & & & \\ & & \sigma _{r}& & & \\ & & & 0 & & \\ & & & & ... & \\ & & & & & 0 \end{pmatrix}

其中,\sigma _{1},\sigma _{2},...,\sigma _{r}是矩阵\textbf{A}的全部非零奇异值。

奇异值分解定理:对于m\times n维矩阵\textbf{A},分别存在一个m\times m维酋矩阵\textbf{U}和一个n\times n维酋矩阵\textbf{V},使得

\textbf{A}=\textbf{U}\sum \textbf{V}^{H}

2、MATLAB计算

%% 矩阵奇异值分解验证
A=[2+i 1-i 2+i;2-i 3+i 2+i]
[U S V]=svd(A) %计算矩阵A的奇异值矩阵S和两个酋矩阵U和V
U*S*V'   %验证分解是否正确
U*U'     %验证U是否为酋矩阵
V*V'     %验证V是否为酋矩阵

五、托普利兹矩阵(Toeplitz)

1、托普利兹矩阵

定义:2n-1个元素构成的n阶矩阵

\textbf{A}=\begin{bmatrix} a_{0} & a_{-1} & a_{-2} & \cdots &a_{-n+1} \\ a_{1} & a_{0} & a_{-1} &\cdots& a_{-n+2} \\ a_{2} & a_{1}& a_{0} &\cdots & a_{-n+3} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ a_{n-1}& a_{n-2} & a_{n-3}& \cdots & a_{0} \end{bmatrix}

称为Toeplitz矩阵,简称为T矩阵。

例如,当n=4时,由a_{3},a_{2},a_{1},a_{0},a_{-1},a_{-2},a_{-3}这7个元素构成的4阶矩阵为

\textbf{A}_{4\times 4}=\begin{bmatrix} a_{0} & a_{-1} & a_{-2} &a_{-3} \\ a_{1} & a_{0} & a_{-1} &a_{-2} \\ a_{2} & a_{1}& a_{0} & a_{-1} \\ a_{3}& a_{2} & a_{1} & a_{0} \end{bmatrix}

T矩阵也可简记为

A=(a_{-j+i})_{1}^{n}

其中,i,j=1,2,\cdots ,nT矩阵完全由第一行和第一列的2n-1个元素确定。可见,T矩阵中位于任意一条平行于主对角线的元素全都是相等的,且关于副对角线对称。

2、MATLAB计算

%% 创建一个托普利兹矩阵
n=[1 2 3 4]; 
A=toeplitz(n)  %用向量n创建一个对称T矩阵
m=[1 5 6 7];
B=toeplitz(m,n) %用向量n和m创建一个对称T矩阵,注意n和m的第一个元素要相同

六、汉克尔矩阵(Hankel)

1、汉克尔矩阵

定义:具有如下形式的n+1阶矩阵

\textbf{H}=\begin{bmatrix} a_{0} & a_{1} & a_{2} & \cdots &a_{n} \\ a_{1} & a_{2} & a_{3} &\cdots& a_{n+1} \\ a_{2} & a_{3}& a_{4} &\cdots & a_{n+2} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ a_{n}& a_{n+1} & a_{n+2}& \cdots & a_{2n} \end{bmatrix}

称为Hankel矩阵。可见,Hankel矩阵完全由其第1行和第n+1列的2n+1个元素确定。其中,所有垂直于主对角的直线上有相等的元素。

2、MATLAB计算

%% 创建一个汉克尔矩阵
n=[4 3 2 1]; 
A=hankel(n)  %用向量n创建一个汉克尔矩阵,第1列元素为n,反三角以下元素为0
m=[5 6 7 4];
B=hankel(m,n) %用向量n和m创建一个汉克尔矩阵,注意m的第一个元素和n的最后一个元素要相同

七、范德蒙矩阵(Vandermonde)

1、范德蒙矩阵

定义:具有如下形式的n×n阶矩阵

\textbf{V}=\begin{bmatrix} 1& 1& 1&\cdots &1 \\ x_{1}& x_{2}& x_{3} & \cdots & x_{n} \\ x_{1}^{2}& x_{2}^{2}& x_{3}^{2}& \cdots & x_{n}^{2} \\ \vdots &\vdots & \vdots & \ddots &\vdots \\ x_{1}^{n-1}& x_{2}^{n-1} & x_{3}^{n-1} & \cdots & x_{n}^{n-1} \end{bmatrix}

称为范德蒙矩阵,如果x_{i}\neq x_{j},那么V是非奇异(可逆)的。

2、MATLAB计算

%% 创建一个范德蒙矩阵
n=[1 2 3 4 5]; 
A=vander(n)  %用向量n创建一个范德蒙方阵
B=rot90(A)   %逆时针旋转90°,标准化范德蒙方阵

八、未完待续


总结

以上就是要讲的内容,本文介绍了矩阵代数的相关知识及其MATLAB的计算,希望对大家有所帮助。

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
MATLAB可以使用 `eig` 函数求解矩阵特征值,但是该函数只能求解方阵的特征值。如果需要求解广义特征值问题,需要使用 `eigs` 或 `eig` 函数的扩展形式。 下面介绍两种求解广义特征值的方法: ## 方法一:使用 `eigs` 函数 `eigs` 函数可以求解广义特征值问题,它的调用格式为: ```matlab [V, D] = eigs(A, B, k, sigma) ``` 其中,`A` 和 `B` 分别为广义特征值问题中的两个矩阵,`k` 为所需求解的广义特征值的个数,`sigma` 为求解特征值的算法类型。`V` 和 `D` 分别为广义特征值问题的广义特征向量广义特征值。 例如,假设需要求解广义特征值问题 Ax = λBx,其中 A 和 B 分别为 4×4 的矩阵,需要求解前 3 个广义特征值,可以使用如下代码: ```matlab A = [1 2 3 4; 2 4 6 8; 3 6 9 12; 4 8 12 16]; B = [1 0 0 0; 0 2 0 0; 0 0 3 0; 0 0 0 4]; k = 3; sigma = 'sm'; [V, D] = eigs(A, B, k, sigma); ``` ## 方法二:将广义特征值问题转化为普通特征值问题 广义特征值问题可以通过将其转化为普通特征值问题来求解。具体做法是将广义特征值问题 Ax = λBx 转化为普通特征值问题 B^{-1}Ax = λx,然后使用 `eig` 函数求解即可。 例如,假设需要求解广义特征值问题 Ax = λBx,其中 A 和 B 分别为 4×4 的矩阵,可以使用如下代码将其转化为普通特征值问题: ```matlab A = [1 2 3 4; 2 4 6 8; 3 6 9 12; 4 8 12 16]; B = [1 0 0 0; 0 2 0 0; 0 0 3 0; 0 0 0 4]; [V, D] = eig(B\A); ``` 需要注意的是,当广义特征值问题的矩阵 B 不可逆时,无法使用该方法求解。此时应该使用 `eigs` 函数求解。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迎风打盹儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值