概述
一. 矩阵的表示与转置
假定A为矩阵,矩阵转置的数学表示如下:
如果原矩阵有复数元素,那么会先转置再取各个元素的共轭复数值,即Hermit转置。
MATLAB中格式如下:
B=A'
如果不希望取共轭复数,只需要改为点运算即可,如下格式:
B=A.'
二. 矩阵的加减乘运算
2.1 加减法
%加法运算
C=A+B
%减法运算
D=A-B
注意两矩阵的维数是否相等以及是否存在某个矩阵为标量的情形。
2.2 乘法
矩阵乘法C=AB的数学形式如下:
MATLAB的格式如下:
C=A*B
注意两个矩阵维数的相容性问题。
三. 矩阵除法
3.1 左除法
AX=B,求X
MATLAB的求解格式如下:
X=AB
如果A为非奇异矩阵,则
如果A不是方阵,则可以利用最小二乘法求解
3.2 右除法
XA=B,求X
MATLAB的求解格式如下:
X=B/A
如果A为非奇异方阵,则
如果A不是方阵,则可以利用最小二乘法求解
四. 矩阵翻转与乘方
4.1 矩阵的转动
①左右翻转
B=fliplr(A)
②上下翻转
B=flipud(A)
③逆时针旋转
D=rot90(A)
逆时针旋转
D=rot90(rot(A))
4.2 矩阵的乘方
乘方运算通常适用于方阵的形式,MATLAB实现形式如下:
F=A^x
五. 点运算符的一些解释
一维数组相当于向量,二维数组相当于矩阵,所以实际上矩阵是数组的子集。
数组运算是指数组对应元素之间的运算,也称之为点运算。
矩阵是一个二维数组,所以矩阵的加、减、数乘等运算与数组运算时一致的。矩阵的乘法,乘方和除法有特殊的数学含义,并不是数组对应元素的运算,所以数组乘法,乘方和除法的运算符前特地加了一个点。
5.1 乘法比较
代码形式 | 数学形式 | |
数组乘法 | A.*B | |
矩阵乘法 | A*B |
例题1
MATLAB代码如下:
A=[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 除法比较
%数组运算
%数除以数组,代表k分别被A的元素除
k./A
A.k
%数组除法
A.B %左除
B./A %右除
%矩阵运算
%AX=B的解
AB %左除
%XA=B的解
B/A %右除
例题2
MATLAB代码如下:
A=[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 乘方比较
%数组运算
A.^k %A的每个元素进行k次方运算
k.^A %以k为底,分别以A的元素为指数求幂值
%矩阵运算
A^k %k个矩阵A相乘
例题3
MATLAB代码如下:
A=[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代码如下:
A=[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实现:
s1=simplify(s)
%从各种方法中自动选择最简格式
%s为原始表达式,s1为化简后的表达式
现在列举五个常用的化简函数,关于它们详细的信息与格式可以用help命令得出:
- collect() 合并同类项
- expand() 展开多项式
- factor() 因式分解
- numden() 提取多项式的分子与分母
- sincos() 三角函数的化简
例题5
MATLAB代码如下:
syms 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
f1=subs(f,x1,x1*)
%格式2
f1=subs(f,{x1,x2,···,xn},{x1*,x2*,···,xn*})
%f为原表达式,用x*替换x得出新的表达式
例题6
求f(t)在某点的特殊值:
解:
MATLAB代码如下:
clc;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的入门数学运算(附代码)一. 矩阵的表示与转置二. 矩阵的加减乘运算三. 矩阵除法四. 矩阵翻转与乘方五. 点运算符的一些解释六. 矩阵的逻辑与比较运算七. 解析结果的化简与变换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复