目录
矩阵的基本操作
%matlab矩阵及其基本运算
a=[1,2,3,4,5,6];%用空格或者逗号分割;
size(a); %size()获取矩阵的大小;
[x,y]=size(a);
disp(x);
disp(y);
%多维数组的创建
A=[1,2,3;4,5,6;7,8,9];
B=[1,2,3
4,5,6
7,8,9]
disp(size(B));
A(1,1) %获取第一行第一列
A(:,1) %获取第一列的全部数据
A(1,:) %获取第一行的全部数据
%特殊矩阵的生成
%全0阵
%C=zeros(m,n);生成m*n全0阵;
zeros(size(A))
%单位阵
Y=eye(m,n);
Y=eye(size(A));
%全1阵
Y=ones(m,n);
Y=ones(size(A));
%均匀分布随机矩阵
rand(m,n)%生成m*n的随机矩阵
randn(m,n)%生成m*n的正态分布矩阵
%矩阵运算
%加减运算
A=[1,2,3;4,5,6;7,8,9];
B=rand(size(A));
disp(A-B);
disp(A+B);
%矩阵的点乘,矩阵对应的元素相乘,矩阵的大小必须相同
A=randn(3,4);
B=rand(size(A));
A.*B
%矩阵的叉乘
A=randn(3,4);
B=(rand(size(A)))';
disp(A*B);
%矩阵的除法
%Matlab 提供了两种除法运算:左除(\)和右除(/)。一般情况下,x=a\b 是方程a*x =b的解,而x=b/a 是方程x*a=b 的解。
A=ones(4,3);
B=rand(size(A));
A/B
A\B
%矩阵的乘方
A=[1,2,3
4,5,6
7,8,9];
B=A^2 %表示A乘以自身
C=A.*A %常用来表示对应元素的平方
%矩阵的逆
A=[1,2,3
4,5,6
7,8,9];
format rat %用有理化格式输出
disp(inv(A));
disp(A^(-1));
C=rref(A) %化行最简行
%矩阵的迹
trace(C) %即A的对角元素之和
%矩阵的秩
rank(A)
%复制和平铺矩阵
D=repmat(A,2,3)%矩阵A,复制2*3块
线性方程组的求解
线性方程的求解分为两类:一类是方程组求唯一解或求特解,另一类是方程组求
无穷解即通解。可以通过系数矩阵的秩来判断:
若系数矩阵的秩r=n(n 为方程组中未知变量的个数),则有唯一解;
若系数矩阵的秩r<n,则可能有无穷解;
线性方程组的无穷解 = 对应齐次方程组的通解+非齐次方程组的一个特解;其特解的求
法属于解的第一类问题,通解部分属第二类问题。
利用矩阵除法求解线性方程组的特解(或一个解)
方程:AX=b
解法:X=A\b
A=[5 6 0 0 0;
1 5 6 0 0;
0 1 5 6 0;
0 0 1 5 6;
0 0 0 1 5];
B=[1 0 0 0 1]';
R_A=rank(A) %求秩
X=A\B %求解
求线性齐次方程组的通解
在Matlab 中,函数null 用来求解零空间,即满足A·X=0 的解空间,实际上是求出解
空间的一组基(基础解系)。
A=[1 2 2 1;
2 1 -2 -2;
1 -1 -4 -3];
format rat %指定有理式格式输出
B=null(A,'r') %求解空间的有理基
求非齐次线性方程组的通解
步骤为:
第一步:判断AX=b 是否有解,若有解则进行第二步
第二步:求AX=b 的一个特解
第三步:求AX=0 的通解
第四步:AX=b 的通解= AX=0 的通解+AX=b 的一个特解。
A=[1 1 -3 -1;3 -1 -3 4;1 5 -9 -8];
b=[1 4 0]';
B=[A b];
n=4;
R_A=rank(A)
R_B=rank(B)
format rat
if R_A==R_B&R_A==n
X=A\b
elseif R_A==R_B&R_A<n
X=A\b
C=null(A,'r')
else X='Equation has no solves'
end
特征值与特征向量
A=[-2 1 1;0 2 0;-4 1 3];
[V,D]=eig(A)