资源描述
实验二
第2章 MATLAB数值计算功能
MATLAB强大的数值计算功能使其在诸多数学计算软件中傲视群雄,是MATLAB的基础.本章将简要介绍MATLAB的数据类型、矩阵的建立及运算.
第一节 MATLAB 的数据类型
MATLAB 的数据类型主要包括:数字、字符串、矩阵、单元型数据及结构型数据等,此处仅介绍几个常用类型.
一、MAT L A B中的变量与常量
不需要对所使用的变量进行事先声明,也不需要指定其类型,它会自动根据所赋予变量的值或所进行的操作来确定变量的类型.如果变量重新赋值将会用新值代替旧值并以新值类型代替旧值类型.
n 例1 a=1;b=0.5;c=a*b,c=‘a*b’
n 变量的命名规则是:
(1)变量名可以有63个字符.字母A~Z、a~z、数字和下划线‘_’都可以作为变量名,但第一个字符必须是一个字母;
(2)变量名区分大小写,如矩阵a和A是不一样的;
(3)变量名中不允许使用标点符号、空格、运算符;
(4)预定义变量名也可以像一个变量名那样使用,但只有在变量由命令clear删除后才能恢复原意,所以,不主张这样使用;
(5)MATLAB提供的标准函数及命令通常是用小写字母书写.
n 例2 命令abs (A)给出了A的绝对值,但ABS(A)会导致在屏幕上显示错误信息.
二、 算术表达式及显示格式
在MATLAB中对十进制数,使用科学记数法可以书写十分大和十分小的数.例如1.23e-6,代表1.23×10-6 .
MATLAB有算术运算符的扩展集,它们是:
1) ^ 幂;2) * 乘; / 右除(正常除); \ 左除;3) + 加;- 减
这是按序给出的运算,1)是最高优先级.在带相同优先级的运算符表达式中,按从左到右的顺序执行.圆括号( )能够用于改变优先级次序.
两种不同的除法:对于数量右除 2 / 5得0 . 4与左除5 \ 2是相同的,斜线号“靠着”的表达式或数字是分母.如
a/(b+c)即为,而a\(b+c)即为 .
命令集4 显示格式
format defformat 将输出格式改为由defformat定义的格式,这类格式可以是如下之一:
short、long、short e、long e、hex、+、bank、rat
也有compact或loose,它给出了一个较紧缩或较宽松的输出格式,但并不影响数值输出格式.
■ 例3
设 b = 1 + 1/3,先定义格式,然后在屏幕上显示b:
format short 得 1.3333 4位小数
format long 得 1.33333333333333 14位小数
format short e 得 1.3333e + 000 4位小数
format long e 得 1.333333333333333e + 000 15位小数
format hex 得 3ff5555555555555 16进制数
format + 得 + 正:+
format bank 得 1.33 美元和美分
format rat 得 4/3 作为一个有理数
三、数学函数
命令集5 数学函数
abs(x) 求x的绝对值,即 |x| .
sign(x) 求x的符号,如果是正的得1;负的得-1;零得0 .
sqrt(x) 求x的平方根,即 .
exp(x) 求x的指数函数,即 .
log(x) 求x的自然对数,即lnx .
log10(x) 求x以10为底的对数,即 .
sin(x) 求正弦x,x为弧度 .
cos(x) 求余弦x,x为弧度.
tan(x) 求正切x,x为弧度.
cot(x) 求余切x,即1 / ( tanx),x为弧度.
asin(x) 求反正弦,即 .
acos(x) 求反余弦,即.
sec(x) 求正割x,即1/(cosx) .
csc(x) 求余割x,即1/(sinx) .
命令集6 取整命令
round(x) 求最接近x的整数.如果x是一个向量,则适用于所有元素.
fix(x) 求0方向最接近x的整数.即负x向上四舍五入,正x向下四舍五入.
floor(x) 求小于或等于x的最接近的整数.
ceil(x) 求大于或等于x的最接近的整数.
rem(x, y) 求整除x/y的余数.
gcd(x, y) 求整数x和y的最大公因子.
lcm(x,y) 求正整数x和y的最小公倍数,也能用于决定最小公因子.
第二节 MATLAB的矩阵的建立与运算
矩阵是 MATLAB 数据存储的基本单元,而矩阵的运算是 MATLAB 语言的核心, 几乎一切运算均是以对矩阵的操作为基础的.
一、矩阵的建立
1. 直接输入法 从键盘上输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小的简单矩阵.规则如下:
n 输入矩阵时要以“[ ]”为其标识符号,矩阵的所有元素必须都在中括号内.
n 矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔.
n 矩阵大小不需要预先定义.
n 矩阵元素可以是运算表达式.
n 若"[ ]"中无元素表示空矩阵.
n 例4 >> A=[1 2 3;4 5 6;7 8 9]
A=
1 2 3
4 5 6
7 8 9
2. 利用“:”生成矩阵
(1) 生成等距的行向量,如
>> a=1:0.5:4
a=
Columns 1 through 7
1 1.5 2 2.5 3 3.5 4
(2)截取指定矩阵中的部分生成新矩阵,如
>> B=A (1:2, : )
B=
1 2 3
4 5 6
即矩阵B是例4中A矩阵的前两行生成.
3. 外部文件读入法 以文件的形式存储,适合大型矩阵输入.读入形式
>> Load+文件名
n Load 函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名的变量,如果不给定文件名,则将自动认为 matlab.mat 文件为操作对象,如果该文件 在 MATLAB 搜索路径中不存在时,系统将会报错.
4. 特殊矩阵的生成
命令集7 1矩阵、零矩阵、单位矩阵和随机矩阵
ones (n) 建立一个n×n的1矩阵.
ones (m , n) 建立一个m×n的1矩阵.
ones (size(A)) 建立一个和矩阵A同样大小的1矩阵.
zeros(n) 建立一个n×n的0矩阵.
zeros(m , n) 建立一个m×n的0矩阵.
zeros(size(A)) 建立一个和矩阵A同样大小的0矩阵.
eye(n) 建立一个n×n 的单位矩阵.
eye(m, n) 建立一个m×n 的单位矩阵.
eye(size(A)) 建立一个和矩阵A同样大小的单位矩阵.
rand 产生在0~1之间均匀分布的随机数;每调用一次给一个新的数值.
rand + i*rand 产生一个复数随机数.
rand(n) 产生一个n×n的矩阵,其元素为0~1之间均匀分布的随机数.
rand(m , n) 产生一个m×n的矩阵,其元素为0~1之间均匀分布的随机数.
二、矩阵的运算
MATLAB中的大多数运算可以直接对矩阵应用.除了算术运算+、-、*、^、/、\外,还有用于转置和共轭的运算符(撇号 ’:实数时为转置,复数时为共轭转置,复数时转置为 .’)、关系运算符和逻辑运算符.
1. 除法 在MATLAB中,有两个矩阵除法的符号,左除 \和右除/ .如果A是一个非奇异方阵,那么A \ B和B / A对应A的逆与B的左乘和右乘,即分别等价于命令 i n v ( A ) *B和B* i n v ( A ).
2. 元素操作算术运算
算术运算也可以元素与元素逐次进行.参与运算的矩阵维数要相同.如果运算是由一点进行的,那么这个运算实行的是元素方式,称为数组运算或点运算.对于加法和减法,数组运算(点运算)和矩阵运算没有差别.数组运算(点运算)符是:
+ - . * . / . \ . ^
n 例5 >> A=[1 2 3;4 5 6;7 8 9];B=ones(3); C=A.*B
C=
1 2 3
4 5 6
7 8 9
3. 关系运算符
MATLAB有用于比较矩阵的六个关系运算符,也可以对矩阵与一个标量进行比较,即矩阵中的每个元素与标量进行比较.
关系运算符如下:
< 小于
< = 小于等于
> 大于
> = 大于等于
= = 等于
~ = 不等于
关系运算符比较对应的元素,产生一个仅包含 1和0的具有相同维数的矩阵.其元素是:
1 比较结果是真
0 比较结果是假
在一个表达式中,算术运算符优先级最高,其次是关系运算符,最低级别是逻辑运算符.圆括号可以改变其顺序.
4. 逻辑运算符
在MATLAB中有四种逻辑运算符:
& 与 ;| 或;~ 非;xor 异或;
逻辑运算符的运算优先级最低.在一个表达式中,关系运算符和算术运算符的运算级别要高于逻辑运算符.
x o r和o r之间的差别在于:表达式中至少有一个是真,那么 o r是真;x o r是表达式中有一个是真但不能两者均为真时才为真.
运算符&和|比较两个相同维数的矩阵,它也能使一个标量与一个矩阵进行比较.逻辑运算符是按元素比较的.零元素表示逻辑值假,任何其他值的元素表示逻辑值真.其结果是一个包含1和0的矩阵.
命令集8 逻辑运算符
A & B 返回一个与A和B相同维数的矩阵.在这个矩阵中, A和B对应元素都为非零时,则对应项为1;有一个为零的项则为0.
A | B 返回一个与A和B相同维数的矩阵.在这个矩阵中, A和B对应元素只要有一个为非零,则对应项为1;两个矩阵对应元素均为零时,则对应项为0.
~A 返回一个与A和B相同维数的矩阵.在这个矩阵中,A对应元素是零时,则对应项为1;A对应元素是非零时,则对应项为0.
xor(A, B) 返回一个与A和B相同维数的矩阵.在这个矩阵中,如果 A和B均为零或均为非零时,则对应项为 0;如果A或B是非零但不是两者同时为非零时,则对应项为1.
练习题
1. 在计算机上,求下列表达式的值.
① ;
② ,其中;
③ , 其中;
④ ,其中 ;
⑤ ,其中 .
2. 完成下列操作,观察结果:
① a=1:5,b=(1:5)’
② y=0:pi/4:pi
③ x=(0:0.2:3)’,y=exp(-x).* sin(x)
④ A=[1 2 3;4 5 6;7 8 9]
B=[1,2,3;4,5,6;7,8,9]
C=[1 2 3
4 5 6
7 8 9]
⑤
3. 已知 , 求
① AB-2A , ② AB-BA,A.*B,B.*A , ③ .
4. ,求 .
5.,求 .
6.x = (1,1,1,1),y = (2,3,4,5)’ ,求 .
7.完成下列操作并观察结果
①
②
③
④
⑤
⑥
⑦
⑧
⑨ C=[ones(4),zeros(4);eye(4),rand(4)]
⑩ C=[ones(4),zeros(4);eye(4),rand(5)]
8. 建立向量
①
②
9. 完成下列命令,观察结果
① a=[1:3;4:6;7:9],x=5;xa=x<=a
② b=[0 4 1;1 0 8;2 0 0];ab=a &b
③ n_b=~b
10. 计算P265
x=1;y(1)=x ;
for k=1:15
x=1/(x+1); y(k)=x;
end
y
11. 计算P266
x=1;y(1)=x ; w=7/25;
for k=1:10
x=w*x+(1-w)/(x+1); y(k)=x;
end
y
12. 练习format命令:对第1题练习各种输出格式.
12
展开阅读全文