矩阵变换:
%{
对角阵:
对角矩阵:只有对角线上有非零元素
数量矩阵:对角线上元素相等
单位矩阵:对角线上元素都为1
提取矩阵A的对角线元素
diag(A) 提取矩阵A主对角线元素,产生一个列向量
diag(A,k) 提取矩阵A第k条对角线的元素,产生一个列向量
(主对角线k=0;向下为负,向上为正)
构造对角矩阵(V为向量)
diag(V) 以向量V为主对角线元素,产生对角矩阵
diag(V,k) 以向量V为第k条对角线元素,产生对角矩阵
三角阵:
上三角阵:矩阵的对角线以下的元素全为0
下三角阵:矩阵的对角线以上的元素全为0
上三角矩阵:(up)
triu(A) 提取矩阵A的主对角线及以上的元素
triu(A,k) 提取矩阵A的第k条对角线及以上的元素
下三角矩阵:(low)
tril(A) tril(A,k) 用法同up,变为以下
矩阵的转置
行——列转化
转置运算符: .' (小数点后加单引号)
共轭转置运算符: ' (单引号)
(共轭转置是在转置的基础上取每个数的复共轭)
(在复数矩阵时两种转置不同,实数时相同)
矩阵的旋转
rot90(A,k) 将矩阵A逆时针方向旋转90度的k倍,当k=1时可省略
矩阵的翻转
fliplr(A) 对矩阵A实施左右翻转
flipud(A) 对矩阵A实施上下翻转
矩阵求逆
对方阵A,若存在同阶方阵B,使AB=BA=I(单位矩阵),则AB互为逆矩阵
inv(A)
%}
%先建立5×5矩阵A,然后将A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。
A=[7,0,1,0,5;3,5,7,4,1;4,0,3,0,2;1,1,9,2,3;1,8,5,2,9]
D=diag(1:5)
D*A
%要将A的各列元素分别乘以对角阵的对角线元素。
A*D
%验证魔方阵的主对角线、副对角线元素之和相等。
A=magic(5);
D1=diag(A);
sum(D1)
B=flipud(A);
D2=diag(B);
sum(D2)
%用求逆矩阵的方法解线性方程组。
A=[1,2,3;1,4,9;1,8,27];
b=[5;-2;6];
x=inv(A)*b %或者 x=A\b
% 解法: A*x=b
% A*inv(A)*x=inv(A)*b
% x=inv(A)*b
矩阵求值:
% 矩阵的行列式值
% 验证 矩阵的行列式值与逆矩阵的行列式值倒数相等
A=[1,3,2;-3,2,1;4,1,2];
det(inv(A))==1/det(A)
% 矩阵的秩 rank(A) 矩阵线性无关的行数或列数
for n=3:20
r(n)=rank(magic(n));
end
bar(r)
grid on
axis([2,21,0,20])
% 结论: 奇数阶魔方阵秩为n,即奇数阶魔方阵是满秩矩阵
% 一重偶数阶魔方阵秩为n/2+2 (n是2的倍数,非4的倍数)
% 双重偶数阶魔方阵秩为3 (n是4的倍数)
% 矩阵的迹 trace(A) 等于矩阵的对角线元素之和,也等于矩阵的特征值之和
A=[1,3,2;-3,2,1;4,1,2];
b=trace(A) %直接求迹
t=sum(diag(A)) %对角元素和
e=sum(eig(A)) %特征值和
% 矩阵的范数 用来度量矩阵或向量在某种意义下的长度
% 向量的3种常用范数(矩阵类似):
% 向量元素的绝对值之和 向量元素平方和的平方根 所有向量元素绝对值中的最大值
% norm(V) or norm(V,2) :计算向量(矩阵)V的2—范数
% norm(V,1) :计算向量(矩阵)V的1—范数
% norm(V,inf) :计算向量(矩阵)V的无穷—范数
% 矩阵的条件数 用于描述矩阵性能的参数
% 等于A的范数与A的逆矩阵范数的乘积(越接近1性能越好,反之越差)
% cond(A,1) 1—范数条件下的条件数
% cond(A)或cond(A,2) 2—范数条件下
% cond(A,inf) 无穷大—范数条件下的条件数
% 求2-10阶希尔伯特矩阵的条件数:
for n=2:10
c(n)=cond(hilb(n));
end
format long
c'
特殊矩阵:
%通用的特殊矩阵
A=zeros(3,3);
B=ones(3);
C=eye(size(A)); %产生对角线为1的矩阵,当为方阵时,得到单位矩阵
D=rand(3,4); %产生(0,1)区间均匀分布的随机矩阵
E=randn(3); %产生均值为0,方差为1的标准正太分布矩阵
%产生5阶[0,100]随机整数矩阵A,再产生均值为0.6、方差为0.1的5阶正态分布随机矩阵B
%验证(A+B)I=IA+BI(I为单位矩阵)
A=fix(101*rand(5));
B=0.6+sqrt(0.1)*randn(5);
C=eye(5);
(A+B)*C==C*A+B*C
%用于专门学科的特殊矩阵
%①魔方矩阵:Magic Square 产生8阶魔方阵,求其每行每列元素的和。
M=magic(8);
sum(M(1,:));
sum(M(:,1));
%②范德蒙矩阵:Vandermonde
V=vander(1:5)
%③希尔伯特矩阵:Hibert
H=hilb(4)
%④伴随矩阵:多项式p(x)=an*X^n+an-1*X^n-1+...+a1X+a0
%多项式伴随矩阵的特征值,等于其根
p=[1 -2 -5 6];
C=compan(p)
e=eig(C); %特征值
r=roots(p); %根
e==r
%⑤帕斯卡矩阵:(二项式定理,杨辉三角形),生成5阶帕斯卡矩阵,验证它的逆矩阵的所有元素也为整数。
P=pascal(5)
inv(P)
特征:
% 矩阵的特征值与特征向量:
% 设A是n阶方阵,如果数λ和n维非零列向量x使关系式Ax=λx成立
% 那么这样的数λ称为矩阵A特征值
% 非零向量x称为A的对应于特征值λ的特征向量
% E=eig(A) 矩阵A全部特征值构成向量E
% [X,D]=eig(A) 矩阵A全部特征值构成对角阵D,并产生矩阵X,X各列是相应的特征向量
R=[-1,2,0;2,-4,1;1,1,-6];
S=[1,2;2,3];
A=[R,zeros(3,2);zeros(2,3),S];
[X1,d1]=eig(R)
[X2,d2]=eig(S)
[X3,d3]=eig(A)
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];
A=[1,0.5;0,1];
y=A*x;
subplot(2,2,1);
fill(x(1,:),x(2,:),'r');
subplot(2,2,2);
fill(y(1,:),y(2,:),'r');
% 矩阵特征值的用途:
% 求解非线性方程组,常微分方程,及多项式方程的根;
% 求矩阵的迹,坐标变换;
% 工程振动问题,动力系统稳定性。
稀疏矩阵:
% 矩阵的存储方式
% 完全存储方式
% 稀疏存储方式:只存储矩阵非零元素的值和位置(存储顺序未改变)
% 稀疏矩阵方式的产生
% (1)转化
% A=sparse(S) %将矩阵S转化为稀疏存储方式
% S=full(A) %将矩阵A转化为完全存储方式
A=sparse(eye(5))
B=full(A)
whos
% (2)直接建立稀疏存储矩阵
A=sparse([1,2],[2,4],[4,-7])
B=full(A)
B=spconvert(A);
% (3)带状稀疏矩阵的稀疏存储(指所有非零元素集中在对角线上)
% [B,d]=spdiags(A);
% A=spdiags(B,d,m,n);
% (4)单位矩阵的稀疏存储
% speye(m,n) 返回一个稀疏存储的单位矩阵
% 稀疏矩阵的应用实例
% 求三对角线性方程组的解。
kf1=[1;1;2;1;0];
k0=[2;4;6;6;1];
k1=[0;3;1;4;2];
B=[kf1,k0,k1];
d=[-1;0;1];
A=spdiags(B,d,5,5);
f=[0;3;2;1;5];
x=A\f