一. 矩阵的表示与转置
假定A为矩阵,矩阵转置的数学表示如下:
如果原矩阵有复数元素,那么会先转置再取各个元素的共轭复数值,即Hermit转置。
MATLAB中格式如下:
1B=A'
如果不希望取共轭复数,只需要改为点运算即可,如下格式:
1B=A.'
二. 矩阵的加减乘运算
2.1 加减法
1
2
3
4
5%加法运算 C=A+B %减法运算 D=A-B
注意两矩阵的维数是否相等以及是否存在某个矩阵为标量的情形。
2.2 乘法
矩阵乘法C=AB的数学形式如下:
MATLAB的格式如下:
1C=A*B
注意两个矩阵维数的相容性问题。
三. 矩阵除法
3.1 左除法
AX=B,求X
MATLAB的求解格式如下:
1X=AB
如果A为非奇异矩阵,则
如果A不是方阵,则可以利用最小二乘法求解
3.2 右除法
XA=B,求X
MATLAB的求解格式如下:
1X=B/A
如果A为非奇异方阵,则
如果A不是方阵,则可以利用最小二乘法求解
四. 矩阵翻转与乘方
4.1 矩阵的转动
①左右翻转
1B=fliplr(A)
②上下翻转
1B=flipud(A)
③逆时针旋转
1D=rot90(A)
逆时针旋转
1D=rot90(rot(A))
4.2 矩阵的乘方
乘方运算通常适用于方阵的形式,MATLAB实现形式如下:
1F=A^x
五. 点运算符的一些解释
一维数组相当于向量,二维数组相当于矩阵,所以实际上矩阵是数组的子集。
数组运算是指数组对应元素之间的运算,也称之为点运算。
矩阵是一个二维数组,所以矩阵的加、减、数乘等运算与数组运算时一致的。矩阵的乘法,乘方和除法有特殊的数学含义,并不是数组对应元素的运算,所以数组乘法,乘方和除法的运算符前特地加了一个点。
5.1 乘法比较
代码形式 | 数学形式 | |
数组乘法 | A.*B | |
矩阵乘法 | A*B | |
例题1
MATLAB代码如下:
1
2
3
4
5
6A=[1 2;3 4] B=[4 3;2 1] r2_1=A*B r2_2=A.*B
运行结果:
A =
1 2
3 4
B =
4 3
2 1
r2_1 =
8 5
20 13
r2_2 =
4 6
6 4
5.2 除法比较
1
2
3
4
5
6
7
8
9
10
11
12
13
14%数组运算 %数除以数组,代表k分别被A的元素除 k./A A.k %数组除法 A.B %左除 B./A %右除 %矩阵运算 %AX=B的解 AB %左除 %XA=B的解 B/A %右除
例题2
MATLAB代码如下:
1
2
3
4
5
6
7
8A=[1 2;3 4]; B=[4 3;2 1]; r3_1=AB r3_2=A.B r4_1=B/A r4_2=B./A
运行结果:
r3_1 =
-6.0000 -5.0000
5.0000 4.0000
r3_2 =
4.0000 1.5000
0.6667 0.2500
r4_1 =
-3.5000 2.5000
-2.5000 1.5000
r4_2 =
4.0000 1.5000
0.6667 0.2500
5.3 乘方比较
1
2
3
4
5
6%数组运算 A.^k %A的每个元素进行k次方运算 k.^A %以k为底,分别以A的元素为指数求幂值 %矩阵运算 A^k %k个矩阵A相乘
例题3
MATLAB代码如下:
1
2
3
4
5
6
7A=[1 2;3 4] r5_1=A.^2 r5_2=A^2 r6_1=2.^A
运行结果:
A =
1 2
3 4
r5_1 =
1 4
9 16
r5_2 =
7 10
15 22
r6_1 =
2 4
8 16
六. 矩阵的逻辑与比较运算
6.1 逻辑运算
在MATLAB中,对double变量来讲,非0就表示逻辑1。逻辑运算的本质就是相应元素间的运算。
- 与运算(and) A&C
- 或运算(or) A|C
- 非运算(not) ~A
- 异或运算 xor(A,C)
6.2 比较运算
允许各种的比较关系,如下:
>,>=,<,<=,==,~=,find(),all(),any()
例题4
MATLAB代码如下:
1
2
3
4
5
6
7
8A=[1 2 3;4 5 6;7 8 0] find(A>=5) %大于或等于5元素的下标,竖直看 [i,j]=find(A>=5); [i,j] %显示行标和列表 all(A>=5) %某列元素全大于或等于5时,相应元素为1,否则为0 any(A>=5) %某列元素含有大于或等于5时,相应元素为1,否则为0
运行结果:
A =
1 2 3
4 5 6
7 8 0
ans =
3
5
6
8
ans =
3 1
2 2
3 2
2 3
ans =
1×3 logical 数组
0 0 0
ans =
1×3 logical 数组
1 1 1
七. 解析结果的化简与变换
7.1 结果的化简
MATLAB实现:
1
2
3
4s1=simplify(s) %从各种方法中自动选择最简格式 %s为原始表达式,s1为化简后的表达式
现在列举五个常用的化简函数,关于它们详细的信息与格式可以用help命令得出:
- collect() 合并同类项
- expand() 展开多项式
- factor() 因式分解
- numden() 提取多项式的分子与分母
- sincos() 三角函数的化简
例题5
MATLAB代码如下:
1
2
3
4
5
6
7
8
9syms s; P=(s+3)^2*(s^2+3*s+2)*(s^3+12*s^2+48*s+64); P1=simplify(P) %一系列化简尝试,得出计算机认为的最简形式 P2=factor(P) P3=expand(P)
运行结果:
P1 =(s + 3)^2*(s + 4)^3*(s^2 + 3*s + 2)
P2 =[ s + 3, s + 3, s + 2, s + 1, s + 4, s + 4, s + 4]
P3 =s^7 + 21*s^6 + 185*s^5 + 883*s^4 + 2454*s^3 + 3944*s^2 + 3360*s + 1152
7.2 变量的替换
1
2
3
4
5
6
7%格式1 f1=subs(f,x1,x1*) %格式2 f1=subs(f,{x1,x2,···,xn},{x1*,x2*,···,xn*}) %f为原表达式,用x*替换x得出新的表达式
例题6
求f(t)在某点的特殊值:
解:
MATLAB代码如下:
1
2
3
4clc;clear; syms a b c d t; %假设这些变量均为符号变量 f=cos(a*t+b)+sin(c*t)*sin(d*t); %定义给定函数f(t) f1=subs(f,{a,b,c,d,t},{0.5*pi,pi,0.25*pi,0.125*pi,4})
运行结果:
f1 =-1
最后
以上就是殷勤小熊猫最近收集整理的关于基于MATLAB的入门数学运算(附代码)一. 矩阵的表示与转置二. 矩阵的加减乘运算三. 矩阵除法四. 矩阵翻转与乘方五. 点运算符的一些解释六. 矩阵的逻辑与比较运算七. 解析结果的化简与变换的全部内容,更多相关基于MATLAB的入门数学运算(附代码)一.内容请搜索靠谱客的其他文章。
发表评论 取消回复