MATLAB 实验指导书
一、基础知识
1.1 常见数学函数
函 数 名 数 学 计 算 功 能 函 数 名 数 学 计 算 功 能
abs(x) 实数的绝对值或复数的幅值 floor(x) 对 x 朝-∞方向取整
acos(x) 反余弦 arcsin
x
gcd(m,n) 求正整数 m 和 n 的最大公约数
acosh(x) 反双曲余弦 arccosh
x
imag(x) 求复数 x 的虚部
angle(x) 在四象限内求复数 x 的相角 lcm(m,n) 求正整数 m 和 n 的最小公倍数
asin(x) 反正弦 arcsin
x
log(x) 自然对数(以
e
为底数)
asinh(x) 反双曲正弦 arcsinh
x
log10(x) 常用对数(以 10 为底数)
atan(x) 反正切 arctan
x
real(x) 求复数 x 的实部
atan2(x,y) 在四象限内求反正切 rem(m,n) 求正整数 m 和 n 的 m/n 之余数
atanh(x) 反双曲正切 arctanh
x
round(x) 对 x 四舍五入到最接近的整数
ceil(x) 对 x 朝+∞方向取整 sign(x) 符号函数:求出 x 的符号
conj(x) 求复数 x 的共轭复数 sin(x) 正弦 sin
x
cos(x) 余弦 cos
x
sinh(x) 反双曲正弦 sinh
x
cosh(x) 双曲余弦 cosh
x
sqrt(x)
求实数 x 的平方根:
x
exp(x)
指数函数
x
e
tan(x) 正切 tan
x
fix(x) 对 x 朝原点方向取整 tanh(x) 双曲正切 tanh
x
如:输入 x=[-4.85 -2.3 -0.2 1.3 4.56 6.75],则:
ceil(x)= -4 -2 0 2 5 7
fix(x) = -4 -2 0 1 4 6
floor(x) = -5 -3 -1 1 4 6
round(x) = -5 -2 0 1 5 7
1.2 系统的在线帮助
1 help 命令:
1.当不知系统有何帮助内容时,可直接输入 help 以寻求帮助:
>> help(回车)
2.当想了解某一主题的内容时,如输入:
>>
help syntax (了解 Matlab 的语法规定)
3.当想了解某一具体的函数或命令的帮助信息时,如输入:
>> help sqrt (了解函数 sqrt 的相关信息)
2 lookfor 命令
现需要完成某一具体操作,不知有何命令或函数可以完成,如输入:
·1·
>> lookfor line (查找与直线、线性问题有关的函数)
1.3 常量与变量
系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后
可以是任意字母,数字,或下划线的组合。此外,系统内部预先定义了几个有特殊意
义和用途的变量,见下表:
特殊的变量、常量 取 值
ans
用于结果的缺省变量名
pi
圆周率π的近似值(3.1416)
eps
数学中无穷小(epsilon)的近似值(2.2204e - 016)
inf
无穷大,如 1/0 = inf (infinity)
NaN
非数,如 0/0 = NaN (Not a Number),inf / inf = NaN
i,j
虚数单位:i = j = 1−
1 数值型向量(矩阵)的输入
1.任何矩阵(向量),可以直接按行方式
...
输入每个元素:同一行中的元素用逗号(,)
或者用空格符来分隔;行与行之间用分号(;)分隔。所有元素处于一方括号([ ])
内;
例1:
>> Time = [11 12 1 2 3 4 5 6 7 8 9 10]
>> X_Data = [2.32 3.43
;
4.37 5.98]
2.系统中提供了多个命令用于输入特殊的矩阵:
函数 功 能 函数 功 能
compan
伴随阵
toeplitz
Toeplitz 矩阵
diag
对角阵
vander
Vandermonde 矩阵
hadamard
Hadamard 矩阵
zeros
元素全为 0 的矩阵
hankel
Hankel 矩阵
ones
元素全为 1 的矩阵
invhilb
Hilbert 矩阵的逆阵
rand
元素服从均匀分布的随机矩阵
kron
Kronercker 张量积
randn
元素服从正态分布的随机矩阵
magic
魔方矩阵
eye
对角线上元素为 1 的矩阵
pascal
Pascal 矩阵
meshgrid
由两个向量生成的矩阵
上面函数的具体用法,可以用帮助命令 help 得到。如:meshgrid(x,y)
输入 x=[1 2 3 4]; y=[1 0 5]; [X,Y]=meshgrid(x, y),则
X = Y =
1 2 3 4 1 1 1 1
1 2 3 4 0 0 0 0
·2·
1 2 3 4 5 5 5 5
目的是将原始数据 x,y 转化为矩阵数据 X,Y。
2 符号向量(矩阵)的输入
1.用函数 sym 定义符号矩阵:
函数 sym 实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号
或者是表达式,而且长度没有限制。只需将方括号置于单引号中。
例2:
>> sym_matrix = sym
(
'[a b c
;
Jack Help_Me NO_WAY]'
)
sym_matrix =
[ a, b, c]
[Jack, Help_Me, NO_WAY]
2.用函数 syms 定义符号矩阵
先定义矩阵中的每一个元素为一个符号变量,而后像普通矩阵一样输入符号矩阵。
例3:
>> syms a b c
;
>> M1 = sym
(
'Classical'
);
>> M2 = sym
(
' Jazz'
);
>> M3 = sym
(
'Blues'
);
>> A = [a b c
;
M1
,
M2
,
M3
;
sym
(
[2 3 5]
)
]
A =
[ a, b, c]
[Classical, Jazz, Blues]
[ 2, 3, 5]
1.4 数组(矩阵)的点运算
运算符:+(加)、-(减)、./(右除)、.\(左除)、.^(乘方),
例4:
>> g = [1 2 3 4]
;
h = [4 3 2 1]
;
>> s1 = g + h, s2 = g.*h, s3 = g.^h, s4 = g.^2, s5 = 2.^h
1.5 矩阵的运算
运算符:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)、’(转置)等;
常用函数:det(行列式)、inv(逆矩阵)、rank(秩)、eig(特征值、特征向量)、rref
(化矩阵为行最简形)
·3·
例5:
>> A=[2 0 –1;1 3 2]; B=[1 7 –1;4 2 3;2 0 1];
>> M = A*B % 矩阵 A 与 B 按矩阵运算相乘
>> det_B = det(B) % 矩阵 A 的行列式
>> rank_A = rank
(
A
)
% 矩阵 A 的秩
>> inv_B = inv
(
B
)
% 矩阵 B 的逆矩阵
>> [V,D] = eig(B) % 矩阵 B 的特征值矩阵 V 与特征向量构成的矩阵 D
>> X = A/B % A/B = A*B
-1
,即XB=A,求X
>> Y = B\A % B\A = B
-1
*A,即BY=A,求Y
上机练习(一):
1.练习数据和符号的输入方式,将前面的命令在命令窗口中执行通过;
2.输入 A=[7 1 5
;
2 5 6
;
3 1 5]
,
B=[1 1 1; 2 2 2; 3 3 3],在命令
窗口中执行下列表达式,掌握其含义:
A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2)
A(:,3)*B(2,:) A*B A.*B A^2 A.^2 B/A B./A
3.输入 C=1:2:20,则 C(i)表示什么?其中 i=1,2,3,…,10;
4.查找已创建变量的信息,删除无用的变量;
5.欲通过系统做一平面图,请查找相关的命令与函数,获取函数的帮助信息。
二、编程
2.1 无条件循环
当需要无条件重复执行某些命令时,可以使用 for 循环:
for 循环变量 t=表达式 1 : 达式 2 : 表达式 3
语句体
end
说明:表达式 1 为循环初值,表达式 2 为步长,表达式 3 为循环终值;当表达式 2 省
略时则默认步长为 1;for 语句允许嵌套。
例 6: 如:矩阵输入程序
生成 3×4 阶的 Hiltber 矩阵。 m=input(‘矩阵行数:m=’);
for i=1 : 3 n= input(‘矩阵列数:n=’);
for j=1 : 4 for i=1:m
H
(
i
,
j
)
=1/
(
i+j-1
);
for j=1:n
end disp([‘输入第’,num2str(i),’行,第’, num2str(j),’列元素’])
end A(i, j) = input (‘ ’)
end end
·4·