MatLab之矩阵及其基本运算

目录

 矩阵的基本操作

线性方程组的求解

求线性齐次方程组的通解

求非齐次线性方程组的通解


 矩阵的基本操作

%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)
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值