第一篇:关于Matlab的学习体会报告
关于Matlab的学习体会报告
经过一学期的C语言学习,我们开始转化学习Matlab软件的学习。在计算机国家二级C语言考试过后。学习Matlab软件应用是一次更高要求的学习计划,也是一种结合我们自动化专业背景的规划。在此我感受到了老师的良苦用心,在学习的过程中,我硬性的克服着国二考试后的松懈,以更高要求学习着Matlab软件。
首先,了解到了Matlab软件的历史。MATLAB(MATrix LABoratory,即矩阵实验室)是美国 MathWork 公司推出的一套高效率的数值计算和可视化软件。MATLAB 是当今科学界最具影响力、也是最具活力的软件,它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。
然后,了解到了Matlab软件的功能。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。在国际学术界,Matlab已经被确认为准确、可靠的科学计算标准软件。在国际一流的学术刊物上,尤其是信息科学刊物上,都可以看到Matlab的应用。
最后,开始说我自己学习Matlab软件的过程,体会和现在学到的Matlab的知识应用。我将分以下几点来阐述我的观点:
1.Matlab的语言简练、易读性,但是不缺乏严谨与内涵。相对于C语言。它的语言简练明了,有时候只要一个字符就能表示出整句语句,不用一步步去读。这种语言简单而实用。每个函数建立一个同名的M文件,如上述函数的文件名为fun.m。这种文件简单、短小、高效,并且便于调试。比如说,函数的赋值。在C语言中,它需要一个个去赋值,x=?;y=?;当变量很多的时候,我们不能一次性的去赋值。并且我们需要注意赋值的类型。而在Matlab软件中,我们只需要知道它的初值,自变量的数值,以及它的范围,就可以用矩阵把整个函数赋值。这减去了我们的工作复杂性,也降低了我们时间花费。2.Matlab的数据库的可覆盖性,可调用性。我记得C语言中,假如你得调用一个数值,必须是局部函数中赋值,否则就定义为全局变量。还有在C语言中数据的变量储存是一个问题,自动的有auto,静态变量有static和register。我们有时候很难记忆,所以数据储存容易出现问题。而Matlab软件的数据是由于MATLAB 语言库函数与用户文件的形式相同所以用户文件可以像数据 库函数一样随意调用。所以用户可根据自己的需要任意扩充函数库。3.Matlab软件编程的简便性,清晰性。用Matlab软件设计程序,它更加方便快捷。MATLAB 的基本数据单元是既不需要指定维数、也不需要说明数据类型的矩阵,而且数学表达式和运算规则与通常的习惯相同。因此,在MATLAB环境下,数组的操作与数的操作一样简单。对比C语言,Matlab确实简单不少。我们在编写程序时简便了许多。例如,求1 1 2 3 5 8 13„这个算法。C语言得用许多的语句去循环算这个算法。而Matlab软件可以首先数据初始化,然后用while去循环,做出循环体,就可以你要多少数据,它会给你多少数据。还有在Matlab软件设计程序时,少了很多的定义,减少了复杂度,节省了计算机的暂时内存使用率。就和C语言一样,在语句结束时用“{ }”,Matlab软件中一句话结束时,也需要用end。
4.Matlab软件的功能丰富性。Matlab具有一个强大的工具箱,里面的东西,只要你想要的,你可以毫不犹豫的提取出来,不用想C语言编程中,你要的东西你得用函数调用的形式去借用。这些工具箱提供了用户在特别应用领域所需的许多函数,这使得用户不必花大量的时间编写程序就可以直接调用这些函数,达到事半功倍的效果。
5.最后说我觉得Matlab应用软件最强大,最实用的功能——绘图。不管你二维图形,三维图形,还是现在流行的四维图形。只要你想要,能编写出来函数式。在短短几秒钟之内,它会呈现在你眼前。另外就是图形的直观性,你在绘编图形时,加上一点修饰,它会自动标注你想要图形的阴影部分。MATLAB 具有二维和三维绘图功能,使用方法十分简便。而且用户可以根据需要,坐标图上加标题。坐标轴标记。文本注释及栅格等,也可以指定图线形式(如实线、虚线等)和颜色,也可以在同一张图上画不同函数的曲线,对于曲面图还可以画出等高线。
说完了Matlab软件的功能,我知道它的功能远远超过我知道的。Matlab软件是一种全能的软件。它的程序语言是其他的语言不能比拟的。但是在学习的过程中,我真正知道的Matlab软件的应用简单,应用的高科技性,我们得会很多知识才能应用好Matlab软件。现在,我开始说我学习它的困难:
1.我们可以只学Matlab的基本应用。为了方便自己的工作或学习,那么你 2 没有必要把matlab教程全部学会,只需要学你需要的那部分即可,比如,绘图,矩阵运算,等等,根据你个人的需要而定,但是基本命令、数据类型、基本的程序结构(条件语句,循环语句,嵌套)、文件的IO是必须看的,因为任何一个程序都需要这几个基本的块。
2.必须在C语言的基础上去学Matlab软件的编程。这样可以减少走弯路,节省时间,便于理解其程序。对于程序的运行效率非常有帮助。有的时候,你编出来的程序,能够运行,但是耗时太长,也就是说你的程序没有错,但是不适合实际。或者说,对于规模小的问题能够解决,但是规模大一点的问题就需要很长很长的时间,这就需要对程序的结构和算法问题进行改进。所以要理解C语言编程基础上去学Matlab编程。
3.基础知识于实际操作结合。你把基本的知识看过之后,就需要找一个实际的程序来动手编一下,不要等所有的知识都学好之后再去编程,你要在编程的过程中学习,程序需要什么知识再去补充。
4.有一定数学基础。Matlab软件是与高等数学,计算机科学相结合的软件。所以,当你学习Matlab时,你也得会一定的数学。不会的话,你也要有一本关于Matlab软件自带的函数表。,你需要找一本matlab的函数工具词典,就像汉语词典一样,你要尽量多的熟悉matlab自带的函数,及其作用,因为matlab的自带函数特别多,基本上能够满足一般的数据和矩阵的计算,所以基本上不用你自己编函数(如vb中,大部分的函数都需要自己编)。这一点对你的程序非常有帮助,可以使你的程序简单,运行效率高,可以节省很多时间。
5.最重要的是你得会英语。Matlab软件里的东西全是英文,所以你得有一本英语翻译书。把那些最基本得单词,工具栏,功能键了解清楚。这总比你一个一个去试强得多。现在学它最头痛的就是英语不好,你不能知道那个单词是一个什么关系数列。在获取帮助的时候,Matlab全是用英语去解释,你根本看不懂它用来干嘛,你接下来应该做什么。只会看着英文发呆的。所以我建议有一本翻译书。
学了半个学期的Matlab软件应用,它确实好用。它能解决我们好多数学,物理,化学问题。它同样能验证好多科学家的理论,定律。在我们的数学建 3 模中更是一种实用的工具。我们应该进一步去学习,能应用Matlab软件的大部分功能,让我们在以后学习专业课的时候能有一定帮助。
第二篇:Matlab实习报告
实验一
仿真条件:电机空载下,输入为阶跃信号,仿真时间为0.4S。
阶跃信号,仿真时间为0.4S。
图二 磁链图
实验结果:开始时有摩擦转矩,在短时间内能够快速形成圆形转矩。
图1 速度响应曲线 实际结果:时间与电机负载转矩为0时的电机响应速度曲线,速度响应误差为0。
仿真条件:电机空载下,输入为
仿真条件:d轴电流设置为0,输入为阶跃信号,电机空载运行响应时间为0.4秒。
图三 速度电流响应曲线
实际结果:在0.02秒时间达到目标转速,iq达到稳定。
实验三
实验目的:验证比列系数对稳态跟踪误差的影响。
仿真条件:修改KVFF为0,KAFF为0,负载为0,KPP为169,KPD为200.8,kpi为0
图四 速度 EP的响应曲线
试验目的:验证比例系数对稳态跟踪误差的关系ESS=V/K稳态跟踪误差越来越小。
仿真条件:修改KVFF为0,KAFF为0,负载为0,KPP为500,KPD为200.8,kpi为0。
图五 速度 EP的响应曲线
试验目的:验证比例系数对稳态跟踪误差的关系。
仿真条件:修改KVFF为0,KAFF为0,负载为0,KPP为5000,KPD为200.8,kpi为0。
图六 速度 EP的响应曲线
实验结果:Ep=V/K,随着K的增加,V不变,EP渐渐减小,前馈=1,完全补偿误差,稳定位置跟踪误差=0.试验目的:修改前馈系数观察稳态跟踪误差关系。
仿真条件:使KVFF为0.5电机负载为0使电机的摩擦系数为0。
图七 速度 EP的响应曲线
试验结论:修改前馈系数观察稳态跟踪误差关系。仿真条件:使KVFF为1电机负载为0使电机的摩擦系数为0。
图八 速度 EP的响应曲线
实验结果:由稳态跟踪误差=速度/比列系数(ess=v/k)得,比列系数越大,速度不变,稳态跟踪误差越大。
实验二
条件:电流给定信号(iq=500HZF方波),Id=0。电机的摩擦系数为无穷大,看Iq的响应波形。
实验结果:电机的摩擦系数为1000时,TL会反向转动。
条件:电流环达到速度环输出,还原参数速度还比列信号改成正弦波,继续增加频率。
正弦波频率为100HZ
正弦波频率为200HZ
正弦波频率为500HZ
正弦波频率为700HZ
实验四
实验条件:建立一个直流电机单速度闭环调节器。
第三篇:Matlab实践报告
MATLAB实践报告
2016/2017学年 第一学期
专 业: 电气工程及其自动化
班 级: 学 号: 姓 名:
2017年 2 月
目录
第1章 引言.....................................................................................................................................1 第2章MATLAB功能介绍............................................................................................................2 2.1 MATLAB功能特性...........................................................................................................2 2.1.1主要功能..................................................................................................................2 2.1.2 MATLAB产品系列重要功能................................................................................2 2.2MATLAB优势特点............................................................................................................2 2.2.1编程环境..................................................................................................................3 2.2.2简单易用..................................................................................................................3 2.2.3强处理能力..............................................................................................................3 2.2.4应用软件开发..........................................................................................................3 2.3MATLAB应用方面............................................................................................................3 第3章MATLAB课程设计任务....................................................................................................5 3.1任务一 MATLAB环境语法、基本运算及绘图..............................................................5 3.1.1目的..........................................................................................................................5 3.1.2原理..........................................................................................................................5 3.1.3内容..........................................................................................................................5 3.2任务二 MATLAB数值运算.............................................................................................9 3.2.1目的..........................................................................................................................9 3.2.2原理..........................................................................................................................9 3.2.3内容..........................................................................................................................9 3.3任务三 MATLAB的符号计算.......................................................................................15 3.3.1目的........................................................................................................................15 3.3.2内容........................................................................................................................15 3.4任务四 MATLAB基本编程方法...................................................................................18 3.4.1目的........................................................................................................................18 3.4.2内容........................................................................................................................18 第4章 总结...................................................................................................................................23
第1章 引言
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
第2章MATLAB功能介绍
2.1 MATLAB功能特性
2.1.1主要功能
1.数值分析
2.数值和符号计算 3.数字图像处理 4.数字信号处理 5.工程与科学绘图 6.控制系统与仿真 7.通讯系统设计与仿真 8.财务与金融工程
2.1.2 MATLAB产品系列重要功能
·MATLAB®: MATLAB 语言的单元测试框架
·Trading Toolbox™: 一款用于访问价格并将订单发送到交易系统的新产品
·Financial Instruments Toolbox™: 赫尔-怀特、线性高斯和 LIBOR 市场模型的校准和 Monte Carlo 仿真
·Image Processing Toolbox™: 使用有效轮廓进行图像分割、对 10 个函数实现 C 代码生成,对 11 个函数使用 GPU 加速
·Image Acquisition Toolbox™: 提供了用于采集图像、深度图和框架数据的 Kinect® for Windows®传感器支持
·Statistics Toolbox™: 用于二进制分类的支持向量机(SVM)、用于缺失数据的 PCA 算法和 Anderson-Darling 拟合优度检验
MATLAB工作界面
·Data Acquisition Toolbox™: 为 Digilent Analog Discovery Design Kit 提供了支持包
·Vehicle Network Toolbox™: 为访问 CAN 总线上的 ECU 提供 XCP 2.2MATLAB优势特点
1.高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
2.具有完备的图形处理功能,实现计算结果和编程的可视化;
3.友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
4.功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等),为用户提供了大量方便实用的处理工具。
2.2.1编程环境
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
2.2.2简单易用
MATLAB是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
2.2.3强处理能力
MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而且经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
2.2.4应用软件开发
在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接。
2.3MATLAB应用方面
MATLAB 产品族可以用来进行以下各种工作:
●数值分析
●数值和符号计算 ●工程与科学绘图
●控制系统的设计与仿真 ●数字图像处理技术 ●数字信号处理技术 ●通讯系统设计与仿真 ●财务与金融工程
●管理与调度优化计算(运筹学)
MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。
第3章MATLAB课程设计任务
3.1任务一 MATLAB环境语法、基本运算及绘图
3.1.1目的
1、掌握 MATLAB软件使用的基本方法;
2、熟悉 MATLAB 的数据表示、基本运算方法;
3、熟悉 MATLAB 绘图命令及基本绘图控制。
3.1.2原理
MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。MATLAB有3种窗口,即:命令窗口(The Command Window)、m-文件编辑窗口(The Edit Window)和图形窗口(The Figure Window),而Simulink另外又有Simulink模型编辑窗口。
1.命令窗口(The Command Window)
当MATLAB启动后,出现的最大的窗口就是命令窗口。用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。
在MATLAB中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。在命令窗口中输入该文件名,这一连串命令就被执行了。因为这样的文件都是以“.m”为后缀,所以称为m-文件。
2.m-文件编辑窗口(The Edit Window)我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。在MATLAB主界面上选择菜单“File/New/M-file”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。
3.1.3内容
1、帮助命令,使用 help 命令,查找 exp(求幂)函数的使用方法,如图3-1。
图3-1 exp(求幂)函数的使用方法图
2、矩阵运算
(1)矩阵的乘法,已知 A=[1 2 3;2 3 4;1 3 5];B=[1 2 3;4 5 6;2 1 6],求 A*B,A^2,A.*B,A^2*B。结果如下:
(2)矩阵除法,已知 A=[1 2 3;3 5 6;4 8 6];B=[1 0 0;0 2 0;0 0 3];AB,A/B,A./B,A.B。结果如下:
(3)矩阵的转置及共轭转置,已知 A=[5+i,2-i,1;6*i,4,9-i];求 A.', A'。结果如下:
(4)使用冒号选出指定元素,已知: A=[1 2 3;4 5 6;7 8 9];求 A 中第 3 列前 2 个元素;A 中所有列第 2,3 行的元素。结果如下:
3、多项式
(1)求多项式 p(x)= x3 + 2x+ 4的根。结果如下:
(2)已知 A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4],求矩阵 A 的特征多项式;求特征多项式中未知数为 20 时的值; 把矩阵 A 作为未知数代入到多项式中。结果如下图所示:
图3-2 结果图
图3-3结果图
4、基本绘图命令
在同一坐标系中绘制余弦曲线 y=cos(t-0.2)和正弦曲线 y=sin(t-0.3),t∈[0,2π];余弦曲线 y=cos(t-0.2)的线形为点划线、颜色为绿色、数据点标记为加号;正弦曲线 y=sin(t-0.3)的线形为虚线、颜色为红色、数据点标记为星号;显示坐标的范围、刻度线、网络线;标注坐标轴名称、标题。
程序:
图3-4程序图
图3-5结果图
3.2任务二 MATLAB数值运算
3.2.1目的
1.熟悉Matlab中各类数据,尤其是矩阵的定义、赋值和运用; 2.了解Matlab的矩阵分析函数以及求线性方程组的数值解; 3.熟悉多项式运算函数、数值插值。
3.2.2原理
1.创建矩阵的方法
a.直接输入法规则:矩阵元素必须用[
]括住;矩阵元素必须用逗号或空格分隔;在[
]内矩阵的行与行之间必须用分号分隔。逗号和分号的作用:逗号和分号可作为指令间的分隔符,matlab允许多条语句在同一行出现。分号如果出现在指令后,屏幕上将不显示结果。
b.用matlab函数创建矩阵:空阵 [
] —
matlab允许输入空阵,当一项操作无结果时,返回空阵;rand —— 随机矩阵;eye —— 单位矩阵;zeros ——全部元素都为0的矩阵;ones ——全部元素都为1的矩阵
c.矩阵的修改:可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改;指令修改:可以用A(,)= 来修改。
2.矩阵运算
a.矩阵加、减(+,-)运算规则:(1)相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。(2)允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。
b.矩阵乘(,./,.)运算规则:A矩阵的列数必须等于B矩阵的行数;标量可与任何矩阵相乘。
c.矩阵乘方—— a^n,a^p,p^a a ^ p —— a 自乘p次幂,对于p的其它值,计算将涉及特征值和特征向量,如果p是矩阵,a是标量,a^p使用特征值和特征向量自乘到p次幂;如a,p都是矩阵,a^p则无意义。
d.多项式运算
matlab语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。
f(x)=anxn+an-1xn-1+……+a0 可用行向量 p=[an an-1 …… a1 a0]表示;poly —— 产生特征多项式系数向量
e.代数方程组求解
matlab中有两种除运算左除和右除。
3.2.3内容
1.输入下列向量(矩阵),>> g = [1 2 3 4];h = [4 3 2 1]。
2.分别执行以下数组点运算,>> s1 = g + h, s2 = g.*h, s3 = g.^h,s4 = g.^2, s5 = 2.^h。
3.输入下列特殊矩阵,>>A=[ ],>>A=eye(10),A=rand(10,15),>> A=randn(5,10),>> A=zeros(5,10)。
图3-6 结果图
图3-7 结果图
图3-8 结果图
>>A=ones(5,10),>>
图3-9 结果图
图3-10 结果图
4.输入下列矩阵及矩阵函数
>> A=[2 0 –1;1 3 2];B=[1 7 –1;4 2 3;2 0 1];>> M = A*B
% 矩阵A与B按矩阵运算相乘 >> det_B = det(B)
% 矩阵A的行列式
>> rank_A = rank(A)
% 矩阵A的秩 >> inv_B = inv(B)
% 矩阵B的逆矩阵
>> [V,D] = eig(B)
% 矩阵B的特征值矩阵V与特征向量构成的矩阵D
>> X = A/B
% A/B = A*B-1,即XB=A,求X >> Y = BA’
%
BA’ = B-1*A’,即BY=A’,求Y
5.多项式运算
>> p=[1 2 0-5 6] >> rr=roots(p)>> pp=poly(rr)>> s=[0 0 1 2 3] >> c=conv(p,s)>> d=polyder(p)>> x=-1:0.1:2;>> y=polyval(p,x)
43% 表示多项式p(x)x2x5x6 % 求多项式p的根
% 由根的列向量求多项式系数
2s(x)x2x3 % 表示多项式
% 多项式乘积
% 多项式微分
% 计算多项式的值
图3-11 结果图
10(s3)6.有理多项式: G(s)(s1)(s2s3)
>> n=conv([10],[1 3])
% 定义分子多项式
>> d=conv([1 1],[1 1 3])
% 定义分母多项式
>> [r,p,k]=residue(n,d)
% 进行部分分式展开
>> p1=[1-p(1)],p2=[1-p(2)]
% 定义两个极点多项式p1(s)=s-p(1),p2(s)=s-p(2)>> den=conv(p1,p2)
% 求分母多项式den=p1(s)*p2(s)
>> r1=r(1),r2=r(2)>> num=conv(r1,p2)+conv(r2,p1)% 求分子多项式
>> [num,den]=residue(r,p,k)% 根据r,p,k的值求有理多项式
7.函数插值运算
线形样条插值
>>x=0:10 >> y=sin(x)>> x0=[ 3.4 4.7 6.5 8.2]
>> y0=interp1(x,y,x0)
% 线形插值 >> x1=0:0.1:10 >> y1=sin(x1)>> plot(x1,y1,'r:',x,y,'b*',x0,y0,'g.')%
插值比较
图3-12 结果图
3.3任务三 MATLAB的符号计算
3.3.1目的
1、掌握 MATLAB符号表达式的创建及代数运算;
2、掌握 MATLAB符号微积分;
3、掌握MATLAB 符号方程的求解。
3.3.2内容
a11a12
1、求矩阵Aa21a22a31a32
a13a23的行列式、逆阵和特征值。a33 15
图3-13 结果图
432 2.因式分解x5x5x5x6
432(x1)5x5(x2)5x1的同类项。3.合并
4(x1)4.求的展开式。
5.求下列式子极限 :
limx2ln(sinx)
(2x)
6.求下列函数的导数
yexcosxx3及当x=3时的导数值。
7.已知矩阵
exAsinx x22xlnx,求A的导数
8.求下列积分:
(1)
sinx1sinx2dx(2)
0sinx3sinx5dx
9.求微分方程
x22xyy2(y2xy)dy0dxy|x11
3.4任务四 MATLAB基本编程方法
3.4.1目的
1、掌握 MATLAB 软件使用的基本方法;
2、熟悉 MATLAB 程序设计的基本方法。
3.4.2内容
1、编写程序完成如下功能:提示用户输入1或者2,当用户输入1时,对产生的随机序列进行降序排序;当用户输入2时,对产生的随机序列进行升序排列。
程序如下: clear;
syms n ikey=0;while(ikey==0)s1=input('请输入[1/2]?','s');x=randperm(10)if(s1=='2')
ikey=1;
y=sort(x,'ascend');
disp(['升序排列的向量为:',num2str(y)]);else if(s1=='1')
ikey=1;
y=sort(x,'descend');
disp(['降序排列的向量为:',num2str(y)]);
end break end end
图3-14 结果图
2、编写程序实现如下功能:如果想对一个变量 x 自动赋值,当从键盘输入 y 或 Y 时(表示是),x 自动赋为 1;当从键盘输入 n 或 N 时(表示否),x 自动赋为 0;输入其他字符时终止程序。
程序如下: ikey=0;while(ikey==0)s1=input('若给X赋值请输入[y/n]?','s');if(s1=='y'|s1=='Y'), ikey=1;x=1
else if(s1=='n'|s1=='N')ikey=1;x=0,end break end End
3-15 结果图
3.编写函数实现如下功能:输入一个百分制的成绩,要求输出成绩的等级,其中90-100分输出为优秀,80-89分输出为良好,70-79输出为中等,60-69输出为及格,60分以下不及格,如果输入的数据不是百分制,显示出错信息并提示:请输出百分制成绩。
程序如下:
clear;m=input('请输入一个数值:');m=ceil(m/10);switch m case {10,9}
disp('优秀');case 8
disp('良好');case 7
disp('中等');case 6
disp('及格');case {5,4,3,2,1,0}
disp('不及格');otherwise
disp('输入有误!')End 运行结果:
请输入百分之原始成绩:92 五级制成绩为: 优秀
请输入百分之原始成绩:88 五级制成绩为: 良好
请输入百分之原始成绩:64 五级制成绩为: 及格
请输入百分之原始成绩:56 五级制成绩为: 不及格
4.编写函数计算s=n!syms n s=1 N=input('data n:');for i=1:N s=s*i;end s s = 1 data n:6 s = 720
5.编写程序,计算1+3+5+…(2n+1)的值,使用input语句输入n的值。程序如下:
n=input('input: n=');s = sum(1:2:(2*n+1))input: n=7 运行结果: s = 64
第4章 小结
通过这次对MATLAB的亲身操作和实践,学习掌握了许多原本不知道的或者不太熟悉的命令。比如说相关m文件的建立,画图用到的标注,配色,坐标控制,同一张图里画几幅不同的图像,相关参数的设置以及相关函数的调用格式等等。
就拿建立一个数学方程而言,通过设置不同的参数达到所需要的要求和结果,而且还可以在不同的窗口建立不同的函数而达到相同的效果,比如说可以再命令窗口和m文件中通过不同的命令设置的到相同的所需的效果图。而自己对于矩阵及闭环传递函数的建立原本所掌握的知识几乎为零,而通过这次实验使我彻底的掌握了相关的命令操作和处理的方法,在这里我们不仅可以通过建立函数和参数来达到目标效果,而且还可以通过可视化的编程达到更快更方便,更简洁的效果。就拿可视化编程而言原本根本就只是听说而已罢了,从来就没有亲身去尝试过,然而现在自己却可以和容易的通过搭建不同功能木块来实现相关的函数及功能。这些在原本根本就不敢相信,然而通过MATLAB的学习和实验亲身操作这些原本看似不可能的操作在此就变的轻而易举的事了。
要想取得更大的成绩就得不断的去努力学习和汲取相关的知识和技巧。万不可自以为傲,裹足不前,MATLAB真的是个非常强大和有用的工具我们真正的能把它学懂学透的话还是需要下非常大的功夫和努力的。然而,不是说兴趣才是最大的老师嘛,我也相信,只要你自己有兴趣,即使它再怎么强大和难搞,我们能做的还是非常多的,关键的就只是在于你自己的态度了。我这里想说的事,MATLAB对于我来说是非常有吸引力的,我不敢说自己多么喜欢它,但是兴趣确实蛮高的,所以我相信在以后的学习和工作当中MATLAB将成为我非常有用的帮忙工具和好伙伴,也许这要说有点太草率了,但是我觉得对它的评价怎么也不会让每一个接触过它的人吝啬是自己赞美之词。它不仅仅可以用来建模分析函数,还可以用来进行图形的建模和仿真,还可以用来分析系统和函数的参数稳定性等等。
第四篇:matlab实习报告(最新)
1.求f(x)=4x6-x+x3-95在(0,100)上最大值、最小值,根。(使用函数fminbnd、roots)
>>[x,y]=fminbnd('4*x.^6-x+x.^3-95',0,100)x =
0.4432 y =
-95.3258 >> [x,y]=fminbnd('-4*x.^6+x-x.^3+95',0,100)x =
99.9999 y =-4.0000e+012 >> a=[4 0 0 1 0-1-95];roots(a)ans =
1.6860
0.8525 + 1.4852i
0.85251.4514i 求解常微分方程x’’=-x’+x+1,x’(0)=1,x(0)=0(使用函数dsolve)dsolve('D2x=-Dx+x+1','Dx(0)=1','x(0)=0')ans =(5^(1/2)*exp(t*(5^(1/2)/23))/(10*exp(t*(5^(1/2)/2 + 1/2)))1/3 + 1/51/11 +...)其中 n 为函式的输入,级数和 f(n)则是函式的输出。此外,你必须进行下列事项:
function f=pifun(n)l=1;s=0;for i=1:n s=s+l/(2*i-1);l=-l;end s=4*s;disp('f(n)的值是');disp(num2str(s))(1)使用 tic 和 toc 指令来测量 pifun(100000)的计算时间。如果你不知道如何使用这两个指令,请使用 help tic 及 help toc 来查出它们的用法。我的计算机是 Pentium-450,所得的计算时间约为 2 秒。请说明你的计算机规格以及其计算时间。
>> tic,pifun(100000),toc f(n)的值是 3.1416 Elapsed time is 0.028928 seconds.Cpu Pentium dual—core e5300(2)使用 flops 指令来测量 pifun(100000)所用到 floating point operations 的计算次数。如果你不知道如何使用这个指令,请使用 help flops 来查出它的用法。
14、写一个 MATLAB 的递归函式 fibo.m 来计算 Fibonacci 数列,其定义如下:
fibo(n+2)= fibo(n+1)+fibo(n)此数列的启始条件如下: fibo(1)= 0, fibo(2)= 1.function f=fibo(n)if n==1 f=0;elseif n==2 f=1;else f=fibo(n-1)+fibo(n-2);end 求下列函数的极小点:
1)fXx24x29x22x18x;
12312>> f='x(1)^2+4*x(2)^2+9*x(3)^2-2*x(1)+18*x(2)';[x,fm]=fminsearch(f,[0,0,0])x =
1.0000-2.2500 0.0000
fm =
-21.2500
2)
fX2x1; 32x22x1x2x12x22>> f='x(1)^2+3/2*x(2)^2-2*x(1)*x(2)+x(1)-2*x(2)';[x,fm]=fminsearch(f,[0,0])
x =
0.*** 1.***
fm =
-0.***
3)fXx1422.12>> f='(x(1)-1)^4+x(2)^2';>> [x,fm]=fminsearch(f,[0;1])x =
0.***-0.***
fm =
4.24***82e-017
第1),2)题的初始点可任意选取,第3)题的初始点取为X00,1T.5x1x2x31x3xx23416. 解线性方程组 1并求系数矩阵的行列式。
x1x25x432x34x41 a=[5 1-1 0 1;1 0 3-1 2;-1-1 0 5 3;0 0 2 4-1];>> rref(a)
ans =
1.0000
0
0
0
1.4000
0
1.0000
0
0
-5.9000
0
0
1.0000
0
0.1000
0
0
0
1.0000
-0.3000
所以 x1=1.4;x2=-5.9;x3=0.1;x4=-0.3
a=[5 1-1 0;1 0 3-1;-1-1 0 5;0 0 2 4];>> det(a)
ans =
2f17. 设 f(x,y)= 4 sin(x y),求
xy
3x2,y3
syms f s y;syms f x y;f=4*sin(x.^3*y);z=diff(diff(f,x),y);x=2;y=3;subs(z)
>> zs17
ans =
1.0636e+003 18.求方程 3x4+4x3-20x+5 = 0 的所有解。
c=[3 4 0-20 5];roots(c)
>> zs18
ans =
-1.5003 + 1.5470i-1.50031.0860i 1.9536 + 1.0860i 1.0727
r =
8.6397e+003 即在第108年停产可获最大利润,最大利润为8639.7百万元。一幢楼房的后面是一个很大的花园。在花园中紧靠着楼房建有一个温室,温室高10英尺,延伸进花园7尺。清洁工要打扫温室上方的楼房的窗户。他只有借助于梯子,一头放在花园中,一头靠在楼房的墙上,攀援上去进行工作。他只有一架20米长的梯子,你认为他能否成功?能满足要求的梯子的最小长度是多少?
步骤:
1.先进行问题分析,明确问题;
2.建立模型,并运用Matlab函数求解; 3.对结果进行分析说明; 4.line)设计程序画出图形,对问题进行直观的分析和了解(主要用画线函数plot。若梯子能恰好放置,则梯子的长度f与倾角x关系如下:
ab7f(x)
(其中a=m, b=3.048m,0 L=inline('3.048/sin(x)+2.333/cos(x)','x');x=fminbnd(L,0.01,pi/2-0.01)l=subs(L) ezplot('3.048/sin(x)+2.333/cos(x)',[0,pi/2]) 由以上可知梯子的最小长度为7.59m。所以他能成功。 22.某大学青年教师从31岁开始建立自己的养老基金,他把已有的积蓄10000元也一次性地存入,已知月利率为0.001(以复利计),每月存入700元,试问当他60岁退休时,他的退休基金有多少?又若,他退休后每月要从银行提取1000元,试问多少年后他的基金将用完? function f=title22()s=10000;t=0;for i=1:360 s=s*(1+0.001)+700;end fprintf('60ËêÍËÐÝʱÍËÐÝ»ù½ðÓÐ%fÔª.n',s);while s>0 s=(s-1000)*(1+0.001);t=t+1;end t=ceil(t/12); fprintf('ÍËÐݺóÿÔÂÒª´ÓÒøÐÐÌáÈ¡1000Ôª£¬%dÄêºó»ù½ð½«ÓÃÍê.n',t);>> zs22 60岁退休时退休基金有317480.843330元.退休后每月要从银行提取1000元,32年后基金将用完.23.:请设计一个程序,程序完成下列功能:(1)让用户输入一个矩阵A;(2)在A中找出小于0的矩阵元素的位置;(3)在A中统计出等于0的元素的个数;(4)显示A的行数和列数; (5)找出矩阵A各元素中的最大值(显示值,不显示元素位置)。 function f=title20()a=input('ÇëÊäÈë¾ØÕóA: ');[m,n]=size(a);t=0;p=0;for i=1:m for j=1:n if a(i,j)<0 p=p+1; fprintf('µÚ%d¸öСÓÚ0µÄλÖÃÊÇ(%d,%d)n',p,i,j); end if a(i,j)==0 t=t+1; end end end B=a(:);max=B(1);for i=2:m*n if B(i)>max max=B(i); end end if p==0 disp('AÖÐûÓÐСÓÚ0µÄÔªËØ.');end fprintf('AÖеÈÓÚ0µÄÔªËصĸöÊýΪ%dn',t);fprintf('AµÄÐÐÊýºÍÁÐÊý·Ö±ðΪ%d£¬%dn',m,n);fprintf('A¸÷ÔªËØÖеÄ×î´óֵΪ%dn',max); 24:请设计一个程序,程序完成下列功能:(1)让用户依次输入两个字符串s1和s2;(2)比较两个字符串的长度并显示比较结果; (3)判断s1与s2有没有长度在3个字符以上的相同子串,显示判断结果。function f=title24() s1=input('ÇëÊäÈë×Ö·û´®s1: ');s2=input('ÇëÊäÈë×Ö·û´®s2: ');m=length(s1);n=length(s2);t=m;kk=0;if m>n t=n; disp('s1µÄ³¤¶È´óÓÚs2µÄ³¤¶È.');elseif m disp('s1µÄ³¤¶ÈСÓÚs2µÄ³¤¶È.');else disp('s1µÄ³¤¶ÈµÈÓÚs2µÄ³¤¶È.');end for i=4:t for j=1:m-i+1 for k=1:n-i+1 if strcmp(s1(j:j+i-1),s2(k:k+i-1))==1 l=0; for r=1:kk if strcmp(s1(j:j+i-1),b{r})==1 l=1; break;end end if l==0 kk=kk+1; b{kk}=s1(j:j+i-1); end end end end end for i=1:kk fprintf('µÚ%d¸öÏàͬ×Ö·û´®£º',i);disp(b{i}); end 25:编写程序模拟杨氏双缝干涉 两相干光源到接收屏上P点距离r1=(D2+(y-a/2)2)1/2, r2=(D2+(y+a/2)2)1/2,相位差 Φ=2π(r2-r1)/λ,光强I=4I0cos2(Φ/2)编写程序 clear lam=500e-9;a=2e-3;D=1;ym=5*lam*D/a;xs=ym;n=101;ys=linspace(-ym,ym,n);for i=1:n r1=sqrt((ys(i)-a/2).^2+D^2);r2=sqrt((ys(i)+a/2).^2+D^2);phi=2*pi*(r2-r1)./lam;B(i,:)=sum(4*cos(phi/2).^2);end N=255;Br=(B/4.0)*N;subplot(1,2,1);image(xs,ys,Br);colormap(gray(N));subplot(1,2,2);plot(B,ys); 26:编写程序模拟光栅衍射 公式:I=I0(sinα/α)2(sin(λβ)/sinβ)2 α=(πa/λ)sinΦ β=(πd/λ)sinΦ clear lam=500e-9;N=2;a=2e-4;D=5;d=5*a;ym=2*lam*D/a;xs=ym;n=1001;ys=linspace(-ym,ym,n);for i=1:n sinphi=ys(i)/D;alpha=pi*a*sinphi/lam;beta=pi*d*sinphi/lam; B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;B1=B/max(B);end NC=255;Br=(B/max(B))*NC;subplot(1,2,1)image(xs,ys,Br);colormap(gray(NC));subplot(1,2,2)plot(B1,ys); 27:绘制三元函数wx2y2z2的可视化图形 x=-5:0.05:5;y=-5:0.05:5;z=-5:0.05:5;[x,y,z]=meshgrid(x,y,z);v=x.^2+y.^2+z.^2;isosurface(x,y,z,v,10);axis equal 28:绘制 zf(x,y)(1x)12ln(xy)的图象 [x,y,z,v] = flow; q=1./sqrt(1-x).*log(x-y)-z; p = patch(isosurface(x, y, z, v, 0));isonormals(x,y,z,q,p) set(p, 'FaceColor', 'blue', 'EdgeColor', 'none');view(3) camlight;lighting 29: 试完成matlab 动画 霓虹灯效果动画:一颗花心: clear;clc;close all c=5;t=linspace(-c,c);[x,y]=meshgrid(t);z=17*x.^2-16*abs(x).*y+17*y.^2-225;pcolor(x,y,z);shading interp pause(2);spinmap(10) 30:试完成matlab gui程序 function varargout = ex0(varargin)gui_Singleton = 1; gui_State = struct('gui_Name', mfilename,...'gui_Singleton', gui_Singleton,...'gui_OpeningFcn', @ex0_OpeningFcn,...'gui_OutputFcn', @ex0_OutputFcn,...'gui_LayoutFcn', [] ,...'gui_Callback', []);if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1});end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else gui_mainfcn(gui_State, varargin{:});end function ex0_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; global i a i=0; a=floor(100*rand); guidata(hObject, handles); function varargout = ex0_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function x1_Callback(hObject, eventdata, handles) function x1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end function x2_Callback(hObject, eventdata, handles) function x2_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end function p1_Callback(hObject, eventdata, handles) global i a x1= eval(get(handles.x1,'String')); if x1>a x2='high'; set(handles.x2,'string',num2str(x2)); elseif x1 set(handles.x2,'string',num2str(x2)); else x2='YOU ARE WIN'; set(handles.x2,'string',num2str(x2));a=floor(100*rand);i=0; end i=i+1;if i==10 x2='YOU ARE LOSE'; set(handles.x2,'string',num2str(x2));a=floor(100*rand);i=0;end function p2_Callback(hObject, eventdata, handles) close = questdlg('ÄúÈ·¶¨Òª¹Ø±ÕÂð?','È·¶¨¹Ø±Õ','ÊÇ','·ñ','ÊÇ');switch close case '·ñ' case 'ÊÇ' delete(handles.figure1)end matlab实习报告 实习总结报告;学校名称;实习类型学学软件MTLAB实习起止时间年月日至年;所在院(系);班级;学生姓名;学号;年月日;实习总结报告;2013年7月8日至7月26日,我们应数专业进行;这次认识实习分为两大部分:理论知识学习和上机实践; 一、实习目的;这次实习的目的是使我们掌握MATLAB的基本知识; 二、实习内容; (一)操作基础;MATLAB是一种用于科学计算的高 实习总结报告 学校名称 实习类型 学学软件MTLAB 实习起止时间 年 月 日至 年 月 日 指导教师 所在院(系)班 级 学生姓名 学 号 年 月 日 实习总结报告 2013年7月8日至7月26日,我们应数专业进行了为期3周的实习。这次认识实习分为两大部分:理论知识学习和上机实践学习。这次认识实习使我对专业知识有了一定的了解,知道以后的学习重点,感受工作环节,为自己将来走向社会打下基础。 一、实习目的 这次实习的目的是使我们掌握MATLAB的基本知识,能运用MATLAB来编写程序,解决一般性的问题,使得我们在完成本课程学习后,掌握MATLAB的基本知识和初步的编程能力,为以后的学习和工作提供了一个非常有用的工具。 二、实习内容 (一)操作基础 MATLAB是一种用于科学计算的高性能语言。它将计算、可视化和程序设计集成在一个非常容易的环境中,使用我们熟悉的数学符号表示问题与答案。MATLAB系统由5个主要部分组成,包括开发环境、MATLAB数学函数库、MATLAB语言、图形、MATLAB应用程序接口。对于MATLAB的操作基础,应该学会启动和退出MATLAB、MATLAB的桌面工具和开发环境、命令窗口、历史窗口等等。 (二)矩阵及其运算 MATLAB,即“矩阵实验室”,它是以矩阵为基本运算单元。因此,本书从最基本的运算单元出发,介绍MATLAB的命令及其用法。 1.矩阵的表示:MATLAB的强大功能之一体现在能直接处理向量 或矩阵。当然首要任务是输入待处理的向量或矩阵。不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号([ ])内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多重的方括号。其中有:符号矩阵、大矩阵的生成、多维数组的创建、特殊矩阵的生成(主要有零矩阵(zero)、单位阵(eye)、全一阵(ones)、均匀分布随机矩阵(rand)、正态分布随机矩阵(randn)等)。 (三)程序设计与文件操作 1.程序设计: Matlab既是一种语言,又是一种编程环境。Matlab提供了很多方便用户的工具,用于管理变量、输入输出数据以及生成和管理M文件。 用户可在Matlab的命令窗口键入一个命令,也可以由它定义的语言在编辑器中编写应用程序,Matlab软件对此进行解释后,在Matlab环境下对它进行处理,最后返回结果.MATLAB语言的显著特点:具有强大的矩阵运算能力:Matrix Laboratory(矩阵实验室),使得矩阵运算非常简单。也是一种演算式语,MATLAB的基本数据单元是既不需要指定维数,也不需要说明数据类型的矩阵(向量和标量为矩阵的特例),而且数学表达式和运算规则与通常的习惯相同。因此,MATLAB语言编程简单,使用方便。 2.文件操作: (1)指令驱动模式:即在MATLABM命令行窗口下用户输入单行指令时,MATLAB立即处理这条指令,并显示结果,这就是MATLAB命令行方式。缺点:命令行方式程序可读性差,而且不能存储,当处理复杂问题和大量数据时很不方便。(2)M文件模式:将MATLAB语句构成的程序存储成以m为扩展名的文件,然后再执行该程序文件,这种工作模式称为程序文件 模式。 (3)M语言文件可以分为主程序文件和函数文件, 一个M语言文件就是由若干MATLAB的命令组合在一起构成的。M语言文件是标的纯文本格式的文件,其文件扩展名为.m。MATLAB提供了meditor编辑器编辑M文件。 (四)数据分析与多项式计算 MATLAB数据分析与多项式计算主要包括:数据统计处理、数据插值、曲线拟合、离散傅立叶变换、多项式计算等等。 在数据处理中我们要了解最大值和最小值,如果在程序中求一个矩阵的极值问题,max或min(x,[],1)代表的是每一列中最大值或最小值组合写成一个行矩阵,max或min(x,[],2)表示的是每一行中的最大值和最小值写成一个列矩阵。在计算多项式时,了解root函数以及熟练地应用,将多项式每一项前系数都写入root中,便可以通过root函数求出根。 (五)解线性方程与函数极值 线性方程:解线性方程包括:线性方程组求解、非线性方程数值求解、常微分方程初值问题的数值解法、函数极值等。 线性方程求解:(a)直接法: 利用左除运算符的直接解法对于线性方程组Ax=b,可以利用左除运算符“”求解:x=Ab。(b)利用矩阵的分解求解线性方程组: 矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积。常见的矩阵分解有LU分解、QR分解、Cholesky分解,以及Schur分解、Hessenberg分解、奇异分解等。 (c)非线性方程组的求解: 对于非线性方程组F(X)=0,用fsolve函数求其数值解。fsolve函数的调用格式为: X=fsolve('fun',X0,option)其中X为返回的解,fun是用于定义需求解的非线性方程组的函数文件名,X0是求根过程的初值,option为最优化工具箱的选项设定。最优化工具箱提供了20多个选项,用户可以使用optimset命令将它们显示出来。如果想改变其中某个选项,则可以调用optimset()函数来完成。例如,Display选项决定函数调用时中间结果的显示方式,其中‘off’为不显示,‘iter’表示每步都显示,‘final’只显示最终结果。optimset(‘Display’,‘off’)将设定Display选项为‘off’。 (六)符号计算 在数值计算中,计算机处理的对象和得到的结果都是数值,而在符号计算中,计算机处理的数据和得到的结果都是符号。符号计算中首先要对符号变量进行定义。Sym只能为单个符号变量定义,而Syms可以为多个进行定义。定义之后,可以进行符号计算,主要用于研究符号微积分运算。求解符号微分,可以直接采用diff()函数进行求解;符号的积分,可以使用int()函数进行计算,最后调用M文件得到正确结果。 (七)数值积分与微分 MATLAB数值积分与微分主要包括:数值积分与数值微分。求解定积分的数值方法多种多样,如简单的梯形法、辛普生(Simpson)?法、牛顿-柯特斯(Newton-Cotes)法等都是经常采用的方法。基本思想都是将整个积分区间[a,b]分成n个子区间[xi,xi+1],i=1,2,?,n,其中x1=a,xn+1=b。这样求定积分问题就分解为求和问题。 二重定积分的数值求解:使用MATLAB提供的dblquad函数就可以直接求出二重定积分的数值解。该函数的调用格式为: I=dblquad(f,a,b,c,d,tol,trace)该函数求f(x,y)在[a,b]×[c,d]区域上的二重定积分。参数tol,trace的用法与函数quad完全相同。 (八)微分方程符号解法和数值解法 solve函数的使用Solve(‘p*sin(x)=r’)ans=asin(r/p),dsolve函数的一般调用形式是:dsolve(‘s’,’s1’; (九)绘图操作;二维图形可以采用ezplot进行绘图,一般形式是;ezplot(f,[a,b])表示的是回执函数y;三维图形或者多维图形一般采用ezplot3进行绘; (十)图形用户界面设计图形用户和界面设计中我们要; (十一)统计方法及其应用;概率分布及其有关函数中,常用的是pdf,cdf,; (十二)图形句柄; 的一般调用形式是:dsolve(‘s’,’s1’,’s2’...)(s为方程,s1,s2,s3,为初始条件,x为自变量)。Ode45表示的是常微分方程的数值求解。通过此函数可以很方便快速的求出有关微分方程求解的问题。 (九)绘图操作 二维图形可以采用ezplot进行绘图,一般形式是: ezplot(f,[a,b])表示的是回执函数y=f(x)在区间(a,b)上的图像。 三维图形或者多维图形一般采用ezplot3进行绘图,一般形式是: ezplot3(x,y,z)表示的是空间曲线x=x(t),y=y(t),z=z(t),0 (十)图形用户界面设计 图形用户和界面设计中我们要遵循四个原则:简单性,一致性,习常性以及其他考虑因素。如果建立主菜单条,菜单项句柄=uimenu(图形黄口句柄,属性名1,属性值1,...);子菜单句柄=uimenu(父菜单句柄,属性名1,属性值1,...)图形窗口的创建一般是 窗口句柄=figure(属性名1,属性值1,属性名2,属性值2,...),对于图形用户界面设计工具-Guide Control Panel要有简单的了解。 (十一)统计方法及其应用 概率分布及其有关函数中,常用的是pdf,cdf,stat(概率密度,分布函数,均值与方差),以及样本均值mean和中值median,在描述性统计就是搜集.整理.加工和分析统计数据使之系统化。在描述样本中心值的偏离程度中,有var(方差),cov(协方差)等研究参数,同时还可以对参数进行估计,方差分析有anova1(单因素试验方差)和anova2(双因素试验),通过统计数据,最终进行统计图的绘制。 (十二)图形句柄 图形句柄主要包括:图形对象及其句柄、图形对象属性、图 形对象的创建。我们学习了很多MATLAB高层绘图函数,这些函数都是将不同的曲线或曲面绘制在图形窗口中,而图形窗口也就是由不同图形对象(如坐标轴、曲线、曲面或文字等)组成的图形界面。MATLAB给每个图形对象分配一个标志符,称为句柄。以后可以通过该句柄对该图形对象的属性进行设置,也可以获取有关属性,从而能够更加自主地绘制各种图形。 直接对图形句柄进行操作的绘图方法称为低层绘图操作。相对于高层绘图,低层绘图的操作控制和表现图形的能力更强,事实上,MATLAB的高层绘图函数都是利用低层绘图函数建立起来的。有时单靠高层绘图不能满足要求,如,绘制特殊图形、建立图形用户界面等,这时就需要图形句柄操作。 三、实习心得 这次实习我收获颇多,领会了很多东西,这次实习对于我们数学专业的学生意义重大。可以说,这次实习完全做到了学以致用,正如陶行知先生所言:“知行合一”。这对于我们以后的学习和将来走上工作岗位,有一定的借鉴意义。在这个过程中心得如下: 1、“实践是检验真理的唯一标准”,在学习Matlab的过程中,这一点非常的重要,在学习的过程中我们不仅要学会老师讲授的知识,而且要多操作,多实践,在操作和实践的过程中将知识融会贯通,做到“信手拈来”的境界。 2、要有团队精神,这一似乎是我们这个时代许多重大发现,科技进步一个非常重要的因素。而在学习Matlab的过程中也体现了这一点,在与同学和老师的交流过程中,无形之中就学到了很多的知识。 3、数学与计算机是一对同胞兄弟。在学习Matlab的过程中深有 体会,两者相辅相成,Matlab的诸多功能对我们学习数学的过程中是非常有帮助的,Matlab简单易学,代码短小,有强大的图形绘制和处理功能,这些功能对于我们学习数学起到了事半功倍的作用。 4、“学无止境”,我们应该树立一种终身学习的信念,在这个信息时代,知识在不断的更新,更新的源泉来自创新,而创新就要有独立思考的能力,Matlab的功能已经非常强大了,但仍需完善,作为数学人我们与责任和义务去完善它,在未来的前进过程中不断的做出创新,我想,这也是我们高等教育所提倡的,所以说,我们数学人任重而道远,需明白“学无止境”的道理。第五篇:matlab实习报告