MATLAB基础运算【2】:矩阵运算

系列更新MATLAB各种运算和操作的说明,可利用目录直接定位。

本篇主要包括矩阵运算相关内容:

  1. n阶魔方矩阵:“magic”
  2. 矩阵各列元素之和:“sum”
  3. 矩阵提取对角线元素及对角线元素之和:“diag”
  4. 矩阵/矩阵间元素相除:“/”、“\”、“./”、“.\”
  5. 利用矩阵除法解方程组:“\”
  6. 矩阵乘法/幂:“*”、“^”
  7. 矩阵的行列式、逆、特征值和特征向量:“det”、“inv”、“eig”
  8. 三对角矩阵(稀疏矩阵)、转换为全矩阵、查看大小:“spdiags”、“full”、“whos”
  9. 矩阵判断相似对角化、判断正定性
  10. 计算时间、比较稀疏矩阵和全矩阵运算的计算时间:“tic”、“toc”
  11. 题目练习

1- n阶魔方矩阵:“magic”

        例:z=magic(10)

        结果为

        

2- 矩阵各列元素之和:“sum”

        例:a=sum(z),z的定义同(1)

        结果为

        

3- 矩阵提取对角线元素及对角线元素之和:“diag”

        例:z=magic(10); d=diag(z); a=sum(d)

        结果为

        

        说明:diag()操作为提取矩阵对角线元素,并形成一个的数组

4- 矩阵/矩阵间元素相除:“/”、“\”、“./”、“.\”

        例:a=[1,2,3]; b=[2,4,3]; a./b, a.\b, a/b, a\b

        结果为

        

        说明:

        a./b表示向量a中元素除以向量b中对应位置元素得到新向量,即a点除b;

        a.\b表示向量b中元素除以向量a中对应位置元素得到新向量,即b点除a;

        a/b结果为a=bX的解,其中a与b为1*3矩阵,故而解对应的数为a点乘pinv(b)(a点乘b的伪逆阵);

        a\b结果为aX=b的解,a和b为1*3矩阵,X为3*3矩阵。

5- 利用矩阵除法解方程组:“\”

        例:a=[9;-2;1]; b=[4,1,-1;3,2,-6;1,-5,3]; b\a

        即计算 

         \begin{bmatrix} 4 & 1 &-1 \\ 3& 2 &-6 \\ 1& -5 & 3 \end{bmatrix}\begin{bmatrix} x_1\\ x_2\\ x_3 \end{bmatrix}=\begin{bmatrix} 9\\ -2\\ 1 \end{bmatrix}

        结果为

        

        例:a=[1;2;3]; b=[2,1,-1,1;1,2,1,-1;1,1,2,1]; b\a

        即计算

         \begin{bmatrix} 2 &1 & -1 & 1\\ 1 & 2 & 1 & -1\\ 1& 1 & 2 & 1 \end{bmatrix}\begin{bmatrix} x_1\\ x_2\\ x_3\\ x_4 \end{bmatrix}=\begin{bmatrix} 1\\ 2\\ 3 \end{bmatrix}

        结果为

        

6- 矩阵乘法/幂:“*”、“^”

        例:b=[0.98,0.05;0.02;0.95]; a0=[0.2;0.8]; a1=b*a0

        结果为

        

        例:b=[0.98,0.05;0.02;0.95]; a0=[0.2;0.8]; an=(b^n)*a0

        结果为

        

7- 矩阵的行列式、逆、特征值和特征向量:“det”、“inv”、“eig”

        例:a=[4,1,-1;3,2,-6;1,-5,3]; det(a), inv(a), [x,y]=eig(a)

        即对矩阵

        \begin{bmatrix} 4 & 1 &-1 \\ 3& 2 &-6 \\ 1& -5 & 3 \end{bmatrix}

        求行列式、逆、特征值和对应特征向量

        结果为

        

        说明:其中y为特征值,x为对应特征向量。

8- 三对角矩阵(稀疏矩阵)、转换为全矩阵、查看大小:“spdiags”、“full”、“whos”

        例:n=5; a=spdiags([ones(n,1), 5*ones(n,1), 6*ones(n,1)], [-1,0,1],n,n); det(a); full(inv(a)), [x,y]=eigs(a)

        即求阶数n=5时三对角矩阵

        

        的行列式、逆、特征值和特征向量

        结果为

        

        例:n=1000; S=spdiags([ones(n,1), -2*ones(n,1), ones(n,1)], [-1,0,1],n,n); F=full(S); whos F S

        即定义稀疏矩阵,n=1000,并转换为全矩阵

        

        

9- 矩阵判断相似对角化、判断正定性

        例: \begin{bmatrix} 4 & 1 &-1 \\ 3& 2 &-6 \\ 1& -5 & 3 \end{bmatrix}

        

        说明:矩阵特征值两两不同,可以相似对角化,非正定矩阵,因为有负特征值

        例:n=5,

        

        说明:n=5时可以相似对角化,正定,因为特征值都大于0

10- 计算时间、比较稀疏矩阵和全矩阵运算的计算时间:“tic”、“toc”

        例:接上文,设b=\begin{bmatrix} 1\\ ...\\ 1 \end{bmatrix},比较 Fx=b Sx=b 的计算时间。

        代码和结果为

        

        

        

        说明:a1是Fx=b的解,t1为其用时;a2是Sx=b的解,t2为其用时。可见两者得到的解是一样的,但是前者用时大于后者,后者运算更简洁。

11- 题目练习

题:

(人口流动趋势)对城乡人口流动作年度调查,发现有一个稳定的朝向城镇流动的趋势,每年农村居民的5%移居城镇而城镇居民的2%迁出,现在总人口的20%位于城镇。假如城乡总人口保持不变,并且人口流动的这种趋势继续下去,那么

(1)一年以后住在城镇人口所占比例是多少?两年以后呢?十年以后呢?

(2)很多年以后呢?

(3)如果现在总人口60%位于城镇,很多年以后城镇人口所占比例是多少?

(4)计算转移矩阵的最大特征值及对应的特征向量,与问题(2)(3)有何关系?

简答:

(1)一年以后住在城镇人口所占比例是多少?两年以后呢?十年以后呢?

设城镇人口占比为x,农村人口占比为y,目前a0=(x,y)=(0.2,0.8),一年内有,x1=0.98*x+0.05*y,y1=0.95*y+0.02*x。故而一年以后城镇人口a1=b*a0=(x1;y1)=[0.98,0.05;0.02,0.95]*(x;y)。

(2)很多年以后呢?

用以上方法,多少年后就迭代多少次即可,即为b的n次方乘以a0,就得到an。例如令n=100、200和300时,结果如上,结果显示,其会趋于稳定在城市和农村人口比例为5:2的情况。

(3)如果现在总人口60%位于城镇,很多年以后城镇人口所占比例是多少?

与(2)中结果相似,很多年后比例为5:2,城市约占0.714,农村约占0.286

(4)计算转移矩阵的最大特征值及对应的特征向量,与问题(2)(3)有何关系?

先计算处特征值矩阵,化为向量再取最大值,并且找到其对应元素位置,定位到其对应的特征向量矩阵中的特征向量。与(2)(3)问的关系是,0.9285/0.3714=5/2=0.7143/0.2857,其意义为最终稳定状态城镇与农村人口比值,进行归一化后即可得到稳定状态城镇或农村人口占总人口比。

【本篇完】

  • 24
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值