您的位置:首页 > 编程语言 > MATLAB

MATLAB学习笔记(八)

2015-05-28 09:53 351 查看
本章主要学习:

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 .* B
Y =
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 * B
C =
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 ^ 2
ans =
2.8496    1.3054   -1.4893
0.7967    1.2347    0.5401
-11.6957   -7.0438   13.3363
>>


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

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


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

5)矩阵的逆

对于一个函数而言,逆运算是指对函数去反

一个函数乘以它的反函数等于1

MATLAB提供两种实现矩阵逆矩阵的方法,一种是求矩阵A的-1次幂

>> A ^ -1
ans =
-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) * A
ans =
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) * B
X =
-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
>>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: