Matlab与计算机仿真课件_第1页
Matlab与计算机仿真课件_第2页
Matlab与计算机仿真课件_第3页
Matlab与计算机仿真课件_第4页
Matlab与计算机仿真课件_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Matlab与计算机仿真数学建模教练组助管计算机52班唐佩佳Matlab介绍60mins计算机仿真20mins自由提问Xmins1.Maltlab的特点用法简单适用范围广程序结构强具有开放性和延展性500多种数学、统计、科学及工程方面的函数标识自然,使问题和解答像数学算式一样简单明了用户可以将精力用于解题方面,而不是浪费在语言操作上1.1数值运算能力强强有力的二维、三维图形工具物件导向图形架构让使用者可以执行视觉数据分析,并制作高品质的图形1.2先进的资料视觉化功能作为一种直译式程序语言,编程所花时间约为FORTRAN或C的几分之一不需要编译、连接即能执行包含了丰富、易用的内建功能1.3高阶但简单的程序环境大多数核心文件和工具箱文件都是开放的,容许用户接触大多数文件的源代码可以更改现有函数库中的函数甚至可以加入自己的函数使Matlab成为使用者所需要的编程环境1.4开放及可延伸的架构这些工具箱提供了使用者在特别应用领域所需之许多函数。现有工具箱有:符号运算(利用MapleV的计算核心执行)、影像处理、统计分析、信号处理、神经网络、模拟分析、控制系统、即时控制、系统确认、强建控制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析。1.5丰富的程式工具箱2.数组及矩阵的创建和操作2.1变量一般变量特殊变量变量一般变量命名规则等和C、C++等高级语言相同,不赘述特殊变量变量名含义ans运算结果的默认变量名pi圆周率eps计算机的最小数inf无穷大,如NaN非数,如,i,jrealmin最小的可用正实数realmax最大的可用正实数以上变量如未被用户使用,则变量的值为系统的预定义的值如果用户对上表中的变量进行了重新赋值,则变量的值被临时覆盖,可通过clear命令消除用户自定义的变量的值2.2数组的创建直接输入A=[123;456;789];语句生成from:step:to格式生成固定步长的数组linspace(a,b,n)生成a~b间的线性分布的n个素的数组logspace(a,b,n)生成之间对数等分的n个元素的数组特殊矩阵的生成方法zeros(m,n)mxn的全0矩阵ones(m,n)mxn的全1矩阵rand(m,n)mxn的均匀分布的随机矩阵,取值为0~1randn(m,n)mxn的正态分布的随机矩阵

eye(n,n)mxn的单位阵2.3矩阵的提取A(r,c)矩阵A的元素(r,c)A(r,:)矩阵A的第r行A(:,c)矩阵A的第c列利用逻辑矩阵来提取矩阵用于:寻找矩阵中大于某个值的元素等类似的问题%寻找A中所有大于0.5的元素%B=A>0.5;A(B)2.4矩阵元素的更改或删除A(i,j)=x;%将矩阵A中的(i,j)的值改为xA(:,3)=[];%删除矩阵A中的第3列2.5矩阵的特殊操作triu(x)产生X的上三角矩阵tril(x)产生X的下三角矩阵3.矩阵运算3.1矩阵之间的关系运算C1=A==B判断A,B是否相同,同则为1,不同则为0C1=A>=B判断A是否大于等于B,是则为1,不是则为0介绍两个常用于调试程序的函数size(A)测算矩阵的大小

,返回[mn]isempty(A)判断矩阵是否为空,是则为13.2用图形方式查看稀疏矩阵的信息%exp3_2_1%A=[]A=sprandsym(200,0.03)+100*speye(200,200);

%生成系数矩阵spy(A);%画出稀疏矩阵A中的非零元素分布图%exp3_2_2%A=[];A=sprandsym(200,0.03)+100*speye(200,200);p=[];p=symamd(A);%计算矩阵A的对称spy(A(p,p));%画出排序后A中非零元素的分布图4.字符、元胞和结构数组字符数组(字符串)可以被很简单的创建,类型转换,比较,查找,替换等。且操作比C、C++简单。但在建模中较少运用,在此不赘述。结构数组是一种非常有用的数据结构,尤其是在解决复杂问题时可以很大程度上提高算法效率。结构数组实质上类似与C、C++中的结构体结构数组结构体%exp4_1_1%=‘Nike’;%创建name并赋值player.nation=‘China’;%创建nation并赋值player.att=[20171920];%创建nation并赋值5.多项式与数据分析5.1多项式的四则运算及导数%exp5_1_1%p1=[1800-10];%p2=[2-13];%poly2str(p1,’x’)%以比较习惯的方式显示多项式poly2str(p2,’x’)%以比较习惯的方式显示多项式y=conv(p1,p2)%使用Conv函数求两多项式的乘积poly2str(y,’x’)%以比较习惯的方式显示多项式y1=polyder(y);%使用polyder函数求导数poly2str(y1,’x’)%以比较习惯的方式显示多项式5.2多项式求值polyval(p,a)%以p为系数的多项式,将自变量的值取aa可以是一个数,也可以是矩阵,当其为矩阵时相当于取a中的每一个元素,结果是一个矩阵多项式求根roots()部分分式展开residue()多项式的微分积分5.2数据插值5.2.1一维数据插值Y1=interp1(X,Y,X1,’method’)根据X,Y的值,计算出在X1处的值,并返回给Y1,其中X,Y是两个等长的已知向量,分别描述采样点和样本值,X1描述欲插值的点,返回值Y1是与X1等长的插值结果。method是插值函数的类型,允许的取值有linear(线性插值)、nearest(用最接近的相邻点插值)、cubic(三次插值)、spline(三次样条插值)5.2.1二维数据插值Z1=interp2(X,Y,Z,X1,Y1,’method’)5.3曲线拟合多项式曲线拟合是一个用一个多项式来逼近一组给定的数据,拟合的准则是最小二乘法,即寻找一个f(x),使得最小拟合的阶数不宜太高!5.4数据统计处理函数名功能max(A)矩阵或向量A的最大值min(A)矩阵或向量A的最小值sum(A)矩阵或向量A的和mean(A)矩阵或向量A的平均值median(A)矩阵或向量A的中值corrcoef(X,Y)矩阵X与Y的相关系数排序[Y,I]=sort(A,dim)函数返回一个对A中的元素按升序排列的新向量,Y是排序后的向量,而I记录Y中的元素在A中的位置。其中,dim指明对矩阵A中的列还是行排序,dim=1,则按列排,dim=2,则按行排。6.图形6.1绘图以合适的图来表现结果很直观,很形象,比单纯数据更易理解,好的图将成就好的论文!结合经验,给出如下建议:线型及颜色一图多线不要忘记做标注视角三维图中注意调整统计图饼图火柴图exp6_1_1火柴图exp6_1_2饼图exp6_1_3三维曲面图7.Matlab在各工程领域的应用7.1在工程优化中的应用matlab优化工具箱提供了大量优化函数来求解不同类型的优化问题线性规划问题无约束优化问题有约束优化问题二次规划问题最小最大化问题多目标规划问题7.2在自动控制中的应用控制系统工具箱给出了丰富的函数来描述以下不同的不同控制系统形式,模型间的转换按系统描述函数的形式来分传递函数模型零极点模型状态空间方程按输入输出的变量数目来分:单输入单输出系统(SISO)多输入多输出系统(MIMO)单输入多输出系统(SIMO)多输入单输出系统(MISO)还有系统的串联、并联和反馈等时域及频域分析时域分析:一阶系统、二阶系统和高阶系统的时域分析,求解系统阶跃响应、冲击响应等频域分析的三种基本方法:幅相频特性(Nyquist图)对数频率特性(Bode图)对数幅相频特性(Nichols图)7.3在数字信号处理中的应用数字信号处理基础知识信号的产生信号的运算信号的抽取和插值

数字信号的变换技术离散傅立叶变换(DFT)快速傅立叶变换(FFT)Hilbert傅立叶变换

数字滤波器的分析与实现7.4在人工神经网络中的应用感知器是一种线性分类器,可以解决文字识别等简单的模式识别问题比较古老,现已很少运用线性神经网络是一种简单的神经元网络,可以解决函数逼近,预测与预报,滤波,模式识别,数据压缩,分类等问题BP神经网络人工神经网络的精华部分,是前向神经网络的核心,可以用于函数逼近、模式识别、数据压缩、分类等问题的研究径向基网络在学习速率、可扩展性等方面克服了BP的缺点,具有广泛的应用自组织竞争人工神经网络具有自组织、自适应的学习能力、扩展了神经网络在模式识别等方面的应用exp7_4_1%线性神经网络(函数逼近)

BP神经网络应用举例exp7_4_2%函数逼近%exp7_4_3%分类%exp7_4_5%图的存储(CommandWindow)%exp7_4_4%噪声去除%8.计算机仿真系统复杂题目没有数据要预测却没有可靠的方法计算机仿真适用于计算机仿真解决的问题难以用数序公式表示的系统,或者没有建立和求解数学模型的有效方法虽然可以用解析的方法解决问题,但数学的分析与计算过于复杂难以在实际环境中进行实验和观察时,计算机仿真是唯一可行的办法仿真的几个重要步骤产生随机数对于不同的问题产生不同分布的随机数例如a.涉及排队论的问题,需要产生足够多的满足泊松分布的随机数b.已知分布函数可以生成满足该分布的随机数(蒙特卡罗仿真)连续问题离散化将系统变换的全过程离散为一个个单位时间,每过一个单位时间,检查系统各参数,根据参数计算出下一个状态,再过一个单位时间,再检查各参数,再计算实例评价一个超市的运营效率顾客流量商品的分布过道的宽窄收银台的个数收银人员的效率虚拟超市9.几点经验数学建模与ACM的辩证关系二者的联系已知数据需要程序来读取、预处理建立的数学模型也需要通过程序来验证其优劣,提供改进方向对模型进行敏感度、鲁棒性测试并评价将结果以图表的形式展现可以说,数学软件的运用贯穿了建模的始终。对于复杂的问题,更是对程序设计人员提出了更高的要求!要求他们:能够运用较好的数据结构和优秀的算法能够经受住海量数据(100万个以上的数据流)的考验这样的复杂问题,程序量一般大于1000行(matlab),1800行(C、C++)二者的区别误区一:ACM能搞定一切!建模就是一个ACM的大作业而已ACM侧重于算法,而数学建模侧重于模型的建立,算法只是模型的求解的一种方法。只有程序,没有公式只有算法,没有模型只有求解结果,没有建模过程---无效!误区二:程序运行得这么慢,还不如用C/C++编呢!小规模问题,Matlab与其他高级语言运行时间差不多,对于大规模问题,不超过20mins是可接受的。语言不分优劣,重要的是使用习惯,可以用自己熟悉的语言完成程序的主题,将结果用Matlab来显示,Matlab提供了与各高级语言的接口。误区三我们队要组队的话最好找一个参加ACM的数学建模对程序的要求并不是特别高,只要求你会开机,会认识键盘,会用鼠标就成!Matlab淡化了其他高级语言的语法上的严格,可以主要关注求解而不是语法错误Matlab容易上手,一般对于一个没有学过C的人,边看边练,一天三小时的话,一周就能运用Matlab的大部分函数对于有一定编程基础(上过C/C++课)有几个建议:保持良好的程序结构(缩进,必要的注释)善于使用良好的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论