【Matlab】矩阵变换与矩阵求值

矩阵变换与矩阵求值

对角矩阵:只有对角线上有非零元素的矩阵。

数量矩阵:对角线上的元素相等的对角矩阵。

单位矩阵:对角线上的元素都为1的对角矩阵。

diag函数

提取矩阵的对角线元素

diag(A):提取矩阵A主对角线元素,产生一个列向量。

diag(A,k):提取矩阵A第k条对角线的元素,产生一个列向量。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PTSa6ry5-1655003127827)(C:\Users\23343\AppData\Roaming\Typora\typora-user-images\image-20210826092834031.png)]

构造对角矩阵

diag(V):以向量V为主对角线元素,产生对角矩阵。

diag(V,k):以向量V为第k条对角线元素,产生对角矩阵。


上三角阵:矩阵的对角线以下的元素全为零的矩阵。

下三角阵:对角线以上的元素全为零的矩阵。

triu函数与tril函数

triu(A):提取矩阵A的主对角线及以上的元素。

triu(A,k):提取矩阵A的第k条对角线及以上的元素。

得到的矩阵与原矩阵A同型,未被提取的元素所在位置为0。

在MATLAB中,提取矩阵A的下三角矩阵的函数是tril,其用法与triu函数完全相同。

转置

在矩阵后加单引号'实现转置。会这一种用法即可。

旋转

rot90(A,k):将矩阵A逆时针方向旋转90°的k倍,当k为1时可省略。

翻转

fliplr(A):对矩阵A实施左右翻转。

flipud(A):对矩阵A实施上下翻转。

通过翻转可以实现分别求主副对角线之和。

inv函数

求逆矩阵,一般用于解线性方程组。


det函数

把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为方阵所对应的行列式的值。
det(A):求方阵A所对应的行列式的值。

rank函数

矩阵线性无关的行数或列数称为矩阵的秩。

rank(A):求矩阵A的秩。

for i = 3:20
    r(i) = rank(magic(i));
end
bar(r) % 柱状图,索引为x轴坐标,值为y轴坐标
grid on % 生成网格
axis([2, 21, 0, 20]) % 设置xy轴范围

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zL1i1CBj-1655003127829)(C:\Users\23343\AppData\Roaming\Typora\typora-user-images\image-20210826095727392.png)]

没用的结论:

奇数阶魔方阵秩为n,即奇数阶魔方阵是满秩矩阵。

一重偶数阶魔方阵秩为n/2+2( n是2的倍数,但非4的倍数)。

双重偶数阶魔方阵秩均为3(阶数是4的倍数)。

axis的常见用法参考

  1. axis( [xmin xmax ymin ymax] )

    设置当前坐标轴 x轴 和 y轴的限制范围

  2. axis off

    去掉坐标轴

  3. V=axis

    返回包含当前坐标范围的一个行向量

  4. axis ij

    将坐标轴设置为矩阵模式。此时水平坐标轴从左到右取值,垂直坐标从上到下

  5. axis equal

    设置屏幕高宽比,使得每个坐标轴的具有均匀的刻度间隔

  6. axis square

    将坐标轴设置为正方形

trace函数

矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。
trace(A):求矩阵A的迹。

trace(A) 
sum(diag(A))
% 二者等价

eig函数

E=eig(A)∶求矩阵A的全部特征值,构成向量E。
[X,D]=eig(A)∶求矩阵A的全部特征值,构成对角阵D,并产生矩阵X,X各列是相应的特征向量。

A = [1 1 0; 1 0 5; 1 10 2];
[X D] = eig(A)

结果如下:

X =

    0.0722    0.9751    0.0886
    0.5234   -0.0750   -0.6356
    0.8490   -0.2089    0.7669

D =

    8.2493         0         0
         0    0.9231         0
         0         0   -6.1723

D中的主对角线上的数为特征值,每一列的特征值对应的特征向量为X中的同列元素。

即,8.2493对应的特征向量为(0.0722 0.5234 0.8490)。

验证如下:

A = [1 1 0; 1 0 5; 1 10 2];
[X D] = eig(A);
D = ones(length(D)) * D
roundn(A*X, -4) == roundn(D.*X, -4)

结果如下:

D =

    8.2493    0.9231   -6.1723
    8.2493    0.9231   -6.1723
    8.2493    0.9231   -6.1723

ans =

  3×3 logical 数组

   1   1   1
   1   1   1
   1   1   1

先将D的每一列元素都设置为所在列对应的特征值,让D方阵左乘一个全1方阵即可。

根据特征值和特征向量的定义, A x = λ x Ax = \lambda x Ax=λx

左侧:将A方阵与X矩阵进行矩阵乘法,即*

右侧:将新得到的D矩阵与X矩阵对应位置相乘,即.*

判断二者对应位置是否相等即可。

但需要注意,二者计算得到的都是浮点数,存在一定的精度误差,所以直接判等是不相等的,因此我们保留小数点后四位,再进行判等,得到全1的逻辑矩阵。

roundn函数讲解

roundn函数是四舍五入函数,调用格式为:roundn(number, n)roundn(A, n)。其中numberA分别表示数字和由数字构成的矩阵,n表示要保留的位数,当n为正数时表示四舍五入保留到小数点前第几位,当n为负数时表示四舍五入保留到小数点后第几位。

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不牌不改

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

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

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

打赏作者

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

抵扣说明:

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

余额充值