Matlab实践报告_matlab实践报告

2020-02-27 其他范文 下载本文

Matlab实践报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“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 Proceing 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)x2x5x6 % 求多项式p的根

% 由根的列向量求多项式系数

2s(x)x2x3 % 表示多项式

% 多项式乘积

% 多项式微分

% 计算多项式的值

图3-11 结果图

10(s3)6.有理多项式: G(s)(s1)(s2s3)

>> 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、求矩阵Aa21a22a31a32

a13a23的行列式、逆阵和特征值。a33 15

图3-13 结果图

432 2.因式分解x5x5x5x6

432(x1)5x5(x2)5x1的同类项。3.合并

4(x1)4.求的展开式。

5.求下列式子极限 :

limx2ln(sinx)

(2x)

6.求下列函数的导数

yexcosxx3及当x=3时的导数值。

7.已知矩阵

exAsinx x22xlnx,求A的导数

8.求下列积分:

(1)

sinx1sinx2dx(2)

0sinx3sinx5dx

9.求微分方程

x22xyy2(y2xy)dy0dxy|x11

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实践报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
Matlab实践报告
点击下载文档
相关专题 matlab实践报告 报告 matlab matlab实践报告 报告 matlab
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文