Matlab简介
MATLAB语言简介
Help Window命令:打开MATLAB旳帮助窗口。
Help Tips命令: 打开帮助窗口,并首先显示MATLAB
旳帮助系统旳分类和使用措施。
Help Desk(HTML)命令: 打开系统WWW浏览器,并显示
MATLAB旳帮助桌面。
Examples and Demos命令:能够经过演示MATLAB提供旳
Clf 清理图形窗口
Load 加载指定文件旳变量
Pack 搜集内存碎片
Diary 日志文件命令
Clc 清理工作窗口
Quit 退出
Echo 工作窗信息显示开关 !
调用DOS命令
2.1.6 MATLAB常用旳命令和技巧 2.某些常用操作技巧
利用键盘按键,可实现简易操作:
home 光标置于目前行开头 end 光标置于目前行末尾 esc 清除目前输入行 del 删除光标处旳字符
Edit菜单项:
Undo、Cut、Copy、Paste命令:分别用于撤消上一次操
作、剪切、复制和粘贴。
Clear命令:
删除内容。
Select All命令:
用于选定全部文本内容。
Clear Session命令:
清除命令编辑区旳全部内
容,但并不删除工作空间
中旳变量。
2.1.4 MATLAB旳桌面平台
Help菜单项:
3. 图形功能
MATLAB提供了两个层次旳图形命令:一种是对图形句 柄进行旳低档图形命令,另一种是建立在低档图形命令之上 旳高级图形命令。利用MATLAB旳高级图形命令能够轻而易 举地绘制二维、三维乃至四维图形,并可进行图形和坐标旳 标识、视角和光照设计、色彩精细控制等等。
2.1.1 MATLAB特点
Open命令:
MATLAB简介
logspace 对数等分的行矢量
Logspace(x1,x2,n)生成从10x1到10x2包含n 个数据的矢量 >> logspace(1,3,3) >> magic(3) ans = ans = 10 100 1000 8 1 6 >> cell(3) 3 5 7 >> eye(3) ans = 4 9 2 ans = [] [] [] 1 0 0 Magic(n)为元素1到n^2 [] [] [] 0 1 0 之间,行、列、对角线 [] [] [] 0 0 1 的和都相等的n维矩阵
例1:
0 5 cos 47 例2:计算表达式的值 并将结果赋给变量x 1 7 2i
4、表达式从左至右、指数最先,乘除加减、括号提前。
>>6+4*3^2 ans = >> x=(5+cos(47*pi/180))/(1+sqrt(7)-2i) 42
例9:演示内带程序 >>ballode %自由下落小球与地面非弹性碰撞的运动轨迹 >>demo %演示Matlab的基本功能
2、数据格式:
① 10的幂为e加上正负数字: 1.062e-20 6.022e23 ② 数字后直接加 i 或 j表示虚数 :-3.14i 5+3i
3、算符
算术运算算符: + - * / ^ ( ) sqrt( ) 关系运算算符:<、>、 <=、 ==、 >=、 ~= 逻辑运算算符:与 &、或│、非 ~
例3:输入10个学生的成绩并对成绩按升序排序。 在指令窗口输入命令: g=input('请输入学生成绩:') sort(g) 请输入学生成绩: [65 78 96 98 91 84 79 83 74 81]
Matlab简介
p = 3.1484 p = 3.1396
当n提高到50000时, 重复计算4次,计算结果: p = 3.1396 p = 3.1431
p = 3.1296 p = 3.1421
三、绘图功能
3.1 二维图形 plot(y)、 ezplot是绘制二维图形常用的命令 例 画出函数 y sin x 在-5 x 5的图形。
Matlab软件简介 哈尔滨理工大学 数学建模组
Matlab是数学建模常用软件之一,也是 在各个专业领域,特别是在工程实际领域 应用最广泛的计算软件,并已成为一个通 用的计算工具。
一、Matlab概述
1.1 Matlab的发展 Matlab语言是由美国的Clever Moler博 士于1980年开发的。
计算符号表达式F在x→a下的极限。 例2.计算 lim (3x 5) 1
x
x3 sin(
x
2
)
>> syms x; >> f=('(3*x-5)/(x^3*sin(1/x^2))'); >> limit(f,x,inf)
ans=3
3. 符号微分
diff(S)
求符号表达式S的微分 (即求一元导数)
1.3 Matlab语言的特点:
语言简洁紧凑,语法限制不严,程序设计 自由度大,可移植性好 运算符、库函数丰富 图形功能强大 界面友好、编程效率高 扩展性强
它将一个优秀软件的易用性与可靠性、通用 性与专业性 、一般目的的应用与高深的科学 技术应用有机地相结合。
Matlab是一种直译式的高级语言,比其它程 序设计语言容易。
MatLab软件简介
MatLab 软件简介(Version 6.5)A.1 概述MatLab (Matrix Laboratory )是矩阵实验室的意思,既是一种语言,又是一个编程环境。
MatLab 是数学计算的强有力工具,是一种用于工程计算的高性能语言,它以矩阵作为数据操作的基本单位,在数理统计、自动控制、数字信号处理、动态系统仿真方面有着重要的应用。
A.1.1 MatLab 的特点其特点体现在以下几个方面: ◆ 编程效率高 ◆ 用户使用方便 ◆ 扩充能力强 ◆ 语句简单◆ 高效方便的矩阵和数组运算 ◆ 方便的绘图功能 ◆ 开放的源程序A.1.2 MatLab 的构成MatLab 主要由5部分组成: ◆ MatLab 工作环境 ➢ 桌面 ➢ 命令窗口➢ 命令历史工作期 ➢ 帮助浏览器 ➢ 工作空间➢ M 文件和搜索路径窗口 ◆ MatLab 数学函数库➢ 基本函数:如,sum,sin ,cos 等➢ 复杂函数:如,求矩阵特征值、特征向量、求逆、bessel 函数,fourier 变换 ◆ MatLab 语言➢ 以矩阵和向量为基本数据单位➢ 有控制流程语句、函数、数据结构、输入/输出语句等 ➢ 面向对象 ◆ 句柄图形句柄图形是MatLab 的图形系统,包括:➢ 高层次绘图命令➢低层次绘图命令A.1.3 MatLab 的运行方式(1) 命令行运行方式,格式:变量=表达式 或 表达式 例如在命令窗口输入:a=[1 2 3;4 5 6;7 8 9] 结果为: 二维和三维数据的可视化命令 图像处理命令 动画制作修改图形局部的命令 编制完整图形界面的命令1 2 34 5 67 8 9(2)M文件运行方式,如M文件名为abcd.m 则在命令窗口输入abcd回车即得运行结果。
帮助系统如何进入帮助系统方法一:利用任一窗口“Help”菜单。
方法二:利用发射台窗口。
帮助命令:help 函数名help sqrtA.2 数值运算A.2.1 变量◆规则:✧变量和常量的标识符最长允许31个字符✧函数与文件名通常不超过8个字符(受文件管理器的限制)✧字符可以是英文字母、阿拉伯数字和下划线,标识符中第一个必须是英文字母✧变量区分大小写:Cost与cost变量是不同的◆特殊变量名ans pi eps(系统浮点精确度)inf NaN i或j realmax realminnargin (函数的输入参数个数),nargout(函数的输出参数个数)A.2.2 矩阵与数组的创建与运算1.数组是程序设计语言中用到的一种数据结构,不是数学概念。
matlab简介
MATLAB简介一.MATLAB的特点MATLAB(Matrix Laboratory)是美国Math Works软件公司于1982年推出的一套用于工程和科学计算的可视化工具软件。
以矩阵运算为基础,把计算、可视化、程序设计融合到了一个简单易用的交互式工作环境中。
在这里可以实现工程计算、算法研究、符号运算、建模和仿真、原型开发、数据分析及可视化、科学和工程绘图、应用程序设计等等功能。
它现在已经成为世界上应用最广泛的工程计算软件。
以下为其几个特色:•功能强的数值运算 - 在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上。
•先进的资料视觉化功能 - MATLAB的物件导向图形架构让使用者可执行视觉数据分,并制作高品质的图形,完成科学性或工程性图文并茂的文章。
•高阶但简单的程式环境 - 做为一种直译式的程式语言,MATLAB容许使用者在短时间内写完程式,所花的时间约为用 FORTRAN 或 C 的几分之一,而且不需要编译(compile)及联结 (link) 即能执行,同时包含了更多及更容易使用的内建功能。
•开放及可延伸的架构 - MATLAB容许使用者接触它大多数的数学原使码,检视运算法,更改现存函数,甚至加入自己的函数使 MATLAB成为使用者所须要的环境。
•丰富的程式工具箱 - MATLAB的程式工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提供了使用者在特别应用领域所需之许多函数。
现有工具箱有:符号运算(利用Maple V的计算核心执行)、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析。
MATLAB主要包括主包、Simulink和工具箱三大部分组成。
MATLAB简介
数学软件MATLAB简介MATLAB是美国MathWorks公司于1984年推出的数学软件,它集数值分析、矩阵运算、信号处理和图形显示于一身,构成了一个使用方便、界面友好的用户环境。
在MATLAB窗口下,对于所要求解的问题,用户只需简单地列出数学表达式,其结果便以数值或图形的方式显示出来。
1.MATLAB的发展历程(1)20世纪70年代中期:Cleve Moler博士等人开发了EISPACK(求解特征值)和LINPACK(求解线性方程)的FORTRAN程序库(代表了当时矩阵计算软件的最高水平)。
(2)20世纪70年代后期,Cleve Moler(美国New Mexico大学计算机系主任)给学生讲授线性代数时,为学生编写了使用EISPACK 和LINPACK的接口程序,并以MARLAB来命名(Matrix Laboratory 两个单词的前3个字母组合,即矩阵实验室)。
以后数年中,MARLAB在多所大学里作为教学辅助软件使用,并作为免费软件广为流传。
(3)1983年春天,Cleve Moler到Stanford大学讲学,MATLAB 引起了工程师John Little的极大兴趣,他敏锐地觉察到MATLAB 在工程领域的广阔前景。
同年他和Cleve Moler、Steve Bangert一起,用C语言开发了第二代专业版MATLAB,使之同时具备了数值计算和数据图视化功能。
(4)1984年,Cleve Moler和John Little成立了MathWorks 公司,正式把MATLAB推向市场,并继续进行MATLAB的研究与开发。
1992年MathWorks公司推出MATLAB4.0。
1997年推出MATLAB5.0(真正32位计算)。
2000年推出MATLAB6.0版本,2003年推出MATLAB6.5。
2004年7月,推出MATLAB7.0版本,2007年推出MATLAB7.3。
经过多年的国际竞争,MATLAB已经占据了数值计算软件市场的主导地位,发展成为适合多学科、多种工作平台的功能强劲的大型数学软件。
什么是MATLAB
MATLAB简介MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。
MATLAB是英文MATrix LABoratory(短阵实验室)的缩写。
它的第1版(DoS版本1.0)发行于1984年,经过十几年不断改进,现今已推出它的WINDWS XP版本(2009b版)。
新的版本集中了日常数学处理中的各种功能,包括高效的数值计算、矩阵运算、信号处理和图形生成等功能。
在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。
MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩陈对象时,不要求作明确的维数说明。
与利用C语言或FORTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。
在工程技术界,MATLAB被用来解决一些实际课题和数学模型问题。
典型的应用包括数值计算、算法预设计与验证,以及一些特殊的短阵计算应用,如自动控制理论、统计、数字信号处理(时间序列分拆)等。
进入了20世纪90年代,MATLAB已经成为国际控制界公认的标准计算软件。
MATLAB因其提供计算、图形、文字处理的统一环境而深受欢迎。
MTALAB系统由五个主要部分组成,下面分别加以介绍。
(1)MATALB语言是高层次的矩阵/数组语言。
具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。
利用它既可以进行小规模编程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。
(2)MATLAB工作环境这是对MATLAB提供给用户使用的管理功能的总称。
包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M 文件的各种工具。
(3)MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。
2024版Matlab简介PPT课件
Matlab简介PPT课件•Matlab概述•Matlab基础知识•矩阵运算与线性代数应用•图形绘制与可视化技巧目录•数值计算与优化方法探讨•程序设计实践案例分析Matlab概述01Matlab定义与发展历程定义Matlab是一种用于算法开发、数据可视化、数据分析以及数值计算的高级语言和交互式环境。
发展历程由MathWorks公司开发,历经多个版本迭代,逐渐成为科学计算和工程领域的标准工具。
主要功能及应用领域主要功能数值计算、符号计算、图形处理、编程与仿真等。
应用领域信号处理、控制系统、通信、图像处理、金融建模等。
编程环境与界面介绍编程环境提供丰富的函数库和工具箱,支持多种编程范式,如面向对象编程。
界面介绍集成开发环境包括编辑器、命令窗口、工作区等,方便用户进行代码编写、调试和数据可视化。
版本更新与兼容性版本更新Matlab不断推出新版本,增加新功能和优化性能,提高用户体验。
兼容性新版本通常兼容旧版本的文件和代码,但部分功能可能有所调整或改进。
同时,Matlab也提供了丰富的文档和社区支持,帮助用户顺利过渡到新版本。
Matlab基础知识02Matlab支持多种数据类型,包括数值型、字符型、逻辑型、结构体、单元数组等。
变量声明在Matlab中,变量无需事先声明,可以直接赋值使用。
同时,Matlab也支持显式声明变量类型和大小。
数据类型数据类型与变量声明VSMatlab提供了丰富的运算符,包括算术运算符、关系运算符、逻辑运算符等。
在书写表达式时,需要注意运算符的优先级和结合性,以及使用括号来改变运算顺序。
运算符表达式书写规则运算符和表达式书写规则03其他流程控制语句Matlab 还支持break 、continue 、return 等流程控制语句,用于在特定条件下控制程序的执行流程。
01条件语句Matlab 中常用的条件语句有if 语句和switch 语句,用于根据条件执行不同的代码块。
02循环语句Matlab 提供了for 循环和while 循环两种循环结构,用于重复执行某段代码。
MATLAB的简介
MATLAB的简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且m athwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
发展历程20世纪70年代,美国新墨西哥大学计算机科学系主任Cl eve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。
1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。
到2 0世纪90年代,MATLAB已成为国际控制界的标准计算软件。
版本更新应用MATLAB 产品族可以用来进行以下各种工作:● 数值分析● 数值和符号计算● 工程与科学绘图● 控制系统的设计与仿真● 数字图像处理技术● 数字信号处理技术● 通讯系统设计与仿真● 财务与金融工程MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
matlab简介
6
-3
符号的作用
• 分号如果出现在指令后,屏幕上将不显示结果。
• 只要是赋过值的变量,不管是否在屏幕上显示
过,都存储在工作空间中,以后可随时显示或 调用。变量名尽可能不要重复,否则会覆盖 。
• 当一个指令或矩阵太长时,可用…续行。
数值运算-矩阵
生成方法:
通过语句和函数产生矩阵; 在命令窗口中直接输入矩阵(矩阵元素必须用[ ] 括住;矩阵元素必须用逗号或空格分隔;在[ ]内 矩阵的行与行之间必须用分号分隔;矩阵按列向 量来访问) 在M文件中建立矩阵; 从外部的数据文件中导入矩阵。
第一专题计算机作业
1、编写GUI界面
第二专题
Matlab数值运算及符号运算
数值运算—变量
变量名不超过19个字符,区分字母大小写 a=1+2i; b=sin(2)+cos(2)*i; z=complex(x,y); %x,y is real
z=complex(x);
i=10;
工具大大提高工作效率。
GUIDE设计工具
GUIDE设计工具
按钮
滚动条
单选按钮
编辑框 下拉列表 牵牢按钮 面板
复选按钮 静态文本
列表框 坐标盒
部分控件的概念和作用
按钮:通过鼠标点击按钮实现某种行为,并调用相
应的回调子函数;
牵牢按钮:能够产生on或off。点击该按钮将使按
钮外观保持下陷状态,同时调用回调函数。再次点
数值运算-数组运算
数组之间运算时,每个数组必须维数相同的,且 用点乘或点除。 数组与标量的四则运算是指数组中的每个元素与 标量进行加、减、乘、除运算。 数组运算exp,pow2,log,log10,log2,sqrt是 数组中每个元素进行相对应的运算。 数组排序:sort(a,mode), ascend按升序排列, descend按降序排列 。
一MATLAB概述
Fuzzy Logic:模糊逻辑
Nerual NetWork:神经网络
Symbolic Math:符号数学
5
Hale Waihona Puke (2)MATLAB旳桌面环境
Command window:命令窗口 Workspace:工作空间 Current Directory:目前途径 Command History:历史命令 Launch Pad:公布平台
Stateflow Coder:自动代码生成
4
经典工具箱:
Signal processing:信号处理
Image processing:图像处理
Communication:通信
Wavlet:小波
Filter Design:滤波器设计
Control System:控制系统
System Identification:系统辨识
一 MATLAB概述
主要内容: (1)MATLAB发展历史和产品族简介 (2)MATLAB旳桌面环境 (3)MATLAB旳主要功能 (4)MATLAB通用指令(要点) (5)MATLAB帮助系统
1
(1) MATLAB发展历史和产品族简介
MATLAB源于美国Cleve Moler博士开发旳 两个线性代数软件包EISPACK和LINPACK, 随即,Cleve Moler博士与其别人合作开办了 Mathworks企业,推动了MATLAB旳迅速发展。 如今已成为一种集数值计算、符号计算、图形 系统以及多种专业工具箱与一体旳高级语言。
下载地址:
❖功能强大,操作简朴!
2
MATLAB发展历史 1984年,MATLAB第1版(DOS版) 1992年,MATLAB4.0版 1994年,MATLAB 4.2版 1997年,MATLAB 5.0版 1999年,MATLAB 5.3版 2023年,MATLAB 6.0版 2023年,MATLAB 6.1版 2023年,MATLAB 6.5版 2023年9月, 版 2023年6月,MATLAB 7.0版 2023年9月, 版 2023年3月, 版 2023年9月, MATLAB7.1版 2023年3月, MATLAB7.2版 2023年9月, MATLAB7.3版 2023年3月,MATLAB7.4版
Matlab简介
常用函数
eps:浮点相对精度 exp:自然对数的底 i 或j:基本虚数单位 数e
nan或NaN:非数值 inf 或Inf:无限大, (Not a number), 例如1/0 例如0/0,∞/∞
pi:圆周率π
Matlab内部常数
intmax:可表达的最 intmin:可表达的最 lasterr:存放最新的 大正整数。 小负整数。 错误信息
优势特点:
1) 高效的数值计算及符号计算功能,能使用户从繁杂的 数学运算分析中解脱出来; 2) 具有完备的图形处理功能,实现计算结果和编程的可 视化; 3) 友好的用户界面及接近数学表达式的自然化语言,使 学者易于学习和掌握; 4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具 箱等) ,为用户提供了大量方便实用的处理工具。
语言 MATLAB语言是一种高级的基于矩阵/数组的语言,它有程序流控制、
函数、数据结构、输入/输出和面向对象编程等特色。
图形处理系统 图形处理系统使得MATLAB能方便的图形化显示向量和矩阵,而且能对
图形添加标注和打印。它包括强大的二维三维图形函数、图像处理和动
画显示等函数。 应用程序接口 MATLAB应用程序接口(API)是一个使MATLAB语言能与C、Fortran等 其它高级编程语言进行交互的函数库。该函数库的函数通过调用动态链
财务与金融工程
常用工具箱:
MATLAB包括拥有数百个内部函数的主包和三十几种工具包。 工具包又可以分为功能性工具包和学科工具包。功能工具包用 来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时 控制等功能。学科工具包是专业性比较强的工具包,控制工具
包,信号处理工具包,通信工具包等都属于此类。
realmax:系统所能 nargin:函数的输入引 lastwarn:存放最新 表示的最大正实数, 数个数 的警告信息 默认1.7977×10^308
matlab简介
1 2 3 建立矩阵 A 5 2 1 ,方法如下: 0 4 7
1 2 3 建立矩阵 A 5 2 1 ,方法如下: 0 4 7 >>clear; A=[1,-2,3;5,2, -1;0,4,7] A= 1 -2 3 5 2 -1 或 0 4 7
limit(f,x,a,'right') 求x从右侧或从左侧趋近a 或limit(f,x,a,'left') 时表达式 f 的极限.
例 求极限 (1) lim (
n
n n n ), (2) lim 1 2 x x
3x
解 MATLAB命令及运行结果为
(1) >> syms n; %定义符号变量 n
解线性方程组 例 判断方程组解的情况,若有无穷多解,求出通解.
x1 x2 4 x3 2 x4 0 x1 x2 x3 2 x4 0 3 x x 7 x 2 x 0 2 3 4 x 1 1 3 x2 12 x3 6 x4 0 解 先判断方程组解的情况. 用rref命令将系数矩阵化
+ (加)、 - (减)、 * (乘)、 / (除)、^ (乘幂)
例 建立变量y并使其值为3,并计算
时x的值,其步骤为
x y y
3
① 用键盘在MATLAB指令窗中输入以下内容 >> y=3; 若表达式后面跟分号,将不显示结果.
>> x=y^3-sqrt(y) ② 按【Enter】键,该指令就被执行.
运行结果为
MATLAB图形功能 基本的绘图命令 例 作函数y(x)=x2sin(x2-x-2), -2 ≤x≤2的图形. 所用命令为
MATLAB软件简介
1 MATLAB软件简介1.1 概述MATLAB是美国Math Works 公司开发的大型数学计算软件,它具有强大的矩阵处理功能和绘图功能,已经广泛地应用于科学研究和工程技术的各个领域在科学研究和工程应用中,往往要进行大量的数学计算,其中包括矩阵运算。
这些运算一般来说难以用手工精确和快捷地进行,而要借助计算机编制相应的程序做近似计算。
MATLAB的主要功能具体包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序,并集应用程序和图形于一便于使用的集成环境中。
在此环境下所解问题的Matlab语言表述形式和其数学表达形式相同,不需要按传统的方法编程。
MATLAB语言的这一特点大大降低了对使用者的数学基础和计算机语言知识的要求,而且使编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝。
综上所述,Matlab语言有如下特点:1.编程语言接近人的思维方式,编程效率高,易学易懂它是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序,且比其他计算机语言更加接近我们书写计算公式的思维方式,用Matlab编写程序犹如在演算纸上排列出公式与求解问题。
因此,Matlab语言也可通俗地称为演算纸式科学算法语言由于它编写简单,所以编程效率高,易学易懂。
2.程序调试方便灵活,Matlab语言是一种解释执行的语言,它灵活、方便,其调试程序手段丰富,调试速度快,需要学习时间少。
Matlab语言与其它语言相比,省去了编辑、编译、连接以及执行和调试四个步骤。
它把编辑、编译、连接和执行融为一体。
它能在同一画面上进行灵活操作快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度。
Mat1ab语言不仅是一种语言,广义上讲是一种该语言开发系统,即语言调试系统。
3.源程序开放,库函数丰富,扩展能力强高版本的Matlab语言有丰富的库函数,在进行复杂的数学运算时可以直接调用,而且Matlab的库函数同用户文件在形成上一样,所以用户文件也可作为Matlab的库函数来调用。
Matlab基础知识
Matlab基础知识⼀、matlab简介MATLAB是matrix&laboratory两个词的组合,意为矩阵⼯⼚(矩阵实验室),由美国MathWorks公司出品的商业数学软件,⽤于算法开发、数据可视化、数据分析以及数值计算的⾼级技术计算语⾔和交互式环境,主要包括MATLAB和Simulink两⼤部分。
⼆、数据类型1、函数句柄:是⼀个可调⽤的matlab函数的关联,有了函数句柄这种关联,⽤户在任何情况下都可以通过函数句柄调⽤matlab函数,即使是超出正常的函数调⽤范围仍然可以。
函数句柄四个⽤途:(1)可以将⼀个函数传递给另⼀个函数;(2)可以捕获⼀个函数的数值供下⼀次使⽤;(3)可以在正常范围外调⽤函数;(4)可以在函数句柄以.mat⽂件类型保存,供下⼀次matlab运⾏时使⽤。
2、结构类型结构类型是包含⼀组彼此相关、数据结构相同但类型不同的数据类型。
3、细胞数组类型细胞数组是matlab特有的⼀种数据类型,组成它的元素是细胞,细胞是⽤来存储不同类型数据的单元。
相同数组的第⼆个细胞的类型与⼤⼩可以和第⼀个细胞完全不⼀样。
三、matlab运算符1、算式运算符2、关系运算符关系运算符两侧的矩阵维数必须相同。
关系运算为真返回逻辑1,反之返回值为逻辑0。
3、逻辑运算符参与矩阵元素逻辑运算符的逻辑矩阵必须是位数相同的矩阵。
4、运算优先级四、matlab的矩阵1、矩阵合并纵向合并矩阵(要求矩阵A、B的列数相同):C = [A;B]横向合并矩阵(要求矩阵A、B的维数相同):C = [A B]2、矩阵拆分3、矩阵运算相关函数求矩阵⾏列式的值:det()求转置矩阵:transpose()或者⽤运算符"'"eg:B=transpose(A)等价于B=A'求逆矩阵:inv()求⼴义逆矩阵:pinv()(即矩阵不是⽅阵或者是⼀个⾮满秩的⽅阵时,矩阵没有逆矩阵,但可以求得伪逆矩阵也成为⼴义逆矩阵)求矩阵的秩:rank()五、控制语句1、每个if、for、while语句必须以end语句结束,否则是错误的;2、for i=1:4等价于for i=[1 2 3 4]。
(完整版)Matlab简介
Matlab 简介1980 年,美国CleveMoier 博士在新墨西哥大学讲课时,认为高级语言的运用十分不便,于是创立了Matlab(MatrixLaboratory 的缩写),即矩阵实验室,早期的Matlab 软件是为了帮助老师和学生更好地学习,是作为一个辅助工具而之后逐渐演变成了一种实用性很强的工具。
1984,MathWorks 软件公司推出了一种高级语言。
它不但能编程还能用于数值计算以及图形显示,并用与控制系统以及工程设计。
90年,MathWorks 软件公司为Matlab 开发了一种新的用于图形控制及仿真模型建立的软件Simulink 。
它是Matlab 的一个扩展软件模块,这个模块为用户提供了一个用于建模仿真各种数学物理模型的软件,并且提供各种动态的结构模型,是用户可以快速方便的建模并且仿真,而不必写任何程序。
基于此优点,该工具很快被业界认可,并用于各种控制系统。
Matlab 编程工具不像C 语言那样难以掌握,所以在这种仿真环境下用户只需要简单的列出计算式,结果便会以数值或图形的方式显示出来。
从Matlab 被发明以来,它的快速性集成性、以及应用的方便性在高校中得到了好评。
它可以很方便的进行图形输出输入,同时还具有工具箱函数库,也能针对各个学科领域实现各种计算功能。
另外,Matlab 和其他高级语言也具有良好的接口,可以方便地与其他语言实现混合编程,这都进一步拓宽了它的应用范围和使用领域。
Matlab 由主程序、Simulink 动态仿真系统、和Matlab 工具箱三部分组成。
其中主程序包括Matlab 语言、工作环境以及应用程序;Simulink 动态仿真系统是一个相互交互的系统,用户制作一个模拟系统,并动态控制它;而工具箱就是Matlab 基本语句的各种子程序和函数库。
它有可以分为功能性和学科性工具箱。
功能性的工具箱主要用于扩展Matlab 的符号计算功能、图形建模功能、文字处理功能和与硬件的实时交互过程,如符号计算工具箱等;学科性的工具箱则有较强的专业性,用于解决特定的问题,如信号处理工具箱和通信工具箱。
matlab简介及其基础应用
matlab简介及其基础应用MATLAB 是美国 MathWorks 公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括 MATLAB 和 Simulink 两大部分。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如 C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB 的基本应用包括:1. 数值计算和符号计算:MATLAB 可以进行各种数学运算,如矩阵乘法、求导、积分等。
它还支持符号计算,可以对符号表达式进行化简、求值等操作。
2. 数据可视化:MATLAB 提供了丰富的绘图函数,可以绘制各种类型的图形,如线图、散点图、柱状图等。
它还支持三维图形的绘制。
3. 数据分析:MATLAB 可以进行数据分析,如统计分析、回归分析、聚类分析等。
它还提供了一些数据处理工具,如滤波、平滑等。
4. 编程和脚本:MATLAB 是一种编程语言,可以编写脚本和函数来执行复杂的任务。
它还支持面向对象编程。
5. 控制系统设计:MATLAB 提供了一些工具用于控制系统的设计和分析,如根轨迹、波特图等。
6. 信号处理:MATLAB 可以进行信号处理,如滤波、频谱分析等。
7. 图像处理:MATLAB 提供了一些图像处理工具,如图像增强、图像去噪等。
8. 金融计算:MATLAB 可以进行金融计算,如期权定价、风险分析等。
MATLAB 是一种功能强大的数学计算和可视化工具,广泛应用于科学、工程、金融等领域。
matlab简介 特点
03
数值计算:MATLAB可以进行高效的数值计算,包括线性代数、数值积分、数 值微分、常微分方程求解等。
MATLAB矩阵运算
绘图功能
MATLAB具有强大的绘 图功能,可以方便地绘 制各种二维和三维图形 ,并且可以自定义图形
的样式和属性。
函数库
MATLAB提供了大量的 内置函数库,包括数学 函数库、科学计算函数 库、信号处理函数库、 图像处理函数库等。
MATLAB应用案例分析
• Matlab 是一种广泛应用于科学计算、算法开发、数据分析、图像处理、视频处理、信号处理、金融建模和分 析等领域的编程语言和开发环境。
THANKS
01
在MATLAB GUI中,事件是指 用户与图形界面交互时发生的 行为。例如,点击按钮,移动 滑动条,选择菜单项等。
02
回调函数是用于处理这些事件 的函数。当特定事件发生时, 回调函数将被执行。
03
通过使用回调函数,MATLAB GUI可以响应用户的输入并执 行相应的操作。
06
MATLAB应用案例分析
数据类型
MATLAB支持多种数据类型,包括数值型、字符型、逻辑型、结构体等。每种数据类型都有其特定的 操作和函数。
MATLAB语言的运算符和函数
运算符
MATLAB支持多种运算符,包括算术运算符(如加、减、乘、除)、比较运算符(如大于、小于、等于)、逻辑 运算符(如与、或、非)等。
函数
MATLAB具有大量的内置函数,这些函数可以对数据进行各种操作,如矩阵运算、绘图、拟合等。用户也可以自 定义函数以满足特定需求。
算法开发
MATLAB支持各种算法开发,包 括信号处理、图像处理、控制系 统等。
数据可视化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB简介MATLAB是一个集数值计算、符号分析、图象显示、文字处理于一体的大型集成化软件.它最初由美国的Cleve Moler博士所研制.其目的是为线性代数等课程中的矩阵运算提供一种方便可行的实验手段.经过十几年的市场竞争和发展,MATLAB已发展成为在自动控制、生物医学工程、信号分析处理、语言处理、图像信号处理、雷达工程、统计分析、计算机技术、金融界和数学界等各行各业中都有极其广泛应用的数学软件.归纳起来,MATLAB具有以下几个特点:易学、适用范围广、功能强、开放性强、网络资源丰富.由于MATLAB的强大功能,它能使使用者从繁重的计算工作中解脱出来,把精力集中于研究、设计以及基本理论的理解上,所以,MATLAB已成为在校大学生、硕士生、博士生所热衷的基本数学软件.在此,我们把MATLAB作为学习数学的工具介绍给读者,希望能有利于读者今后的学习.一MATLAB的运行启动MATLAB点击MATLAB图标,进入到MATLAB命令窗(MATLAB Command Window).在命令窗内,可以输入命令、编程、进行计算.学会使用help命令在命令窗内输入help命令,再敲回车键.在屏幕上出现了在线帮助总览.(注意:MATLAB命令被输入后,必需敲回车键才能执行.为行文方便,以后不再每次提醒“敲回车键”.)学会使用help命令,是学习MATLAB的有效方法.例如:要想知道MATLAB中的基本数学函数有哪些,可以在总览的第五行查到:MATLAB中的“基本数学函数”用elfun表示,于是,可进一步键入:“help elfun”,屏幕上将出现“基本数学函数”表.(注意:help elfun之间有空格,以后不再每次提醒.)如果想了解sin函数怎样使用,可进一步键入help sin.在工具栏中点击help按扭,或点击?号按扭,与上面获取帮助信息的方法是等效的.学会使用demo命令在命令窗内输入demo命令,再敲回车,键屏幕上将出现演示窗口.(MATLAB Demo Window)一共有三个窗口,左边的窗口显示欲演示内容的大标题,选定其中一项,右下方的小窗口显示欲演示的具体内容,选中其中一栏,再点击run按扭,屏幕上将演示选定的演示程序.右上方的窗口显示关于大标题的一些说明.在命令窗内输入type (文件名),将显示演示程序的M文件,仔细研究演示程序的M文件,是学习MATLAB的又一有效方法.进入演示窗还有另一方法:在工具栏中点击Help栏,下拉式菜单中点击examples and demos项,即可进入演示窗口.退出在工具栏中点击File按钮,在下拉式菜单中单击Exit MATLAB项即可.二变量、语句、矩阵与函数1.变量在MATLAB 中,变量由字母、数和下划线组成.第一个字符必须是字母.一个变量最多由31个字符组成,并区分大小写.下面是MATLAB 中表示特殊量的字符:pi (圆周率)、eps (最小浮点数)、Inf (正无穷大)、NaN (表示0/0或inf-inf 等不定值)、i,j (虚数单位)2.语句MATLAB 语句的一般形式为:变量=表达式.当某一语句的输入完成后,按回车键,计算机就执行该命令.如果该语句末没输入其它符号或输入了逗号,将显示结果;如果句末输入了分号,将不显示结果.如果语句中省略了变量和等号,那么计算机将结果赋值给变量ans .3.矩阵把m ×n 个数排成m 行n 列的数表,此数表被称为m 行n 列的矩阵,记为⎪⎪⎪⎭⎫ ⎝⎛=⨯mn m n n m a a a a A 1111MATLAB 中矩阵的输入方法如下:A=[a 11,…,a 1n ;…;a m1,…,a mn ].逗号是数之间的分隔符(也可用空格代替);分号是换行符.3.函数MATLAB 提供了大量的函数.可以通过help 查询.例如sqrt (开方)、log (常用对数)、log 10(以10为底的对数)、sin (正弦)等.这些函数都遵循下列规则:对于⎪⎪⎪⎭⎫ ⎝⎛=mn m n a a a a A 1111经过函数f 后得:⎪⎪⎪⎭⎫ ⎝⎛=)()()()()(1111mn m n a f a f a f a f A f例:我们要计算sin 6π,可键入:y=sin(pi/6)得 y =0.5000如果我们键入:x=[0,pi/6,pi/3,pi/2,2*pi/3,5*pi/6,pi];y=sin(x),得y = 0 0.5000 0.8660 1.0000 0.8660 0.5000 0.0000这里,对于x 有更简洁的输入方法:x=0:pi/6:pi ,此命令表示x 从0开始,以pi /6为步长变到pi 为止.如果我们键入:x=[0,pi/6;pi/3,pi/2];y=sin(x) 得y = 0 0.50000.8660 1.0000其它的函数的用法与此类似.三绘图绘制二维图形绘制二维图形的基本命令是plot(x,y).其中x、y是1×n阶矩阵.也可以用格式plot(x1,y1,x2,y2,…)把多条曲线画在同一坐标系下.在这种格式中,每个二元对x-y的意义都与plot(x,y)的相同,每个二元对x-y的结构也必须符合plot(x,y)的要求.但二元对之间没有约束关系.以上三种格式中的x、y都可以是表达式,但表达式的运算结果必须符合上述格式要求.MATLAB的图形功能还提供了一组开关命令.关于颜色和线形用下面的方法进行控制.plot(x,'r*') 表示用红色*号画线, plot(x,y,'b+')表示用蓝色+号画线,plot(x1,y1,'y-',x2,y2,'g:')表示第一组用黄色实线画线,第二组用绿色点线画线.MATLAB的线型字符有很多,可以随心所欲地把图画得很漂亮.下面几个线型字符大家可以选用:S:小方块;H:六角星;D:钻石形;V:向下三角形;^:向上三角形.MATLAB还提供了图形的加注命令:title题头标注. xlabel x轴标注.ylabel y轴标注. gtext鼠标定位标注.grid 网格.axis([xmin xmax ymin ymax]) []中给出x轴和y轴的最小、最大值如果要把y1=6sin t,y2=6cos t,y3=sin t2-t cos t绘制在一张图上,则可输入如下的命令:t=0:pi/12:2*pi;y1=6*sin(t);y2=6*cos(t);y3=sin(t.^2)-t.*cos(t);plot(t,y1,'r-',t,y2,'bo',t,y3,'k:') %用红线画y1,用蓝圈画y2,用黑虚线画y3.如果还想在图上加一个题头,可继续键入命令:title('曲线比较')注:MATLAB中,%后面的语句起注释作用.特别要注意y3中的运算符号“.^”和“.*”,详情可通过help查阅,或查阅有关MATLAB的参考书.命令polar(theta,rho)或polar(theta,rho,‘s’)绘制极坐标系的二维图形.详情可通过help查阅.绘制三维图形⑴空间曲线的绘制绘制空间曲线的基本命令为:plot3(x,y,z);plot3(x,y,z,'s')或plot3(x1,y1,z1,'s1',x2,y2,z2,'s2',…)其中x,y,z是同维的向量或矩阵.当它们是矩阵时,以它们的列对应元素为空间曲线上点的坐标.s是线形、颜色开关,这一点与二维曲线时的情形相同.⑵曲面的绘制绘制空间曲面的基本命令为mesh(x,y,z).如果x、y是向量,则要求x的长度=矩阵z的列维;y的长度=矩阵z的行维.以z ij为竖坐标,x的第i个分量为横坐标,y的第j个分量为纵坐标绘网格图.如果是同维矩阵,则数据点的坐标分别取自这三个矩阵.meshc(x,y,z) 带等高线的网格图, waterfall(x,y,z)瀑布水线图,surf(x,y,z,'c')可着色的曲面图,surfc(x,y,z)带等高线的可着色的曲面图.以上这些命令都可用来绘制曲面图,用法与mesh完全一样.例如:要想画马鞍面,可输入如下命令:x=-3:1/16:3;y=x;[x,y]=meshgrid(x,y); %(生成绘图时所需的x-y坐标)z=-x.^2+y.^2;mesh(x,y,z) %(或换为surfc(x,y,z) %带等高线的着色图)3.多幅图形的创建有时同一曲面或曲线需要从不同的角度去观察,或用不同的表现方式去表现,这时,为了便于比较,往往在一个窗口内画多幅图形.MATLAB用subplot命令实现这一目的.具体格式为:subplot(m,n,p)使用此命令后,把窗口分为m×n个图形区域,p表示当前区域号.例如把sin x,cos x,atan x,sin x cos y画在一个窗口内,可键入:x=0:pi/6:2*pi;y=x;z1=sin(x);z2=cos(x);z3=atan(x);subplot(2,2,1); plot(x,z1,'r',x,z2,'g')subplot(2,2,2);plot(x,z3,'m')subplot(2,2,3);[x,y]=meshgrid(x,y);z4=sin(x).*cos(y);mesh(x,y,z4);subplot(2,2,4);surfc(x,y,z4)四关系运算和逻辑运算1.关系运算符〈小于〈= 小于等于〉大于〉= 大于等于 = = 等于 ~= 不等于运算法则:如果两个比较量a、b是标量,那么,当a、b之间的关系成立时输出值为1;否则输出值为0.如果两个比较量a、b是相同维数的数组,那么就按标量的运算法则,对a、b的对应元素进行运算,最后的输出结果为一个与a(或b)同维的0—1数组.如果a是标量,b是数组,那么按标量的运算法则将a与b的每个元素逐一比较,最后的输出结果为一个与b同维的0—1数组.在算术运算、关系运算中,算术运算优先.2.逻辑运算符& 与 | 或 ~ 非运算法则:参与逻辑运算的量称为逻辑量,非零逻辑量为“真”,用1表示;零逻辑量为“假”,用0表示.如果参与逻辑运算的两个量a、b都是标量,那么:a&b当a与b全为非零时,运算结果为“1”;否则为“0”a|b a与b中只要有一个非零,运算结果为“1”~a 当a是零时,运算结果为“1”;否则为“0”如果参与逻辑运算的两个量a、b是相同维数的数组,那么就按标量的运算法则,对a、b 的对应元素进行运算,最后的输出结果为一个与a(或b)同维的0—1数组.如果参与逻辑运算的a是标量、b是数组,那么就按标量的运算法则,将a与b的每个元素进行运算,最后的输出结果为一个与b同维的0—1数组.逻辑“非”是一个一元运算符,也服从数组运算规则.在算术、关系、逻辑运算中,算术运算的最优先,其次是关系运算,再其次是逻辑运算.五 MATLAB编程1.控制语句MATLAB也有控制流语句,用于控制程序的流程.主要有for循环、while循环、if和break 三种控制语句.虽然语句很少,但功能很强.ⅰfor循环语句for循环语句的一般表达形式为:for i=表达式可执行语句1……可执行语句nend例:求S=1+2+3+…+50,可编程如下:s=0;for k=1:50s=s+k;endⅱwhile循环while循环语句用来控制一个或一组语句在某逻辑条件下重复预先确定或不确定的次数.while循环语句的一般表达形式为:while表达式循环体语句end例:对于上面同样的问题,可编程如下:S=0; k=0;while k<51S=S+k;k=k+1; % 当条件k〈51时,反复执行语句S=S+k,k=k+1end以上这个例子事先已知循环次数是51,下面再看一个预先不能确定循环次数的例子.例:用迭代法x k+1=e k x k=0,1,2,…求解方程x-e-x=0的根.初始值x0=0.5,相对误差限ε=10-8 ,编程如下:ep=10^(-8);dx=1;x0=0.5;k=0;while dx>epk=k+1;x=exp(-x0);dx=abs(x-x0)/(1+abs(x));x0=x;endⅲif和break语句MATLAB中if和break语句的作用与使用方式同其它编程语言一样,用来将控制流程进行分流与中断退出.例:可以把上面的解方程的例子中的循环语句改写成:x0=0;while(1)k=k+1;x=exp(-x0);dx=abs(x-x0)/(1+abs(x));if dx<=eps break;endx0=x;end程序中while(1)说明循环条件总是真,直到满足dx<=eps条件跳出循环体. ⅳif – else –end分支结构分支结构有三种形式:if 表达式执行语句end如果表达式的值非0,则执行下面的语句.否则执行end后面的语句.if表达式执行语句1else执行语句2endif表达式1执行语句1elseif表达式2执行语句2elseif 表达式3执行语句3……else (此句可以省略)执行语句nend例:对函数⎪⎩⎪⎨⎧≥<<-<=10, x 11-3x 10,x 1 121, x )(x x x f可编如下的程序:if x<1y=x;elseif x>=1&x<10y=2*x-1;elsey=3*x-11;end2. 创建M文件创建M文件是MATLAB中的非常重要的内容.事实上,正是由于在MATLAB 工具箱中存放着大量的M文件,使得MATLAB在应用起来显得简单、方便,且功能强大.如果用户根据自己的需要,开发出适用于自己的M文件,不仅能使MATLAB更加贴近用户自己,而且能使MATLAB的功能得到扩展.M文件有两种形式:命令文件和函数文件当用户要运行的命令较多时,如果直接在命令窗口中逐条输入和运行,有诸多不便.此时可通过编写命令文件来解决这个问题.另外,从前面的许多例子可以看到:MATLAB的许多命令,需要用户通过编写函数文件来执行.ⅰ命令文件的创立进入MATLAB命令窗口后,选择“file”下拉式菜单中的“new”进入编辑/调试器(Editer/Debugger),在编辑/调试器中,编写符合语法规则的命令.编写完命令文件后,选择“file”下拉式菜单中的“save”项,然后依提示输入一个文件名.至此,完成了命令文件的创建.ⅱ函数文件的创立函数文件的创立方法与命令文件的创立方法完全一样,只是函数文件的第一句可执行语句是以function引导的定义语句,并且输入文件名时要与定义语句中的函数名相同.建立了函数文件或命令文件后,只要在命令窗口键入命令文件名或函数名,就可执行M 文件中所包含的所有命令.下面分别创建并运行一个命令文件和一个函数文件,以了解M文件的创建和运行的全过程.计算所有小于1000的Fibonnaci数.命令文件的创建和运行:⑴在MATLAB的命令窗口点击“新建”工具栏或在“file”下拉菜单中选“New”中的“M-file”项,进入编辑/调试器.⑵在编辑/调试器中,输入以下命令:% 计算小于1000的Fibonnaci数f=[1,1];i=1;while f(i)+f(i+1)<1000f(i+2)=f(i)+f(i+1);i=i+1;endf,i⑶在“file”下拉菜单中选“Save”项,依提示输入文件名“fibno”至此,完成了命令文件fibno.m的创建.⑷执行fibno.在MATLAB窗口中输入fibno并敲回车键,计算机依次执行fibno中的各条命令后显示如下的结果:ans =Columns 1 through 121 123 5 8 13 21 34 55 89 144Columns 13 through 16233 377 610 987函数文件的创建和运行:⑴在MATLAB的命令窗口点击“新建”工具栏或在“file”下拉菜单中选“New”中的“M-file”项,进入编辑/调试器.⑵在编辑/调试器中,输入以下命令:function f=ffibno(n)f=[1,1];i=1;while f(i)+f(i+1)<nf(i+2)=f(i)+f(i+1);i=i+1;endf⑶在“ffile”下拉菜单中选“Save”项,依提示输入文件名“ffibno”至此,完成了函数文件ffibno.m的创建.⑷执行ffibno.在MATLAB窗口中输入ffibno(1000)并敲回车键即可.六MATLAB的符号运算前面介绍的内容基本上是MATLAB的数值计算功能,参与运算过程的变量都是被赋了值的数值变量.在MATLAB环境下,符号运算是指参与运算的变量都是符号变量,即使是数字也认为是符号变量. 数值变量和符号变量是不同的.1 符号微积分下面着重介绍一些与微积分有关的指令,这些指令都需要符号表达式作为输入宗量.求和symsum(S) 对通项S 求和,其中k 为变量且从0变到k-1.symsum(S,v) 对通项S 求和,指定其中v 为变量且v 从0变到v-1. symsum(S,a,b) 对通项S 求和,其中k 为变量且从a 变到b .symsum(S,v,a,b) 对通项S 求和,指定其中v 为变量且v 从a 变到b . 例:求∑-=10k i i ,键入k=sym('k') % k 是一个符号变量;symsum(k)得 ans = 1/2*k^2-1/2*k例:求∑=1002k k,键入:symsum(k^2,0,10)得 ans = 385 例:求∑+∞=0!k kk x 键入symsum('x'^k/sym('k!'),k,0,inf),得 ans = exp(x)这最后的一个例子是无穷项求和.求极限limit(P) 表达式P 中自变量趋于零时的极限limit(P,a) 表达式P 中自变量趋于a 时的极限limit(P,x,a,'left') 表达式P 中自变量x 趋于a 时的左极限 limit(P,x,a,'right') 表达式P 中自变量x 趋于a 时的右极限 例:求xx x sin lim 0→,键入 P=sym('sin(x)/x');limit(P)得 ans = 1 例:求xx 1lim 0+→ 键入 P=sym('1/x');limit(P,'x',0,'right')得 ans = inf 例:求hx h x h sin )sin(lim 0-+→,键入: P=sym('(sin(x+h)-sin(x))/h');h=sym('h');limit(P,h,0)得ans = cos(x) 例:求)lim , )1(lim (-x x x x e xa -∞→-∞→+, 键入 v=sym('[(1+a/x)^x,exp(-x)]');limit(v,'x',inf,'left')得 ans = [ exp(a), 0]求导数diff(S,v) 求表达式S 对变量v 的一阶导数.diff(S,v,n) 求表达式S 对变量v 的n 阶导数.例如:设A=⎪⎪⎪⎭⎫ ⎝⎛++21cos 11x e x x b a ,求dx dA 键入命令: syms a b x; A= [1/(1+a),(b+x)/cos(x);1,exp(x^2)];diff(A,'x')得 ans = [0, 1/cos(x)+(b+x)/cos(x)^2*sin(x)][0, 2*x*exp(x^2)]例:求y=sinx+e x 的三阶导数,键入命令:diff('sin(x)+x*exp(x)',3)得 ans = -cos(x)+3*exp(x)+x*exp(x) 例:设⎪⎪⎪⎭⎫ ⎝⎛+=xyi n e xy y x y x A 1sin ,求A 的先对x 再对y 的混合偏导数.可键入命令: S=sym('[x*sin(y),x^n+y;1/x/y,exp(i*x*y)]');dsdxdy=diff(diff(S,'x'),'y')得: dsdxdy = [ cos(y), 0] [ 1/x^2/y^2, i*exp(i*x*y)-y*x*exp(i*x*y)]例:求y=(lnx)x的导数.可键入命令:p='(log(x))^x';p1=diff(p,'x')得:p1 = log(x)^x*(log(log(x))+1/log(x))例:求y=xf(x2)的导数.可键入命令:p='x*f(x^2)';p1=diff(p,'x')得:p1 = f(x^2)+2*x^2*D(f)(x^2)例:求xy=e x+y的导数.可键入命令:p='x*y(x)-exp(x+y(x))';p1=diff(p,'x')得:p1 = y(x)+x*diff(y(x),x)-(1+diff(y(x),x))*exp(x+y(x))再键入p2='y+x*dy-(1+dy)*exp(x+y)=0';dy=solve(p2,'dy')%把dy作为变量解方程得dy= -(y-exp(x+y))/(x-exp(x+y))求Taylor展开式taylor(f,v) f对v的五阶Maclaurin展开.taylor(f,v,n) f对v的n-1阶Maclaurin展开.例:求sinxe-x 的7阶Maclaurin展开.可键入f=sym('sin(x)*exp(-x)');F=taylor(f,8)得F = x-x^2+1/3*x^3-1/30*x^5+1/90*x^6-1/630*x^7例:求sinxe-x 在x=1 处的7阶Taylor展开.可键入f=sym('sin(x)*exp(-x)');F=taylor(f,8,1) 得F = sin(1)*exp(-1)+(-sin(1)*exp(-1)+cos(1)*exp(-1))*(x-1)-cos(1)*exp(-1)*(x-1)^2+(1/3*sin(1)*exp(-1)+1/3*cos(1)*exp(-1))*(x-1)^3-1/6*sin(1)*exp(-1)*(x-1)^4+(1/30*sin(1)*exp(-1)-1/30*cos(1)*exp(-1))*(x-1)^5+1/90*cos(1)*exp(-1)*(x-1)^6+(-1/630*cos(1)*exp(-1)-1/630*sin(1)*exp(-1))*(x-1)^7 多元函数的Taylor展开MATLAB不能直接进行多元函数的Taylor展开.必须先调用MAPLE函数库中的mtaylor命令.方法为:在MATLAB的工作窗口中键入maple('readlib(mtaylor)')mtaylor的格式为mtaylor(f,v,n)f为欲展开的函数式v为变量名.写成向量的形式:[var1=p1,var2=p2,…,varn=pn],展开式将在(p1,p2,…,pn)处进行.如只有变量名,将在0点处展开.n为展开式的阶数(n-1阶).要完成Taylor展开,只需键入maple('mtaylor(f,v,n)')即可.例:在(x0,y0,z0)处将F=sin xyz进行2阶Taylor展开.键入syms x0 y0 z0maple('readlib(mtaylor)');maple('mtaylor(sin(x*y*z),[x=x0,y=y0,z=z0],2)')得:ans = sin(x0*y0*z0)+cos(x0*y0*z0)*y0*z0*(x-x0)+cos(x0*y0*z0)*x0*z0*(y-y0) +cos(x0*y0*z0)*x0*y0*(z-z0)求积分int(P) 对表达式P 进行不定积分.int(P,v) 以v 为积分变量对P 进行不定积分.int(P,v,a,b) 以v 为积分变量,以a 为下限,b 为上限对P 进行定积分. 例:求⎰+-dx x x22)1(2,可键入int('-2*x/(1+x^2)^2')得 ans = 1/(1+x^2) 例:求⎰+dz z x)1(2,可键入键入int('x/(1+z^2)','z')得 ans = atan(z)*x例:求⎰+10)1ln(dx x x ,可键入int('x*log(1+x)',0,1) 得ans = 1/4例:求⎰tt xdx ln sin 2可键入:int('2*x','sin(t)','log(t)') 得:ans = log(t)^2-sin(t)^2对(符号)矩阵积分例:求()⎰⎰dt e dt e at t ,输入int('[exp(t),exp(a*t)]'),得:ans = [ exp(t), 1/a*exp(a*t)]求符号方程的解ⅰ线性方程组的求解线性方程组的形式为A*X=B ;其中A 至少行满秩.X=linsolve(A,B) 输出方程的特解X .例:解方程组⎪⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛11cos sin sin cos X t t t t .键入 A=sym('[cos(t),sin(t);sin(t),cos(t)]');B=sym('[1;1]');c=linsolve(A,B)c =[ 1/(sin(t)+cos(t))][ 1/(sin(t)+cos(t))]ⅱ 代数方程的求解solve(P,v)对方程P 中的指定变量v 求解.v 可省略.solve(p1,P2,…,Pn,v1,v2,…,vn)对方程P1,P2,…Pn 中的指定变量v1, v2…vn 求解.例:解r x p =+sin ,可输入solve('p+sin(x)=r') 得:ans =-asin(p-r)例:解⎩⎨⎧=+-=++034322x x y xy x ,可输入: P1='x^2+x*y+y=3';P2='x^2-4*x+3=0';[x,y]=solve(P1,P2) 得:x = [ 1][ 3]y = [ 1][ -3/2]解⎩⎨⎧=-=++1022v u v u a ,可输入: P1='a+u^2+v^2=0';P2='u-v=1';[u,v]=solve(P1,P2,'u','v') 得:u = [ 1/2+1/2*(-1-2*a)^(1/2)][ 1/2-1/2*(-1-2*a)^(1/2)]v = [ -1/2+1/2*(-1-2*a)^(1/2)][ -1/2-1/2*(-1-2*a)^(1/2)]对于有些无法求出解析解的非线性方程组,MATLAB 只给出一个数值解.这一点可以从表示解的数字不被方括号括住而确定.例:解⎪⎩⎪⎨⎧=-=-+20)sin(2y x ye y x x 键入: [x,y]=solve('sin(x+y)-exp(x)*y=0','x^2-y=2') 得:x = -6.0173272500593065641097297117905y = 34.208227234306296508646214438330由于这两个数字没有被[ ]括住,所以它们是数值解.另外,可利用solve 来解线性方程组的通解.例:解⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛246714922531372X 键入P1='2*x1+7*x2+3*x3+x4=6'; P2='3*x1+5*x2+2*x3+2*x4=4';P3='9*x1+4*x2+x3+7*x4=2';u=solve(P1,P2,P3,'x1','x2','x3','x4')Warning: 3 equations in 4 variables.u = x1: [1x1 sym]x2: [1x1 sym]x3: [1x1 sym]x4: [1x1 sym]可以看到:屏幕提示“有3个方程4个变量”,意为解不唯一(有时会提示解不唯一).且输出的是解的结构形式.为进一步得到解,可输入:u.x1,u.x2,u.x3,u.x4, 得:ans = x1ans = -5*x1-4*x4ans = 11*x1+9*x4+2ans = x4这样就得到了原方程组的通解.⑷ 解符号微分方程解符号微分方程的命令格式为: dsolve('eq1','eq2',…).其中eq 表示相互独立的常微分方程、初始条件或指定的自变量.默认的自变量为t .如果输入的初始条件少于方程的个数,则在输出结果中出现常数c1,c2等字符.关于微分方程的表达式有如下的约定:字母y 表式函数,Dy 表示y 对t 的一阶导数;Dny 表示y 对t 的n 阶导数. 例如:求⎪⎩⎪⎨⎧-==x dtdy ydt dx 的解可键入:[x,y]=dsolve('Dx=y','Dy=-x') 得x =cos(t)*C1+sin(t)*C2y =-sin(t)*C1+cos(t)*C2dsolve 中的输入宗量最多只能有12个,但这并不妨碍解具有多个方程的方程组,因为可以把多个方程或初始条件定义为一个符号变量进行输入.例如求 g f dt df43+= ,g f dt dg34+-= , f(0)=0 , g(0)=1的解.可输入指令: P='Df=3*f+4*g,Dg=-4*f+3*g';v='f(0)=0,g(0)=1';[f,g]=dsolve(P,v)f = exp(3*t)*sin(4*t)g = exp(3*t)*cos(4*t)注意:微分方程表达式中字母D 必须大写. 例如求解微分方程⎪⎩⎪⎨⎧=''='=-=0(0)y 0,(0)y 1,y(0)33y dx yd可输入y=dsolve('D3y=-y','y(0)=1,Dy(0)=0,D2y(0)=0','x') 得:y = (1/3+2/3*exp(1/2*x)*cos(1/2*3^(1/2)*x)*exp(x))/exp(x)最后看一个解非线性微分方程的例子:dsolve('(Dy)^2+y^2=1','y(0)=0','x')ans = [ sin(x)][ -sin(x)]对于无法求出解析解的非线性微分方程,屏幕将提示出错信息.微分方程的数值解及其它问题的数值解ⅰ常微分方程的数值解MATLAB提供了求微分方程数值解的指令:[t,x]=ode23('fname',[t0,tf],x0,tol,trace)[t,x]=ode45('fname',[t0,tf],x0,tol,trace)这两个格式中的输入参数意义完全一样.下面介绍这两个格式的有关内容及各参数的意义.这两个格式都采用Runge--Kutta法求解微分方程的数值解.它们是针对一阶微分方程组设计的.因此,如果待解的是高阶微分方程,那么首先要化成形式为x'=f(t,x)的一阶微分方程组.称为“状态方程”.‘fname’是f(t,x)的函数名.该函数以x'为输出,以t,x为输入变量,注意次序不能颠倒.t0和tf分别是积分的起始值和终止值.x0是初始值,以向量的形式输入.tol是用来控制精度的参数,可缺省.缺省时ode23默认tol=1.e-3;ode45默认tol=1.e-6.trace用来控制是否显示中间结果,可缺省.缺省时,默认trace=0,不显示.输出结果t和x分别是时间向量和相应的状态向量.虽然ode45比ode23的精度高,但它的运算速度更快.例:求著名的Van der pol 方程⎩⎨⎧=--=x yy x y x )1(2,并绘出其解的图形. 第一步:在编辑器中编写名为fname 的M 文件.function X=fname(t,x)X=zeros(2,1);X(1)=(1-x(2)^2)*x(1)-x(2);X(2)=x(1);第二步:将此文件存放于自己的文件夹中听候调用.第三步:在MATLAB 的命令窗口调用这个函数,即键入如下命令:[t,x]=ode45('fname',[0,20],[0,0.5]);plot(t,x)ⅱ 数值积分quad('fname',a,b,tol,trace) Simpson 法求数值积分.quad8('fname',a,b,tol,trace) Newton-Cotes 法求数值积分.fname 是被积函数文件名b,a 分别是积分上下限用tol 来控制积分精度.可缺省.缺省时默认tol=0.001.用trace 来控制是否用图形显示积分过程.可缺省.缺省时默认trace=0,不显示图形.例如:求 ⎰-302x e dx第一步:在编辑器中建立被积函数的M文件.取名为fname即在编辑器中输入:function y=fname(x)y=exp(-x^2);第二步:将此文件存放于自己的文件夹中.第三步:在MATLAB环境下调用fname.即输入s=quad8('fname',0,3)就可以得到结果:s =8862。