matlab 软件简介

Post on 18-Jan-2016

142 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

MATLAB 软件简介. 九江职业技术学院基础课部 2004.3. 学习 MATLAB. 什么是 MATLAB? MATLAB 能干什么 ? 掌握 MATLAB …… 应用实例. 什么是 MATLAB?. 1 .MATLAB 代表 MAT rix LAB oratory 它的首创者是美国新墨西哥大学计算机系的系主任 Cleve Moler 博士,他在教授线性代数课程发现其他语言很不方便,篇构思开发了 MATLAB 。最初采用 FORTRAN 语言编写, 20 世纪 80 年代后出现了 MATLAB 的第二版,全部采用 C 语言编写 . - PowerPoint PPT Presentation

TRANSCRIPT

MATLAB 软件简介

九江职业技术学院基础课部2004.3

学习 MATLAB

• 什么是 MATLAB?• MATLAB 能干什么 ?• 掌握 MATLAB ……• 应用实例

什么是 MATLAB?1 .MATLAB 代表 MATrix LABoratory• 它的首创者是美国新墨西哥大学计算机系的系主任

Cleve Moler 博士,他在教授线性代数课程发现其他语言很不方便,篇构思开发了 MATLAB 。最初采用 FORTRAN 语言编写, 20 世纪 80 年代后出现了 MATLAB 的第二版,全部采用 C 语言编写 .

• 1984 年 Moler 博士和一批数学家及软件专家创建了 MathWorks 公司,专门开发 MATLAB 。

• 1993 年出现了微机版,到 2003 年是 6.5 版

2 . 一种演草纸式的科学计算语言

3 .MATLAB 是一高性能的技术计算语言 . • 强大的数值计算和工程运算功能• 符号计算功能• 强大的科学数据可视化能力 • 多种工具箱

MATLAB 能干什么?MATLAB 可以进行:• 数学计算、算法开发、数据采集• 建模、仿真、原型 • 数据分析、开发和可视化• 科学和工程图形应用程序的开发,包括图形用户

界面的创建。MATLAB 广泛应用于:• 数值计算、图形处理、符号运算、数学建模、系

统辨识、小波分析、实时控制、动态仿真等领域。

掌握 MATLAB ……MATLAB 的构成:• MATLAB 开发环境:进行应用研究开发的交互式平台• MATLAB 数学与运算函数库:用于科学计算的函数• MATLAB 语言:进行应用开发的编程工具• 图形化开发:二维、三维图形开发的工具• 应用程序接口 (API) :用于与其他预言混编• 面向专门领域的工具箱:小波工具箱、神经网络工具

箱、信号处理工具箱、图像处理工具箱、模糊逻辑工具箱、优化工具箱、鲁棒控制工具箱等几十个不同应用的工具箱。

开发环境 包括:命令窗口、图形窗口、编辑窗口、帮助窗口。

命令窗口• 可在提示符后输入交互式命令 • 结果会自动的产生• 例如:

MATLAB prompt (>>) and cursor (|)

command (typed at prompt)

MATLAB output

图形窗口在窗口中输入:• Plot([1,2,4,9,16],[1,2,3,4,5])• MATLAB 划出如下图形 :

编辑窗口• 用来创建和修改 M-files (MATLAB 脚本 )

帮助窗口

The MATLAB Language

MATLAB 语言的特点• Matlab 的基本数据单元是不需指定维数的矩

阵。• Matlab 的所有计算都是通过双精度进行的,

在内存中的数都是双精度的。• double 是一个双精度浮点数,每个存储的双

精度数用 64 位。• char 用于存储字符,每个存储的字符用 16 位。

程序

•M文件与m函数 •图形显示

•流程控制

其它输出

•函数

•语句

变量 •各种运算符

MATLAB 的程序构成:

常变量及其命名规则

• 变量名可以有数字、字母、下划线构成;• 变量的首字符必须是字母;•区分变量名的大小写• 每个变量名最长只能包含 19 个字符。

Matlab中预定义变量 Ans 分配最新计算表达式的值,这个表达式并没

有给定一个名字• Eps 返回机器精度• Realmax 返回计算机能处理的最大浮点数• Realmin 返回计算机能处理的最小的非零浮点

数• Pi ,3.14159265• Inf 定义为 1/0 。当出现被零除时, Matlab 就

返回 inf ,并不中断执行而继续计算• NaN 定义为“ Not a Number” ,这个非数值要

么是%类型,要么是 inf/inf

向量的创建• 在 matlab 的命令窗口键入以下字符• >> a = [1 2 3 4 5 6 9 8 7]• a = • 1 2 3 4 5 6 9 8 7• 希望得到元素从 0 到 20 ,步距为 2 的一个向

量,只需键入以下命令即可• >> t = [0:2:20]• t = • 2 4 6 8 10 12 14 16 18 20

矩阵的创建 输入矩阵时每一行元素有分号或者回车键分隔。例如:

• • B = [1 2 3 4;5 6 7 8;9 10 11 12]• B =• 1 2 3 4• 5 6 7 8• 9 10 11 12

各种运算符

Matlab 语言最基本的赋值语句结构为:

变量名列表 =表达式

注 1 :整个赋值语句以;结束,则不在屏幕上返回结果,否则立即返回结果。

注 2 :多个语句可在同一行,用逗号分开。注 3 :表达是太长可以用续行符号…

语句

函数

• Matlab由包括许多标准函数,每个函数都完成某一特定功能的代码组成。

• Matlab也允许用户编写自己所需的函数,其扩展名为 .m,其中必须以关键字 function开头 .

流程控制

•循环语句 for, while•条件转移 if end, if elseif else end• 开关语句 switch case•注是语句 %• 中断语句 break•暂停语句 pause•回显语句 echo on/off

1 、 for循环语句基本格式for 循环变量=起始值:步长:终止值 循环体 end步长缺省值为 1 ,可以在正实数或负实数范围内任意指定。对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。循环结构可以嵌套使用。

2 、while循环语句基本格式while 表达式 循环体 end•若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若不为真,则跳出循环体,向下继续执行。

While循环和 for循环的区别在于, while循环结构的循环体被执行的次数不是确定的,而 for结构中循环体的执行次数是确定的。

3 、 if , else , elseif 语句( 1 ) if 逻辑表达式 执行语句 end( 2 ) if 逻辑表达式 ( 3 ) if 逻辑表达式 1 执行语句 1 执行语句 1 else elseif 逻辑表达式 2 执行语句 2 执行语句 2 end … end

4 、 switch 语句

switch 表达式(可以是标量或字符串) case 值 1 语句 1 case 值 2 语句 2 …. otherwise 语句 3 end

MATLAB 程序的基本组成结构%说明清除命令:清除workspace 中的变量和图形( clear,clos

e)定义变量:包括全局变量的声明及参数值的设定逐行执行命令:指 MATLAB 提供的运算指令或工具箱… … … 提供的专用命令控制循环 : 包含 for,if then,switch,while 等语句

逐行执行命令… … …end绘图命令:将运算结果绘制出来

• 当然更复杂程序还需要调用子程序,或与 simulink以及其他应用程序结合起来。

2、程序M文件• 以 .m格式进行存取,包含一连串的MATLAB指令和必要

的注解。需要在工作空间中创建并获取变量,也就是说处理的数据为命令窗口中的数据,没有输入参数,也不会返回参数。

• 程序运行时只需在工作空间中键入其名称即可。

MATLAB 的程序类型

MATLAB的程序类型有三种,一种是在命令窗口下执行的脚本M文件;另外一种是可以存取的M文件,也即程序文件;最后一种是函数( function)文件。1、脚本M文件在命令窗口中输入并执行,它所用的变量都要在工作空间中获取,不需要输入输出参数的调用,退出MATLAB后就释放了。

( 1)函数定义行(关键字 function)• function[out1,out2,..] = filename(in1,in2,..)• 输入和输出(返回)的参数个数分别由nargin和 nargout两

个 MATLAB保留的变量来给出。( 2)第一行帮助行,即H1 行• 以(%)开头,作为 lookfor 指令搜索的行( 3)函数体说明及有关注解• 以(%)开头,用以说明函数的作用及有关内容( 4)函数体语句• 函数体内使用的除返回和输入变量这些在 function语句中直

接引用的变量以外的所有变量都是局部变量,即在该函数返回之后,这些变量会自动在 MATLAB 的工作空间中清除掉。如果希望这些中间变量成为在整个程序中都起作用的变量,则可以将它们设置为全局变量。

3 、函数文件与在命令窗口中输入命令一样,函数接受输入参数,然后执行并输出结果。用 help命令可以显示它的注释说明。具有标准的基本结构。

Graphics

MATLAB 提供了丰富的绘图功能

help graph2d 可得到所有画二维图形的命令help graph3d 可得到所有画三维图形的命令

1 、基本的绘图命令plot( x1,y1,option1,x2,y2,option2,…)

x1,y1给出的数据分别为 x,y 轴坐标值, option1为选项参数,以逐点连折线的方式绘制 1 个二维图形;同时类似地绘制第二个二维图形。

这是 plot 命令的完全格式,在实际应用中可以根据需要进行简化。比如:plot(x,y);plot(x,y,option)选项参数 option定义了图形曲线的颜色、线型及标示符号,它由一对单引号括起来。

2 、选择图像 figure( 1);figure( 2);…;figure(n) 打开不同的图形窗口,以便绘制不同的图形。3 、 grid on:在所画出的图形坐标中加入栅格 grid off:除去图形坐标中的栅格4 、 hold on:把当前图形保持在屏幕上不变,同时 允许在这个坐标内绘制另外一个图形。 hold off:使新图覆盖旧的图形5 、设定轴的范围 axis( [xmin xmax ymin ymax] ) axis(‘equal’) :将 x坐标轴和 y 坐标轴的单位刻度大小调整为一样。

6 、文字标示text(x,y,’字符串’ )在图形的指定坐标位置 (x,y) 处,标示单引号括起来的

字符串。• title(‘字符串’ )在所画图形的最上端显示说明该图形标题的字符串。• xlabel(‘字符串’ ) , ylabel(‘字符串’ )设置 x, y 坐标轴的名称。• 输入特殊的文字需要用反斜杠( \)开头。

7、 legend(‘字符串 1’,‘字符串 2’,…,‘字符串n’)

• 在屏幕上开启一个小视窗,然后依据绘图命令的先后次序,用对应的字符串区分图形上的线。

8 、 subplot ( m , n , k ):分割图形显示窗口m: 上下分割个数, n: 左右分割个数, k: 子图编号

9 、 semilogx :绘制以 x 轴为对数坐标(以 10 为底),y 轴为线性坐标的半对数坐标图形。 semilogy :绘制以 y 轴为对数坐标(以 10 为底),x 轴为线性坐标的半对数坐标图形。

10 、了解应用型绘图指令:可用于数值统计分析或离散数据处理

bar ( x,y ); hist ( y,x )stairs ( x,y ); stem ( x,y )

三维的绘图命令基本与二维的相同,稍有差别,不再详述。

Examples

•绘图实例• 函数分析• 矩阵运算• 线性方程组•曲线拟合• 微分方程

绘图实例

函数分析

fplot('func',[-1 1.5]) %作图result = func(0) %求函数值xsolve = fzero('func',3) %求解Xmin = fminbnd('func',0.5,

1)%求最小值

矩阵运算• A = [1 2 3 ; 4 5 6 ; 7 8 9];• B = [1 2 3 ; 4 5 6];• C = [1 0 1 ; 0 2 3 ; 4 5 0];

• expC = exp(C)• expM = expm(C)• logM = logm(expM)• detA = det(A)• traceA = trace(A)• BT = B'• invA = inv(A)• rankA = rank(A)• [EigenVectors,EigenValues] = eig(A)

线性方程组与特征值

A = [ 3 1 -1 ; 1 2 4 ; -1 4 5 ];b = [ 3.6 ; 2.1 ; -1.4 ];X = A\b[EigenVectors,EigenValues] = eig(A)

曲线拟合• %一次多项是拟合• % 已知离散点• x = [1 1.5 3 4 5 6 6.5 7 8];• y = [1.2 1 1.7 2.5 2 2.3 2.5

3 3.1];• % 最小二乘拟合• p1 = polyfit(x,y,1);• y1 = polyval(p1,x);• plot(x,y1);• hold on• plot(x,y,'ro')• grid on

• %7 次多项是拟合• % 已知离散点• x = [1 1.5 3 4 5 6 6.5 7

8];• y = [1.2 1 1.7 2.5 2 2.3

2.5 3 3.1];• % 最小二乘拟合• p7 = polyfit(x,y,7);• xi = 1:0.25:8;• yi = polyval(p7,xi);• plot(x,y,'*r',xi,yi);• grid on

微分方程

• Van der Pol Equation

0)1( 22

2

ydt

dyy

dt

yd

标准形式改写

1212

2

21

)1( yyydt

dy

ydt

dy

程序实现• function dydt = DifferentialCoe(t,y)• dydt = [y(2);(1-y(1)^2)*y(2)-y(1)];

top related