欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

慕课matlab学习 第二章-010

程序员文章站 2024-01-19 08:02:22
...

慕课matlab学习 第二章-010

矩阵的特征值与特征向量

% 第二节 矩阵变换
% 矩阵的特征值与特征向量

%   矩阵特征值的数学定义
%   设A是n阶方阵,如果存在常数λ和n维非零列向量x,使得
%   等式Ax= λx成立,则称λ为A的特征值,x是对应特征值λ的特
%   征向量。

% 函数调用格式有两种:
% E=eig(A) :求矩阵A的全部特征值,构成向量E。
% [X,D]=eig(A) :求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X各列是相应的特征向量。
% eg
A=[1,1,0;1,0,5;1,10,2]
eig(A) %求得 A的特征向量
[X,D]=eig(A) %求得A的全部特征值,构成对角阵D,并产生矩阵X,X各列是【相应的特征向量】
% 分析验证
A*X(:,1)  %特征向量
D(1)*X(:,1) %特征向量验证


%验证
%设λi为R的特征值,λj为S的特征值,xi= ( A1, a2, a3) '
%是R对应于hi的特征向量,yj= (β1,β1) '是S对应于λj的特征向
%试验证:
%(1) hi、 入j为A的特征值。
%(2) pi;=( A1, C2. 0l3, 0,0) '是A对应于λ i的特征向量,
%    qj= (0,0,0,B1, B2) '是A对应于λj的特征向量。

R=[-1,2,0;2,-4,1;1,1,-6] %创建3*3的子矩阵 R
S=[1,2;2,3]              %创建2*2的子矩阵 S
A=[R,zeros(3,2);zeros(2,3),S] %创建了两个0矩阵,随后将矩阵进行拼接得到A矩阵
[X1,d1]=eig(R)  %求得R的全部特征值,构成对角阵d1,并产生矩阵x1
[X2,d2]=eig(S)  %求得S的全部特征值,构成对角阵d2,并产生矩阵x2
[X3,d3]=eig(A)  %求得A的全部特征值,构成对角阵d1,并产生矩阵x3
%  上述结果输出可以看到 R 和 S 的特征值 和 A 的特征值是相等的
%  并且,每个特征值的特征向量是由 R 和 S 矩阵一一对应的。

% 特征值的几何意义
% https://www.bilibili.com/video/BV1b441147N8?p=12
% 时间节点 6:08% 个人理解
% 对于矩阵A=[3.8,0.6;0.6,2,2]
% 得到两个的两个特征值x1=[3,1] x2=[-1,3]和 特征向量 入12
% y1=A*x1=1*x1  y2=A*x2=2*x2
% 个人理解:(又可能不对)这样可以理解为 建立x1 和 x2向量,将通过矩阵A 进行运算得到单位向量 x1 和 x2
% 相当于原来的直角坐标变成了现在以 x1 和 x2 的坐标,可以进行坐标的转换。
% 同时多位也可以这样理解将标准的坐标系变成自己定义的坐标用 入 表示


%
% eg 2

x=[0,0.5,0.5,3,5.5,5.5,6,6,3,0;0,0,6,0,6,0,0,8,1,8] %定义M字符的坐标(直角坐标系下的 x 和 y 的值)
A=[1,0.5;0,1] %定义变换矩阵A
y=A*x          %进行变换
subplot(2,2,1) %创建图 2.2.1
fill(x(1,:),x(2,:),'r') %进行填充 对x第一行和第二行之间的数进行填充
subplot(2,2,2)
fill(y(1,:),y(2,:),'r') %进行填充 对变换得到的 y第一行和第二行之间的数进行填充


相关标签: Matlab