科学计算与MATLAB语言
教学内容 第1讲介绍MATLAB概述与运算基础 第2讲介绍MATLAB程序设计 第3讲MATLAB文件操作 第4讲绘图形功能 第5讲线形代数中的数值计算问题 第6讲数据处理方法与多项式 第7讲MATLAB符号计算 第8讲MATLAB的图形用户界面设计
第一讲 MATLAB概述与运算基础 MATLAB语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国 MathWorks 公司推向市场以来,历经十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。
在欧美各高等院校,MATLAB已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为大学生、硕士生以及博士生必须掌握的基本技能。 是英文MATrix LABorotory(矩阵实验室)的缩写。
一. MATLAB特点:
1. 数值计算和符号计算功能 2.MATLAB语言 3.图形功能 MATLAB除了命令行的交互式操作以外,还可以程序方式工作。使用MATLAB可以很容易地实现C或FORTRAN语言的几乎全部功能,包括Windows图形用户界面的设计。 3.图形功能 MATLAB提供了两个层次的图形命令:一种是对图形句柄进行的低级图形命令,另一种是建立在低级图形命令之上的高级图形命令。利用MATLAB的高级图形命令可以轻而易举地绘制二维、三维乃至四维图形,并可进行图形和坐标的标识、视角和光照设计、色彩精细控制等等。
4.应用工具箱 基本部分和各种可选的工具箱。 基本部分中有数百个内部函数。 一. MATLAB特点: 4.应用工具箱 基本部分和各种可选的工具箱。 基本部分中有数百个内部函数。 其工具箱分为两大类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、可视建模仿真功能及文字处理功能等。学科性工具箱专业性比较强,如控制系统工具箱、信号处理工具箱、神经网络工具箱、最优化工具箱、金融工具箱等,用户可以直接利用这些工具箱进行相关领域的科学研究。
二.MATLAB运行环境
一般要求486以上的处理器、16MB以上内存、足够的的硬盘可用空间(随安装组件的多少而定)、CD-ROM驱动器、鼠标等。 二.MATLAB运行环境 硬件: 一般要求486以上的处理器、16MB以上内存、足够的的硬盘可用空间(随安装组件的多少而定)、CD-ROM驱动器、鼠标等。 软件: Windows 9x
三. MATLAB集成环境
MATLAB 5.X是一个高度集成的语言环境,在该环境下既可以进行交互式的操作,又可以编写程序、运行程序并跟踪调试程序。 与一般的Windows 95程序一样,启动MATLAB有两种常见方法: (1)通过“开始”按钮,选择“程序”菜单项,然后打开“MATLAB”菜单中的“MATLAB”程序,就可启动MATLAB系统 (2) 利用Windows 95建立快捷方式的功能,将MATLAB程序以快捷方式放在桌面上。只要在桌面上双击该图标即可启动MATLAB
New命令:用于建立M文件、图形窗口。 2. MATLAB命令窗口 (1) 命令窗口的菜单栏 File菜单项: (1) 命令窗口的菜单栏 菜单栏共包含File、Edit、Window和Help四项。 File菜单项: New命令:用于建立M文件、图形窗口。 Open命令:打开一个已经建立的M文件。 Run Script命令:执行一个命令文件。 Load Workspace命令:将变量装入当前空间。 Save Workspace As命令:把当前工作空间的所有变量用后缀为.mat的文件保存起来。
File菜单项: Show Workspace命令:打开变量浏览器。 Set Path命令:打开MATLAB的路径浏览器。 Preferences命令:打开命令窗口的显示格式。 Print Setup命令:设置打印机的参数。 Print命令:打印和设置一些打印参数。 Print Selection命令:打印选中的内容。 Exit MATLAB命令:退出MATLAB系统。
Undo、Cut、Copy和Paste等命令:分别用于撤销上一次操作、剪切、复制和粘贴。 三. MATLAB集成环境 2. MATLAB命令窗口 Edit菜单项: Undo、Cut、Copy和Paste等命令:分别用于撤销上一次操作、剪切、复制和粘贴。 Clear命令:删除内容。 Select All命令:用于选定所有文本内容。 Clear Session命令:清除命令编辑区的全部内容,但并不删除工作空间中的变量。
Help菜单项: Help Window命令:打开MATLAB的帮助窗口。 Help Tips命令:打开帮助窗口,并首先显示MATLAB的帮助系统的分类和使用方法。 Help Desk(HTML)命令:打开系统WWW浏览器,并显示MATLAB的帮助桌面。 Examples and Demos命令:可以通过演示MATLAB提供的例子来熟悉相关部分的用法。 About MATLAB命令:打开关于MATLAB的版本和版权等信息。 Subsribe命令:打开机器上的WWW浏览器,用户可过填写相关的表格来获得MathWorks公司的产品。
三. MATLAB集成环境 2. MATLAB命令窗口 Window菜单项: 利用Window菜单项可以查看目前MATLAB打开的所有窗口,并可选中某个窗口为当前窗口,从而实现在不同窗口之间的转换。
(2) 命令窗口的工具栏 工具栏提供了一些命令按钮,使用命令按钮可使操作更快捷、更方便。 三. MATLAB集成环境 工作空间 新建 剪切 粘贴 浏览器 新仿真模型 打开 复制 撤消 路径浏览器 帮助
三. MATLAB集成环境 2. MATLAB命令窗口 (3) 命令窗口的命令编辑区 命令编辑区用于输入命令和显示计算结果。键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。 例如: 在MATLAB命令窗口输入命令: a=[1,1.5,2,9,7;0,3.6,0.5,-4,4;7,10,-3,22,33;3,7,8.5,21,6;3,8,0,90,-20] 将显示一个5*5矩阵。
三. MATLAB集成环境 2. MATLAB命令窗口 (4)MATLAB帮助系统 MATLAB 5.X里有以下几种方法可获得帮助:帮助命令、帮助窗口、MATLAB帮助桌面或在线帮助页。对于Internet用户,还可直接链接到MathWorks公司的网页上(http://www.mathworks.com)寻求帮助。
三. MATLAB集成环境 3. MATLAB的退出 要退出MATLAB系统,有三种方法: (1)单击MATLAB命令窗口的“关闭”按钮。 (2)在命令窗口File菜单中选Exit MATLAB命令。 (3)在MATLAB命令窗口输入Exit和Quit命令。 在MATLAB中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多19个字符,且区分字母的大小写。MATLAB提供的标准函数名必须用小写字母。
四. MATLAB运算量
1.变量和赋值语句 MATLAB赋值语句有两种形式: (1) 变量=表达式 (2) 表达式 其中“表达式”是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。 [注] 第二种语句形式下,将表达式的值赋给MATLAB的永久变量ans。 如果在语句的最后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运算的结果。在一条语句中,如果表达式太复杂,一行写不下,可以加上三个小黑点(续行符)并按下回车键,然后接下去再写。例如 s=1-1/2+1/3-1/4+1/5-1/6+1/7-…- 1/8+1/9-1/10+1/11-1/12;
2.MATLAB表达式 算术表达式。 关系表达式。 逻辑表达式。 运算符有:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方) 对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。 关系表达式。 运算符有:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于) 逻辑表达式。 运算符有:&(与)、|(或)和~(非)
(1)在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。 四. MATLAB运算量 2. MATLAB表达式 运算法则: (1)在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。 (2)参与逻辑运算的可以是两个标量、两个同维矩阵或参与逻辑运算的元素一个为标量,另一个为矩阵。 (3)在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。
五. 矩阵运算
四. MATLAB运算量 矩阵是MATLAB最基本的数据对象,MATLAB的大部分运算或命令都是在矩阵运算的意义下执行的。在MATLAB中,不需对矩阵的维数和类型进行说明,MATLAB会根据用户所输入的内容自动进行配置。 1.建立矩阵 建立矩阵可以用:直接输入法、利用函数建立矩阵和利用M文件建立矩阵。 直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。(也可以用回车键代替分号) 例如,键入命令: A=[1 2 3;4 5 6;7 8 9] 输出结果是: A = 1 2 3 4 5 6 7 8 9
利用函数建立数值矩阵:MATLAB提供了许多生成和操作矩阵的函数,可以利用它们去建立矩阵。 例如:reshape函数和diag函数等。 1.建立矩阵 利用函数建立数值矩阵:MATLAB提供了许多生成和操作矩阵的函数,可以利用它们去建立矩阵。 例如:reshape函数和diag函数等。 reshape函数用于建立数值矩阵。 diag函数用于产生对角阵。 利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。其步骤为: 第一步:使用编辑程序输入文件内容。 第二步:把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。 第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。
利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。其步骤为: 四. MATLAB运算量 1.建立矩阵 利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。其步骤为: 第一步:使用编辑程序输入文件内容。 第二步:把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。 第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。
四. MATLAB运算量 2.冒号表达式 在MATLAB中,冒号是一个重要的运算符。利用它可以产生向量,还可用来拆分矩阵。冒号表达式的一般格式是: e1:e2:e3其中e1为初始值,e2为步长,e3为终止值。冒号表达式可产生一个由e1开始到e3结束,以步长e2自增的行向量。 3.MATLAB常用数学函数 MATLAB提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。 例如: A= [1 2 3;4 5 6] B=fix(pi*A) C=cos(pi*B)
4.矩阵的基本运算 (1)矩阵转置 (2)矩阵加和减 (3)矩阵乘法 (4)矩阵除法 A\b=inv(A)*b (5)矩阵的乘方 a^2 四. MATLAB运算量 4.矩阵的基本运算 (1)矩阵转置 (2)矩阵加和减 (3)矩阵乘法 (4)矩阵除法 A\b=inv(A)*b (5)矩阵的乘方 a^2
5.建立矩阵的函数 6.数组运算 常用函数有: eye(size(A)) 产生与A矩阵同阶的单位矩阵 zeros(m,n) 产生0矩阵 四. MATLAB运算量 5.建立矩阵的函数 常用函数有: eye(size(A)) 产生与A矩阵同阶的单位矩阵 zeros(m,n) 产生0矩阵 ones(m,n) 产生幺矩阵 rand (m,n) 产生随机元素的矩阵 Size(a) 返回包含两个元素的向量。 Length(a) 返回向量的最大者。 6.数组运算 (1) 数组的加和减 (2) 数组的乘和除 (3) 数组的乘方
六.应用举例
【例1】 求解线性方程组AX=B 1 1.5 2 9 7 3 0 3.6 0.5 -4 4 -4 其中A= 7 10 -3 22 33 , B= 20 3 7 8.5 21 6 5 3 8 0 90 -20 16
在MATLAB命令窗口输入命令: a=[1,1.5,2,9,7;0,3.6,0.5,-4,4;7,10,-3,22,33;3,7,8.5,21,6;3,8,0,90,-20]; b=[3;-4;20;5;16]; x=a\b 得到的结果是: x = 3.5653 -0.9255 -0.2695 0.1435 0.0101
【例2】 求方程 x^4+7x^3 +9x-20=0的全部根。 在MATLAB命令窗口输入: p=[1,7,0,9,-20]; %建立多项式系数向量 x=roots(p) %求根 得到的结果是: x = -7.2254 -0.4286 + 1.5405i -0.4286 - 1.5405i 1.0826