数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 124857|回复: 83

Matlab详细教程

  [复制链接]
发表于 2004-4-14 19:56:28 | 显示全部楼层 |阅读模式
--------------------------------------------------------------------------------

第一章 简介  
1.1 计算机应用与工程问题  
1.2 工程问题的解决方式  
1.3 认识你/你的电脑工作环境

第二章 MATLAB 简介  
2.1 什么是MATLAB  
2.2 基本功能  
2.2.1 MATLAB 的视窗环境  
2.2.2 简易数学  
2.2.3 变数  
2.2.4 其它功能  
2.3 线上说明  
2.4 阵列与矩阵  
2.4.1 简易阵列  
2.4.2 建立阵列  
2.4.3 阵列运算  
2.4.4 特殊矩阵  
2.4.5 阵列运算的特色  
2.5 简易绘图  
2.6 输入及输入  
2.6.1 交谈式的输入  
2.6.2 输出格式  
2.7 如何撰写 MATLAB 程式  
2.7.1 如何在自己的目录执行程式  
2.8 储存及读取数据  
2.9 其它绘图功能  
2.10问题范例:涡轮螺旋桨引擎

第三章 进阶的绘图功能  
3.1 绘图选项  
3.1.1 横轴和纵轴的控制  
3.1.2 子图  
3.1.3 图形放大及缩小  
3.1.4 函数分布的快速绘图  
3.1.5 列印功能  
3.1.6 其它的功能  
3.2 三维绘图  
3.1.1 三维的曲线绘图  
3.1.2 曲面及等值线绘图

第四章 MATLAB函数 --- 语音讯号分析  
4.1 数学函数  
4.1.1 常见数学函数  
4.1.2 三角和双曲线函数  
4.1.3 复数  
4.1.4 多项式函数  
4.2 数据分析函数  
4.2.1 极值、平均、总和、连乘及排序  
4.2.2 变异数  
4.2.3 长条分布函数  
4.3 选择指令及函数  
4.3.1 关系及逻辑运算  
4.3.2 if-else-end 语法  
4.4 范例问题:语音讯号分析  
4.5 使用者自定函数  
4.6 乱数  
4.6.1 均匀乱数  
4.6.2 常态乱数  
4.7 矩阵运算函数  
4.8 回圈  
4.8.1 For 回圈  
4.8.2 While 回圈

第五章 线性代数与矩阵 --- 蛋白质分子量分析  
5.1 矩阵运算  
5.1.1 基本矩阵运算元  
5.1.2 矩阵多项式  
5.2 范例问题:蛋白质的分子量计算  
5.3 矩阵函数  
5.3.1 反矩阵、矩阵秩与行列式  
5.3.2 特徵值与特徵向量  
5.3.3 矩阵分解

第六章 解联立方程式 --- 电路分析  
6.1 利用矩阵解法  
6.2 范例问题:电路分析

第七章 内插及曲线拟合 --- 机械手臂路径  
7.1 内插  
7.1.1 一维内插  
7.1.2 二维内插  
7.1.3 Spline 内插  
7.2 范例问题:机械手臂路径  
7.3 曲线契合  
7.3.1 线性回归  
7.3.2 多项式回归  
7.3.3 多项式契合及函数计算

第八章 解方程式根  
8.1 多项式的根  
8.2 非线性方程式的实根  
第九章 数值微分及积分 --- 管流分析  
9.1 数值积分  
9.1.1 梯形法  
9.1.2 二次函数法  
9.2 范例问题:管流分析  
9.3 数值微分  
9.3.1 差分表示法  
9.3.2 差分函数

第十章 解常微分方程式 --- 发动机性能分析  
10.1 微分方程式  
10.2 阮奇-库达方法  
10.3 范例问题:飞机发动机的加速性能分析  
10.4 高阶常微分方程式

第十一章 符号运算 --- 气象气球  
11.1 符号代数  
11.1.1 符号表示式  
11.1.2 数学式的化简  
11.1.3 符号表示式的运算  
11.2 解方程式  
11.2.1 一般方程式  
11.2.2 常微分方程式  
11.3 微分与积分  
11.3.1 微分  
11.3.2 积分  
11.4 范例问题:气象气球

第十二章 讯号处理 --- 频道滤波  
12.1 频域分析  
12.1.1 数位讯号  
12.1.2 快速富立叶转换  
12.2 滤波分析  
12.2.1 类比转换函数  
12.2.2 数位转换函数  
12.2.3 部份分数展开  
12.3 数位滤波  
12.4 数位滤波设计  
12.4.1 利用类比原型的IIR 滤波设计  
12.4.2 直接IIR 滤波设计  
12.4.3 直接FIR 滤波设计  
12.5 范例问题: 频道分离滤波

第十三章 控制系统 --- 雷射光束校准  
13.1 系统模拟  
13.1.1 转换函数  
13.1.2 状态-空间模式  
13.1.3 离散时间系统  
13.2 模型转换  
13.3 设计及分析函数  
13.3.1 Bode 图  
13.3.2 Nyquist 图  
13.3.3 根轨迹图  
13.3.4 步阶反应  
13.4 范例问题:雷射光束导引之镜面控制  

※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.112.103.235]

BBS水木清华站∶精华区
 楼主| 发表于 2004-4-14 19:56:58 | 显示全部楼层
1.1 计算机应用与工程问题

--------------------------------------------------------------------------------

自十九世纪以来工业革命至今,持续了二百年的科技进展,使世人的生活水准大为提高。在我们即将迈入二十一世纪的此时,回顾近年来的重大工程成就,影响世界深远的为数不少,而依据美国国家工程学院在1989年,所选出的25年的十大重大工程成就计有:  

微处理机  

登陆月球  

人造卫星的应用  

电脑辅助设计及制造  

大型越洋客机  

先进复合材料  

电脑断层扫描  

基因工程  

雷射  

光纤  

在我们缅怀过去的光辉成就的同时,未来的世纪仍有更坚钜的工程问题有待解决,在此列举几个:气象预测及全球变迁,电脑语音辩认,人类基因解读计划,交通工具性能提升,原油及天然气探勘等。  


在上述提及的工程问题成就或是挑战,同学可以从以下杂志、书籍或是WWW网址查询进一步的资料:  

牛顿月刊 (从过期和当期期刊,可以找到相当丰富的参考资料)  

杨玉龄译,基因圣战,毕修普,瓦德霍兹合著,台北市,天下文化出版,1994 (有人类基因解读计划的背景说明)。  

全球变迁中心 http://sun.gcc.ntu.edu.tw/

网路搜寻引擎  

蕃薯藤 http://taiwan.csie.ntu.edu.tw/b5/yam

GAIS http://gais.cs.ccu.edu.tw/cgais.html

Yahoo http://www.yahoo.com/

Alta Vista http://www.altavista.digital.com

Scientific American http://www.thesphere.com/sas/SciAm/SciAm.html

New Scientist Planet http://www.newscientist.com



由于我们所面对的工程问题越来越复杂,过去所依赖分析的技术已逐渐不敷使用。利用电脑来分析及解决工程问题,已是当今工程师的必要工具。如何善用电脑应用软体来帮助分析工程问题,将是各位同学往后所要学习的重点,也是这门课的目的。如此,再你踏出校园就业时,才能练就一

身好本事,以应付市场之需。  


在此门课我们会利用的电脑工具有:  

网际网路 (Internet)  
电子邮件 (Email)  
电子公布栏 (Electronic Bulletin Boards)  
全球资讯网 (World Wide Web, WWW)  
有关上述各项工具的说明,大家可以参考由萧松瀛所翻译的中文WWW-FAQ (http://www.acer.net/document/cwwwfaq/index.html)和中文Internet -FAQ (http://www.acer.net/document/internet/index.html),里面有常见问题的解答。


以下列出几个与此门课有关的网站  

MATLAB的网站(MathWorks公司) http://www.mathworks.com/

Prentice-Hall 图书公司 http://www.prenhall.com

吴俊 网站 就是你现在浏览的网站  http://www.ncu.edu.tw/~junwu


--------------------------------------------------------------------------------
   
 楼主| 发表于 2004-4-14 19:57:18 | 显示全部楼层
1.2 工程问题的解决方式

--------------------------------------------------------------------------------

解题五部曲  

简要的叙述问题  
描述输入/输出的资讯  
利用简易数据将问题以手或计算器先行演算  
撰写MATLAB程式  
以多组数据测试MATLAB解  

问题解析范例


详见课本说明 (p. 21-24)


--------------------------------------------------------------------------------
 楼主| 发表于 2004-4-14 19:57:39 | 显示全部楼层
1.3 认识你/你的电脑工作环境

--------------------------------------------------------------------------------
应用软体的简介

机械系馆E2-308 PC教室有 30 台486/586电脑,上面安装有中文Win3.1 少数几台有是安装Win95 ,MATLAB 4.0及在Win3.1上网路的软体 NetTerm, Netscape。


Win3.1 不多作说明。电脑开机后按Esc后由Dos环境键入wins即可进入 Win3.1。


MATLAB 4.0 我们这门课的主角。由Win3.1选择MATLAB for Windows的图示(Icon),即可进入MATLAB,会看到二个图示:MATLAB with SIMULINK, MATLAB Help。其中的MATLAB with  
SIMULINK就是MATLAB再加上另一个作动态模拟的SIMULINK的组合,由于我们只须用到MATLAB的部份,SIMULINK部份就不做介绍。 MATLAB Help则是MATLAB的线上使用说明,内有详细的MATLAB的各项功能解说及函数使用简介。  


NetTerm 网路上连到各个电脑主机的应用软体,可以把PC模拟成终端机。由Win3.1选择 网路 的图示,会看到几个图示:Tcpman, NetTerm,  
Netscape等。这些软体都是上网路的工具。在执行NetTerm前须先按Tcpman来启动在Windows的网路协定,之后再按NetTerm,即可开启NetTerm的视窗。至于它的功能如何使用,我们会做实际示范。  


Netscape 全球资讯网 (WWW) 的浏览器 (browser)。执行Netscape前的准备工作与上述的NetTerm相同。至于它的功能如何使用,我们也会做实际示范。



--------------------------------------------------------------------------------
   
 楼主| 发表于 2004-4-14 19:58:00 | 显示全部楼层
第二章 工程问题挑战:涡轮螺旋桨引擎

--------------------------------------------------------------------------------

在这章开始介绍MATLAB的使用环境,阵列与矩阵的运算差别、简易绘图功能、和撰写MATLAB程式,储存及读取数据等的基本功能。  



--------------------------------------------------------------------------------

第二章 工程问题挑战:涡轮螺旋桨引擎  
2.1 什么是MATLAB  
2.2 基本功能  
2.3 线上说明  
2.4 阵列与矩阵  
2.5 简易绘图  
2.6 输入及输入  
2.7 如何撰写 MATLAB 程式  
2.8 储存及读取数据  
2.9 其它绘图功能  
2.10 问题范例:涡轮螺旋桨引擎  

--------------------------------------------------------------------------------
   
 楼主| 发表于 2004-4-14 19:58:33 | 显示全部楼层
2.1 什么是MATLAB

--------------------------------------------------------------------------------

MATLAB (MATrix LABoratory)具有用法简易、可灵活运用、程式结构强又兼具延展性。  

以下为其几个特色:  

功能强的数值运算 - 在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问 题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上。  
先进的资料视觉化功能 - MATLAB的物件导向图形架构让使用者可执行视觉数据分,并制作高品质的图形,完成科学性或工程性图文并茂的文章。  
高阶但简单的程式环境 - 做为一种直译式的程式语言,MATLAB容许使用者在短时间内写完程式,所花的时间约为用 FORTRAN 或 C 的几分之一,而且不需要编译(compile)及联结 (link) 即能执行,同时包含了更多及更容易使用的内建 功能。  
开放及可延伸的架构 - MATLAB容许使用者接触它大多数的数学原使码,检视运算法,更改现存函数,甚至加入自己的函数使 MATLAB成为使用者所须要的环境。  
丰富的程式工具箱 - MATLAB的程式工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提 供了使用者在特别应用领域所需之许多函数。现有工具箱有:符号运算(利用Maple V的计算核心执行  
)、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控 制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析。  

MATLAB有几种在不同电脑作业系统的版本,例如在视窗3.1上的MATLAB for Windows, SIMULINK,在麦金塔上的MATLAB for Macintch,另外还有在Unix上的各种工作站版本。基本上这些版本主要是提供方便的操作环境,采用图形介面。以下针对前述的几种在PC上的MATLAB  
版本做简要说明:  

MATLAB for Windows,此版本须要在PC电脑的中英文视窗3.1下执行。与旧的DOS版本不同的是对图形显示有大幅改 善,使得软体更合适做信号处理及影像处理的分析。此外一些重要的设定指令也改为由视窗中选择。目  
前308是安装的是4.0版,不过较新的版本为4.2,而最新版的5.0也刚刚上市。4.0和4.2的差异不是很大, 而5.0未用过所以其功能如合并不清楚。有兴趣了解者请到MathWorks网站一探究竟。  
SIMULINK,此软体必须在中英文视窗3.1下执行,是给控制领域的使用者做分析线性/非线性、离散系统 。此外也提供很方便的示波器输出,做为讯号的监控。  
Student Edition of MATLAB,除了上述各类的MATLAB专业版本,在1995年Mathworks公司又推出学生专 用的Student Edtion of MATLAB,这个版本为4.2,而它的功能与专业版几乎相同,但是多了一些限制。其限制简述如下: (1)每个向量能能使用的元素个数上限为8192  
(2)每个矩阵的元素总数上限也为8192,此外不论行或列向量的个数上限为32 (3)程式不能和C或是Fortran的副程式作动态连结。但是它附了二个工具箱:符号运算和讯号处理,在这门  课的后半部份我们将有机会学习如何使用这二个工具箱。  

我们在308室安装的是MATLAB 4.0,另外也加装符号运算和讯号处理二个工具箱,方便上课教学。不过你若是自己有电脑,可以考虑买学生版的MATLAB,做课后练习。  



--------------------------------------------------------------------------------
   
 楼主| 发表于 2004-4-14 19:58:56 | 显示全部楼层

2.2.2 简易数学

--------------------------------------------------------------------------------

我们先从MATLAB的数学运算开始说明。就像你的计算器一样,数学式的计算是直接了当。如果我们要算 1+2+3及1×10+2×20+3×30这二个式子,以下例子接著提示符号>>之后的是要键入的算式,MATLAB将计算的结果以ans显示。如果算式是x=1+2+3,MATLAB将计算的结果以x显示。  

>> 1+2+3  

ans =  

6  

>> 1*10 + 2*20 + 3*30  

ans =  

140  

>> x=1+2+3  

x =  

6  

如果在上述的例子结尾加上;,则计算结果不会显示在指令视窗上,要得知计算值只须键入该变数值即可  

>> x=1+2+3;  

>> x  

x =  

6


以下的例子,显示MATLAB对使用变数的弹性  

>> apple=5  

apples =  

5  

>> orange=10  

orange =  

10  

>> total_cost=apple*2+orange*4  

total_cost =  

50  

>> average_cost=total_cost/(apple+orange)  

average_cost =  

3.33334


MATLAB提供基本的算术运算有:  

加 (+)、减 (-)、乘 (*)、除 (/)、幂次方 (^),范例为:5+3, 5-3, 5*3, 5/3, 5^3


其它在计算常用的功能我们来看一个算式来说明。要计算面积Area = ,半径r = 2,则可键入  

>> r=2;  

>> area=pi*r^2;  

>> area =  

12.5664


我们也可以将上述指令打在同一行,以, 或是; 分开,例如  

>> r=2, area=pi*r^2  

>> r=2; area=pi*r^2;


请注意上述二式的差异,前者有计算值显示,而后者则无。如果一个指令过长可以在结尾加上...(代表此行指令与下一行连续),例如  

>> r=2;  

>> area = pi ...  

*r^2


另外一个符号注解是由%起头,也就是说在%之后的任何文字都被视为程式的注解。注解的功能是简要的说明程式的内容,过多的注解在程式中或许没有必要,但是我们写程式时往往用了太少的注解。任何可能产生混淆的地方都应该省用注解,将适量的注解可在往后想了解程式时能节省一些

不必要的时间与「有看没有懂」的痛苦。例如  

>> r=2; % 键入半径  

>> area=pi*r^2; % 计算面积  


MATLAB可以将计算结果以不同的精确度的数字格式显示,我们可以在指令视窗上的功能选单上的Options下选 Numerical Format,或者直接在指令视窗键入以下的各个数字显示格式的指令,以π值为例 指令 数字值 说明   
format short 3.1416 预设的 4 位有效小数位数   
format long 3.14159265358979 15 位有效小数位数   
format short e 3.1416e+000 4 位有效小数位数加上指数表格式   



--------------------------------------------------------------------------------
 楼主| 发表于 2004-4-14 19:59:12 | 显示全部楼层
2.2.3 变数

--------------------------------------------------------------------------------

MATLAB对使用变数名称的规定:  

变数名称的英文大小写是有区别的(apple, Apple, AppLe,三个变数不同)。  
变数的长度上限为 19 个字元。  
变数名的第一个字必须是一英文字,随后可以掺杂英文字、数字或是底线。  

以下列出MATLAB所定义的特别变数及其意义 变数名 意义  
help 线上说明, 如 help quit   
who 列出所有定义过的变数名称   
ans 预设的计算结果的变数名   
eps MATLAB定义的正的极小值=2.2204e-16   
pi 内建的π值   
inf ∞值,无限大 ()   
NaN 无法定义一个数目 ()   



--------------------------------------------------------------------------------
   
 楼主| 发表于 2004-4-14 19:59:28 | 显示全部楼层
2.2.4 其它功能

--------------------------------------------------------------------------------

MATLAB利用了↑↓二个游标键可以将所下过的指令叫回来重覆使用。按下↑则前一次指令重新出现,之后再按Enter键,即再执行前一次的指令。而↓键的功用则是往后执行指令。  

其它在键盘上的几个键如→←, Delete, Insert,其功能则显而易见,试用即知无须多加说明。  


当要暂时执行作业系统(例如Dos)的指令而还要执行MATLAB,可以利用!加上原作业系统的指令,例如 !dir, !format a:。


键入who可以查看所有定义过的变数名称。而键入clear则是去除所有定义过的变数名称;如果只是要去除x及y 二个变数则可以键入clear x y。


Ctrl-C(即同时按Ctrl及C二个键)可以用来中止执行中的MATLAB的工作。  



--------------------------------------------------------------------------------
 楼主| 发表于 2004-4-14 19:59:50 | 显示全部楼层

Matlab详细教程

2.3 线上说明

--------------------------------------------------------------------------------

在MATLAB系统中相关的线上(on-line)求助方式有三:  

是利用help指令,如果你已知要找的题材 (topic) 为何的话,直接键入help <topic>。所以即使身旁没有使用手册,也可以使用help指令查询不熟悉的指令或是题材之用法,例如help sqrt, help topic。  
是利用lookfor指令,它可以从你键入的关键字(key-word)(即始这个关键字并不是MATLAB的指令)列出所有相关的题材,例如lookfor cosine, lookfor sine。  
是利用指令视窗的功能选单中的Help,从中选取Table of Contents(目录)或是Index(索引)。  

例如  

>> help sqrt  

SQRT Square root.  

SQRT(X) is the square root of the elements of X. Complex  

results are produced if X is not positive.  


>> help monkey  

monkey not found.


>>* lookfor tangent  

ACOT Inverse cotangent.  

ACOTH Inverse hyperbolic cotangent.  

ATAN Inverse tangent.  

ATANH Inverse hyperbolic tangent.  

ATAN2 Four quadrant inverse tangent.  

COT Cotangent.  

COTH Hyperbolic cotangent.  

TAN Tangent.  

TANH Hyperbolic tangent.


>> help atan  

ATAN Inverse tangent.  

ATAN(X) is the arctangent of the elements of X. See also ATAN2.



--------------------------------------------------------------------------------
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-30 11:28 , Processed in 0.057598 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表