系列更新MATLAB各种运算和操作的说明,可利用目录直接定位。
本篇主要包括矩阵运算相关内容:
- n阶魔方矩阵:“magic”
- 矩阵各列元素之和:“sum”
- 矩阵提取对角线元素及对角线元素之和:“diag”
- 矩阵/矩阵间元素相除:“/”、“\”、“./”、“.\”
- 利用矩阵除法解方程组:“\”
- 矩阵乘法/幂:“*”、“^”
- 矩阵的行列式、逆、特征值和特征向量:“det”、“inv”、“eig”
- 三对角矩阵(稀疏矩阵)、转换为全矩阵、查看大小:“spdiags”、“full”、“whos”
- 矩阵判断相似对角化、判断正定性
- 计算时间、比较稀疏矩阵和全矩阵运算的计算时间:“tic”、“toc”
- 题目练习
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
即计算
结果为
例:a=[1;2;3]; b=[2,1,-1,1;1,2,1,-1;1,1,2,1]; b\a
即计算
结果为
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)
即对矩阵
求行列式、逆、特征值和对应特征向量
结果为
说明:其中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- 矩阵判断相似对角化、判断正定性
例:
说明:矩阵特征值两两不同,可以相似对角化,非正定矩阵,因为有负特征值
例:n=5,
说明:n=5时可以相似对角化,正定,因为特征值都大于0
10- 计算时间、比较稀疏矩阵和全矩阵运算的计算时间:“tic”、“toc”
例:接上文,设,比较 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,其意义为最终稳定状态城镇与农村人口比值,进行归一化后即可得到稳定状态城镇或农村人口占总人口比。
【本篇完】