MATLAB学习笔记(八)

来源:互联网 发布:开农村淘宝怎么赚钱 编辑:程序博客网 时间:2024/05/16 04:55

本章主要学习:
1.进行矩阵代数的基本运算
2.使用MATLAB中的矩阵运算联立方程组
3.使用MATLAB中的特殊矩阵

1.矩阵运算和函数

1)转置

>> A = [1,2,3];>> A'ans =     1     2     3>> 

如果是复数,则求转置后变成复数的共轭复数

>> x = [-1:-1:-3];>> y = sqrt(x)y =   0.0000 + 1.0000i   0.0000 + 1.4142i   0.0000 + 1.7321i>> y'ans =   0.0000 - 1.0000i   0.0000 - 1.4142i   0.0000 - 1.7321i>> 

2)点积
点积是将两个矢量中的对应元素相乘再求和的过程

>> A = [1,2,3];>> B = [4,5,6];>> Y = A .* BY =     4    10    18>> sum(Y)ans =         32 

或者可以直接写成

>> sum(A.*B)ans =    32>> 

MATLAB中的函数dot可以实现点积运算

>> dot(A,B)ans =    32>> 

不论A和B是行矢量还是列矢量,只要有具有相同的元素个数就可以进行点积运算

3)矩阵乘法
矩阵乘法的结果是一个数组,它由每个元素做点积得到

>> A = [1,2,3;4,5,6];>> B = [10,20,30;40,50,60;70,80,90];>> C = A * BC =   300   360   420   660   810   960>> 

注意A的列数必须和B的行数相等。矩阵乘法不满足交换律

4)矩阵的幂
求矩阵的幂就是按照需要的次数,对矩阵本身做乘法运算。
在做幂运算时,矩阵必须是方阵,有相同的行和列。

>> A = randn(3)A =    0.5377    0.8622   -0.4336    1.8339    0.3188    0.3426   -2.2588   -1.3077    3.5784>> A ^ 2ans =    2.8496    1.3054   -1.4893    0.7967    1.2347    0.5401  -11.6957   -7.0438   13.3363>> 

求A矩阵的2词幂运算不等于求A的数组2次幂运算

>> AA =    0.5377    0.8622   -0.4336    1.8339    0.3188    0.3426   -2.2588   -1.3077    3.5784>> C = A .^ 2C =    0.2891    0.7433    0.1880    3.3631    0.1016    0.1174    5.1024    1.7100   12.8049>> 

它相当于对每一项求平方。

5)矩阵的逆
对于一个函数而言,逆运算是指对函数去反
一个函数乘以它的反函数等于1
MATLAB提供两种实现矩阵逆矩阵的方法,一种是求矩阵A的-1次幂

>> A ^ -1ans =   -0.3349    0.5309   -0.0914    1.5466   -0.1991    0.2065    0.3538    0.2623    0.2972>> 

另外一种是用内置函数inv

>> inv(A)ans =   -0.3349    0.5309   -0.0914    1.5466   -0.1991    0.2065    0.3538    0.2623    0.2972>> 

不管采用哪一种方法,矩阵A及逆矩阵的乘积总为单位矩阵

>> inv(A) * Aans =    1.0000   -0.0000   -0.0000         0    1.0000    0.0000    0.0000   -0.0000    1.0000>> 

不存在逆矩阵的矩阵叫做奇异矩阵

6)行列式
行列式的手工求法有多种
MATLAB中使用函数det求得

>> A = [1,2;3,4];>> det(A)ans =    -2

7)叉积
叉积又称矢量积,它与点积不同,叉积的结果为矢量。结果矢量通常与两个输入矢量所在的平面垂直,这种性质称为正交性。

>> A = [1,2,3];>> B = [4,5,6];>> cross(A,B)ans =    -3     6    -3 

叉积的记过必须与矢量A和B所在的平面垂直,也就是说它必须垂直于x-y平面,那就只有是corss(A,B)方向的向量满足这一条件。

2.求解线性方程组

1)利用矩阵的逆运算求解方程
方程组:AX = B
则:X = INV(A) * B

>> A = [3,2,-1;-1,3,2;1,-1,-1];>> B = [10;5;-1];>> X = inv(A) * BX =   -2.0000    5.0000   -6.0000>> 

利用行阶梯形矩阵化简:

>> C = [A,B];>> rref(C)ans =     1     0     0    -2     0     1     0     5     0     0     1    -6>> 

3.特殊矩阵

本节将重点介绍可以产生特殊矩阵的MATLAB函数

ones和zeros可以创建全0矩阵和全1矩阵,当输入量为单个变量时,结果为方阵,当输入量为两个时,他们分别表示矩阵的行数和列数。

>> ones(3)ans =     1     1     1     1     1     1     1     1     1
>> zeros(2,3)ans =     0     0     0     0     0     0>> 

单位矩阵

>> A = eye(3)A =     1     0     0     0     1     0     0     0     1>> 
>> B = eye(3,2)B =     1     0     0     1     0     0>> 
0 0
原创粉丝点击