利用MATLAB计算矩阵

用matlab计算矩阵

用法

一,创建矩阵

MATLAB中的矩阵如下定义:

1
2
A = [a b c; c d e; f g h]
其中行向量用空格做间隔,列向量用分号" ; "

一些特殊的矩阵可以用一些命令生成,例如

1
2
3
zeros(n):生成一个n维的零矩阵
zeros(m,n):生成一个n行n列的零矩阵
rand(3):生成一个3x3的矩阵,但矩阵的元素是在[0,1]里随机填充的

现在讲一讲一些基本的操作

二、基本运算

1
2
3
矩阵的乘积需要满足一定的条件,最简单的是乘法
A*B :按照矩阵乘法计算两个矩阵的乘积
A .* B :点乘是指矩阵和矩阵间对应的元素相乘,而不是做矩阵乘法。

我们演示一下,首先生成两个矩阵

avatar

其次,对于点乘,则要求矩阵具备相同的行和列数,否则会报错,那么我们做如下演示:
avatar

在掌握这两种不同意义的运算后,对基本的加减乘就没什么大的问题,现在。MATLAB中对矩阵的幂的定义如下

1
A^k :定义为矩阵的幂运算,等价于A*A*A*A......

avatar

现在,让我们回到矩阵的本质——线性方程组上。我们说想要解一个线性方程组

那么对于基本的定义,定义其系数矩阵和其增广矩阵为:

在MATLAB中我们可以一次性输入增广矩阵,或者定义系数矩阵A和解向量B,用代码[A B]也可以表示增广矩阵
avatar

现在我们开始求解

1
2
3
在帮助中心,求解一个线性方程组Ax =B需要用到函数 mldivide(),也可以简单的记为 x = A\B,或者是x = inv(A)*B

其中inv(A)指的是A的逆

现在我们分别演示这三个代码

avatar

现在介绍一些常用的命令

常用命令

1
2
3
4
5
6
7
8
det(A) :求矩阵A的行列式
inv(A) :矩阵A的逆
rank(A) :矩阵的秩
poly(A) :矩阵的特征多项式
null(A) :求一组A的零空间的一组标准正交基,我们可以用其求一组基础解系。
orth(A):得到A的一组标准正交基
rref(A) :利用高斯消元法得到一个行阶梯型矩阵,即Ax=b的通解。
eig(A) : 特征值和特征向量

现在显示的都是浮点数,要用分数作为输出,则输入

1
format rat

即可