实验1 MATLAB软件基础与矩阵基本运算
1.1 引 言
MATLAB(matrixlaboratory)是MathWorks公司于1984年开发的,目前国际上*流行、应用*广泛的科学与工程计算软件,可以实现数值分析、优化、微分方程数值解、信号处理、图像处理等若干领域的计算,也是国内外高校和研究部门进行许多科学研究的重要工具.它具有强大的计算和绘图功能、大量稳定可靠的算法库和简洁**的编程语言,事实上已成为数学计算工具方面的标准.
MATLAB建立在向量、数组和矩阵的基础上,使用方便,人机界面直观,输出结果可视化,深受用户欢迎.本书采用MATLAB6.5版.
1.2 MATLAB软件的基本命令
当在计算机中成功安装了MATLAB6.5版后,双击MATLAB软件的图标即可进入MATLAB的界面.MATLAB的通用操作界面包括9个常用的窗口,分别是命令窗口(CommandWindow)、历史命令窗口(CommandHistory)、当前目录浏览器窗口(CurrentDirectoryBrowser)、工作空间浏览器窗口(WorkspaceBrowser)、数组编辑器窗口(ArrayEditor)、交互界面分类目录窗口(LaunchPad)、M文件编辑/调试器窗口(Editor/Debugger)、帮助/浏览器窗口(HelpNavi?gator/Browser)和程序性能剖析窗口(Profiler).
在命令窗口中出现“>>”后即可输入命令,如cos(pi/2),然后按下回车键即可执行相应的命���.
1.2.1 数学运算符号
MATLAB中常用的数学运算符号如表1.1所示.
表1.1 数学运算符号表
运算符 数学意义 运算符 数学意义
+ 加法运算 .\ 点除运算
- 减法运算 ∧ 乘幂运算
* 乘法运算 \ 左除运算
. * 点乘运算 / 右除运算
例1.1 要计算2+3×(6-1)-52/4 , 可在命令窗口中输入
>>2+3*(6-1)-5^2/4ans= 10.7500例1.2 要计算2/3+
2,可在命令窗口中输入>>2/3+2^(1/2) %“/”表示右除,3为分母ans= 2.0809百分号“%”在MATLAB中只起到注释作用,可以在“%”后面输入对本行命
令的注释,注释的作用是帮助阅读程序,注释内容不影响程序运行.因此,也可以如
下这样输入:
>>3\2+sqrt(2) %“\”表示左除,3为分母
ans=
2.0809
例1.3 要计算2+π,可在命令窗口中输入
>>2+pi %pi表示圆周率π
ans=
5.1416
1.2.2 函数
MATLAB软件提供了大量的库函数,表1.2给出了一些常用的函数,函数的自变量要放在小括号“()”内.
表1.2 常用的函数
函数 数学含义 函数 数学含义 函数 数学含义
fix (x ) 向零方向取整 sin(x) sin x tan(x) tan x
max([x1,x2,.]) max{x1,x2,.} cos(x) cot x cot(x) cot x
min([x1,x2,.]) min{x1,x2,.} factorial(n) n ! abs(x) |x |
sign(x) x 的符号函数 nchoosek(n,k) Ck n asin(x) arcsin x
sqrt (x ) x 的算术平方根 real(z) z 的实部 acos(x) arccos x
angle(z) z 的辐角主值 ceil(x) 向上取整 atan(x) arctan x
round(x) 四舍五入取整 log (x ) ln x acot(x) arccotx
floor(x) 向下取整 imag(z) z 的虚部 log10(x) log10x
exp(x) ex conj(z) z 的共轭
例1.4 求在y=sinx+lnx+ex +
x+arctanx在x=π/4时的值,可在命令窗口中输入
>>x=pi/4; %分号之前的命令不显示结果
y=sin(x)+log(x)+exp(x)+sqrt(x)+atan(x) %自变量要用小括号括起来
y= 4.2108做做看:去掉语句“x=pi/4;”中的分号“;”,看运行结果有什么不同.
1.2.3 变量
MATLAB中变量的命名规则如下:
(1)变量名区分字母的大小写.例如,“a”和“A”是不同的变量.
(2)变量名不能超过63个字符.
(3)变量名必须以字母开头,变量名的组成可以是任意字母、数字或下划线,
但不能含有空格和标点符号.例如,“1A”,“A%”都是不合法的变量名.MATLAB还有一些特殊变量,如表1.3所示.
表1.3 特殊变量表
特殊变量 取值
ans 运算结果的默认变量名
pi 圆周率π
eps 计算机的*小数
flops 浮点运算数
inf 无穷大,如1/0
NaN或nan 非数,如0/0,∞/∞ ,0 × ∞
特殊变量取值
i或ji=j=
-1nargin函数的输入变量数目ngrgout函数的输出变量数目realmin*小的可用正实数realmax*大的可用正实数
1.3 矩阵和数组
MATLAB是Matrixlaboratory,即矩阵实验室的缩写,因此,MATLAB*基本、*重要的功能就是进行矩阵的运算.
1.3.1 矩阵输入
MATLAB中的矩阵表示应遵循以下基本规则:
(1)矩阵元素应用方括号[]括住;
(2)每行内的元素间用逗号或空格隔开;
(3)行与行之间用分号或回车键隔开;
(4)元素可以是数值或表达式.
1. 通过显式元素列表输入矩阵或向量
例1.5 >>A=[1,2,3;456;7,3*1,8]%[]表示矩阵,分号分隔行,逗号或空格分隔元素
A=
1 2 3
4 5 6
7 3 8
也可以如下这样输入:
>>A=[123
456
789] %用回车分隔行
2. 由矩阵生成函数产生特殊矩阵
MATLAB提供了很多能够产生特殊矩阵的函数,各函数的功能如表1.4所示.
表1.4 矩阵生成函数
函数名功能
zeros(m,n)产生m×n的全0矩阵
ones(m,n)产生m×n的全1矩阵rand(m,n)产生m×n的均匀分布的随机矩阵,元素在0到1之间取值randn(m,n)产生m×n的正态分布的随机矩阵magic(n)产生n阶魔方矩阵(矩阵的行、列和对角线上元素的和相等)eye(m,n)产生m×n的单位矩阵
例A= 1.6 >>A=zeros(2,3)
0 0 0 0 0 0>>B=eye(3)%只有一个参数时,产生3阶单位方阵B= 1 0 0 0 1 0 0 0 1
1.3.2 矩阵的元素操作
MATLAB利用下标访问矩阵的元素.
例1.7 >>A=[123;456;789];
>>a1=A(1,2) %A的第1行第2列的元素
a1=
2
>>B1=A(2,:) %A的第2行
B1=
4 5 6
>>B2=A(:,1) %A的第1列
B2=
1
4
7
>>B3=A(1:3,2:3) %取A的第1~3行,第2~3列构成的新矩阵
B3=
2 3
5 6
8 9
>>B4=A(3:-1:1,:) %以逆序提取A的第3~1行,构成新矩阵
B4=
7 8 9
4 5 6
1 2 3
>>A(1:2,:)=[] %删除A的第1~2行
A=
7 8 9
>>C=[ones(2),eye(2)]%将两个矩阵拼接成一个新矩阵
C=
1 1 1 0
1 1 0 1>>D=[ones(2);eye(2)] %将两个矩阵拼接成一个新矩阵D=
1 1
1 1 1 0 0 1
1.3.3 矩阵的基本运算
矩阵的基本运算如下:
(1)矩阵加法:A+B;
(2)矩阵乘法:A*B;
(3)数与矩阵的乘法:c*A;
(4)矩阵的转置:A';
(5)方阵的行列式:det(A);
(6)方阵的逆:inv(A);
(7)方阵的特征值与特征向量:[V,D]=eig(A).例1.8 >>A=[12;34];B=[23;14];c=2;>>A+B
ans= 3 5 4 8>>A*Bans= 4 11 10 25>>c*Aans= 2 4 6 8>>A'%矩阵A的转置ans= 1 3 2 4>>det(A) %矩阵A的行列式值ans= -2>>inv(A)%矩阵A的逆矩阵ans=