第一章 MATLAB简介(干货部分)
-
常用数学运算符号及标点符号
| + | 加法运算【适用于两个数或两个同阶 矩阵相加】
| - | 减法运算
| * | 乘法运算
| .* | 点乘运算
| / | 除法运算
| ./ | 点除运算
| ^ | 乘幂运算
| .^ | 点乘幂运算
| \ | 左除运算【被除数与除数颠倒位置】 -
常用数学函数
sin(x) 正弦函数
cos(x) 余弦函数
tan(x) 正切函数
abs(x) 绝对值
min(x) 最小值
sqrt(x) 开平方
log(x) 自然对数
sign(x) 符号函数
asin(x) 反正弦函数
acos(x) 反余弦函数
atan(x) 反正切函数
max(x) 最大值
sum(x) 元素的总和
exp(x) 以e为底的指数
log10(x) 以10为底的对数
fix(x) 取整
【注】%%【空】为批注,且上下有划线隔开
%【空】 亦为批注,无上下化线
命令窗口Command Window是用户与Matlab进行交互的主要场所,其空白区域用于输入和显示计算结果。可以在该区域键入各种Matlab命令进行各种操作,以及键入数学表达式进行计算等。
示例1 计算
解:在Matlab命令窗口键入 3+4*5+exp(5),回车即可显示其计算结果
ans = 171.4132
- 常用的命令
↓ 调出下一行命令,可进行修改
save 有选择的保存工作内存中的变量
quit 退出Matlab(File下的Exit也是退出Matlab 的命令)
命令 | 功能 |
---|---|
clear | 清除Marlab工作内存中的变量 |
clc | 清除命令窗口中显示的内容 |
clf | 清除图形窗口 |
who | 列出Marlab工作内存中驻留的变量名清单 |
whos | 列出Marlab工作内存中驻留的变量名清单以及变量属性 |
help | 帮助命令 |
↑ | 调出前一行命令,可进行修改 |
↓ | 调出下一行命令,可进行修改 |
save | 有选择的保存工作内存中的变量 |
quit | 退出Matlab(File下的Exit也是退出Matlab的命令) |
compose | 复合运算、右边复合到左边 |
finverse | 求反函数 |
inf | 趋向于无穷大 |
Diff(f,x,n) | 求f关于x的n阶导数 |
4. 符号运算功能
(1)符号表达式的创建
符号变量常用于公式推导
符号表达式是代表数字、函数、算子和变量的Matlab字符串或字符串数组,常见的符号表达式有以下几种:
1)直接用字符串赋值方式创建符号表达式。
Eg.命令 f=‘log(x)’ 定义了符号函数f=ln(x)。
而equation=‘ax^2+bx+c=0’则定义了方程,并赋值给equation。
2)用sym命令来创建。
Eg.f=sym(‘sin(x)’)
equ=sym(‘a*x+b=0’)
3)用syms命令来创建。【最常用】*
Eg.syms x y
f=ysin(x)+xcos(y)
(2)符号函数的运算
假设已经创建了两个函数f和g,下面列出常见的函数运算命令。
命令 | 含义 |
---|---|
f+g | 表达式求和 |
f-g | 表达式求差 |
f*g | 表达式求积 |
f/g | 表达式求商 |
f^n | 表达式f求n次幂 |
compose(f,g) | 把g代入f求复合函数 |
finverse(f) | 求f的反函数,x为默认自变量 |
finverse(f,a) | 求f的反函数,指定a为自变量 |
limit(f,x,a) | 求 f 在 时的极限 |
limit(f) | 求 f 在x→0 时的极限 |
limit(f,x,a,right) | 求f 在x→a时的右极限 |
limit(f,x,a,left) | 求f 在x→a时的左极限 |
diff(f,x,n) | 求f关于x的n阶导数 |
int(f,x) | 求f关于x的不定积分 |
int(f,x,a,b) | 求f关于x从a到b的定积分 |
simple(f) | 化简函数f的表达式 |
(3)函数中的变量代换与求值
命令subs(s,old,new)可将符号表达式s中变量old 换成new,这里的new可以是一个新的变量,也可以是一个表达式,也可以是一个常数。当new换成常数时,就是我们通常的函数求值运算。当表达式中只有自变量x时,old可以缺省。当想代换s中的n个变量时,old=[old1,old2,…,oldn],相应的new也是向量形式。
命令latex(s)可将符号表达式s转换成LaTex代码。
变精度函数vpa(A)可改变A的精度:vpa(pi,30)
Eg. 将函数s=e^x+xsinx 的自变量换成t,并计算s(0),s(0.1),s(0.2),L,s(1)
解:syms x t
s=exp(x)+x*sin(x)
g=subs(s,x,t)
s1=subs(s,x,pi)
s2=subs(s,0:0.1:1)
运行结果为
s =exp(x) + x*sin(x)
g =exp(t) + t*sin(t)
s1 =23.1407
s2 = 1.0000 1.1152 1.2611 1.4385 1.6476 1.8884 2.1609
2.4647 2.7994 3.1646 3.5598
5.数值计算功能
(1)变量与函数
Matlab中变量的命名规则是:
(1)变量名必须是不含空格的单个词;
(2)变量名区分大小写;
(3)变量名最多不超过31位,第31个字符之后的字符
将被忽略;
(4)变量名必须以字母打头,之后可以是任意字母、
数字或下划线,变量名中不允许使用标点符号。
特殊变量表:
特殊变量 | 取值 |
---|---|
ans | 用于结果的缺省变量名 |
pi | 圆周率 |
eps | 计算机的最小数,当和1相加就产生一个比1大的数 |
flops | 浮点运算数 |
inf | 无穷大,如1/0 |
NaN | 不定量,如0/0 |
i,j | i=j= |
realmin | 最小可用正实数 |
realmax | 最大可用正实数 |
(2)向量及其运算
1)向量的生成
①直接输入向量
在中括号内,从左至右依次输入向量的元素,以空格或逗号分隔元素,则输入行向量;以分号分隔元素,则输入列向量。
如a=[1 2 3 4,b=[2,1,4,5],c=[1;2;3;4].
②利用冒号表达式生成向量
x=first:increment:last, 创建从first开始,加increment计数,last结束的行向量,*如a=1:2:12,b=12:-2:1。*若缺省increment,则默认increment为1,如c=1:6。
③线性等分向量函数生成的向量
y=linspace(x1,x2), 生成100维的行向量
y=linspace(x1,x2,n) 生成n维的行向量
2) 向量的运算
已知向量a=[a1, a2, a3],b=[b1, b2, b3],则有
运算 | 表达 |
---|---|
向量加法 | a+b=[a1+b1, a2+b2, a3+b3]; |
向量减法 | a-b=[a1-b1, a2-b2, a3-b3]; |
数乘向量 | 2a=[2a1, 2a2, 2a3]; |
数量积运算 | dot(a,b)=a1b1+a2b2+a3*b3; |
向量积运算 | c=cross(a,b) % 要求a,b均为三维向量 |
向量混合积 | dot(a,cross(b,c)) % 要求a,b均为三维向量 |
数量加法 | a+2=[a1+2, a2+2, a3+2]; |
数量减法 | a-2=[a1-2, a2-2, a3-2]; |
向量相乘 | a.b=[a1b1, a2b2, a3b3]; |
向量右除 | a./b=[a1/b1, a2/b2, a3/b3]; |
向量左除 | a.\b=[b1/a1, b2/a2, b3/a3]; |
向量乘幂 | a.2=[a12, a2^2, a3^2]; 2.a=[2a1, 2^a2, 2^a3] ; a.b=[a1b1, a2^b2, a3^b3] |
数量积运算 | sum(a.b)= a1b1+a2b2+a3b3 |
3)向量元素的提取
①提取一个元素: x(i)表示访问数组x的第i个元素
②提取一块元素: x(i :j :k)表示访问数组x的从第i个元素开始,以步长为j到第k个元素(但不超过k),j可以为负数,j缺损时为1。
③直接使用元素编址序号. x([i j k l]) 表示提取数组x的第i 、j、k、l个元素构成一个新的数组 [x(i) x(j) x(k)
x(l)]。
*eg. 设有向量a=[1,3,5,7,9];b=[2,4,6,8,10],计算
(1) a+2b; (2) a与b的数量积; (3) a.*b;
(4)a.\b; (5) a./b;
(6) 将a向量的第2个元素换成13;
(7) 提取a的第1,3,5个向量组成新的向量;
(8)将a,b两个向量合并成一个向量。
(1) a+2*b
运行结果为ans = 5 11 17 23 29
(2) dot(a,b)
运行结果为ans = 190
(3) a.b
运行结果为ans = 2 12 30 56 90
(4) a.\b
运行结果为ans =2.0000 1.3333 1.2000 1.1429 1.1111
(5) a./b
运行结果为ans = 0.5000 0.7500 0.8333 0.8750 0.9000
(6) a(2)=13; a
运行结果为a =1 13 5 7 9
(7) c=a([1,3,5])
运行结果为c =1 5 9
(8) d=[a,b]
运行结果为d =1 13 5 7 9 2 4 6 8 10
4)向量元素的个数
命令 size(x) 和 length(x) 都返回向量x所含元素的个数,也称为向量的长度。当向量维数较高时,我们可以由这两个命令获得向量的长度。
例如有向量x=0:3pi/20:2pi,运行size(x),结果为ans = 1 14,运行length(x),结果为ans = 14,可见向量x共有14个元素。
(3)矩阵及其运算
输入原矩阵:每行用“;”隔开,最终用“[]”括起来
Eg.
A=[1 2 3;4 5 2; 3 2 7]
A =
1 2 3
4 5 2
3 2 7
转置矩阵:A’
拉长矩阵:A(:)
Eg.>> B=A(😃
B =
1
4
3
2
5
2
3
2
7
逆矩阵:inv(A)
零矩阵:zeros(行,列,维度)