2013年上学期MATLAB语言上机实验内容
- 格式:doc
- 大小:1.17 MB
- 文档页数:10
Matlab上机实习实习报告上周我们进行了本学期第二个实习部分-Matlab上机实习。
本次实习一星期,共做了四个部分。
分别是:一,Matlab基本操作;二,数值数组及其运算;三,Matlab图形绘制基础;四,SIMULINK仿真基础。
下面分别介绍个部分实习内容。
实习内容一Matlab基本操作1,实习目的:·掌握Matlab的启动和退出;·熟悉Matlab的命令窗口;·熟悉其他常用窗口和工具栏;2,对本软件有了初步认识后,接下来就开始指导书要求做一些训练了在指令窗中输入下面一段程序,功能是::画出衰减振荡曲线y=(e-t/3)sin3t及其他的包络线y0=(e-t/3)。
T的取值范围是[0,4 ]。
t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,’-r’,t,y0,’:b’,t,-y0,’:b’)观察输出结果3,通过下拉菜单File:Preferences改变设置指令窗中的字体、颜色等。
如:数据显示格式的设置:Format short 小数点后四位(缺省情况),如显示p为3.1416。
Format long 小数点后十四位,如显示p为3.14159265358979。
Formant bank 小数点后两位,如显示p为3.14。
Format short e 小数点后四位科学记数法,如显示p为3.1416e+000。
Format long e 小数点后十四五位科学记数法,如显示p为3.141592653589793e+000。
在指令窗中键入y1=2*sin(0.3*pi)/(1+sqrt(5))然后利用回调指令计算y2=2*y1*cos(0.3*pi)/(1+sqrt(5))y1 =0.5000y2 =0.18164,了解软件中的一些功能和命令。
包括熟悉历史指令窗(Command History)、熟悉当前目录浏览器(Current Diretory)、熟悉工作空间浏览器(Workspace Browser),以及一些指令如: Clear 清除当前工作区中的所有变量Clc 清除指令窗中内容(未清除当前工作区中的变量)Clf 清除图形窗口Cd 设置当前工作目录Exit,quit 退出Matlab实习内容二数值数组及其运算1,实习目的·掌握一维数组的创建和寻访;·掌握二维数组的创建和寻访;·掌握的Matlab矩阵和数组的运算;·熟悉Matlab关系操作和逻辑操作;2,实习内容和步骤(1)常量与变量变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。
实验一/二MATLAB的基础操作
一、实验目的
1、掌握MATLAB的启动和退出。
2、熟悉MATLAB的命令窗口。
3、熟悉常用菜单和工具栏。
4、熟悉变量及其赋值方法。
二、实验内容
1、上机运行教材2.1节中的例子,直至理解为止。
2、自定义一个变量,然后分别用8种不同的数字显示格式显示查看。
(提示:利用format命令实现)
3、自定义一个矩阵,分别对其进行超维调用和超维赋值,比较其结果,并分析产生这种结果的原因。
(如:矩阵A的大小为3*3,查看3行4列元素的值称为超维调用,为3行4列赋值称为超维赋值)
4、自定义一个矩阵,给矩阵的全行赋值;取出矩阵中某一个或几个元素,然后组成一个新的矩阵。
5、分别用不同的方法给复数赋值。
(提示:共两种方法)
6、自定义一个复数矩阵,分别实现共轭转置、共轭、转置等运算。
7、自己举例,完成对eye, ones, zeros, magic, linspace, logspace 等函数的实验。
三、实验相关要求
1、在上机实验过程中,严禁上网、聊天、打游戏、看视频等与课程实验无关的行为,若有上述行为,每发现一次,当次实验成绩扣10分(实验成绩最低为0分);
2、撰写实验报告。
在实验报告中,要附上每个实验内容的MATLAB代码及其运行结果;需要分析的请附上自己的分析内容(第1个除外);。
Matlab上机操作实验报告电工四班吕及时一、实验目的通过上机编程实验,使自己熟悉对MATLAB软件平台的使用、掌握MATLAB的编程技巧,让自己对MATLAB软件平台在科学计算中的重要作用有深入了解。
二、实验内容1. 熟练掌握矩阵的生成、加、减、乘、除、转置、行列式、逆、范数等运算操作。
(用.m 文件和Matlab函数编写一个对给定矩阵进行运算操作的程序)2. 熟练掌握算术符号操作和基本运算操作,包括矩阵合并、向量合并、符号转换、展开符号表达式、符号因式分解、符号表达式的化简、代数方程的符号解析解、特征多项式、函数的反函数、函数计算器、微积分、常微分方程的符号解、符号函数的画图等。
(用.m文件编写进行符号因式分解和函数求反的程序)3. 掌握Matlab函数的编写规范。
4、掌握Matlab常用的绘图处理操作,包括:基本平面图、图形注释命令、三维曲线和面的填充、三维等高线等。
(用.m文件编写在一个图形窗口上绘制正弦和余弦函数的图形,并给出充分的图形注释)5. 熟练操作MATLAB软件平台,能利用M文件完成MATLAB的程序设计。
四、实验过程矩阵运算和Matlab编程五、程序设计实验题目1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。
并以x,y为坐标显示图像x(n+1) = a*x(n)-b*(y(n)-x(n)^2);y(n+1) = b*x(n)+a*(y(n)-x(n)^2)解:2.编程实现奥运5环图像,允许用户输入环的直径。
解:3.实现对输入任意长度向量元素的冒泡排序的升序排列。
不允许使用sort函数。
解:。
MATLAB语言及应用实验指导书机械与电气工程学院黄高飞余群编写目录实验一基础准备及入门(2学时,验证性) (1)实验二符号计算(2学时,验证性) (5)实验三数值数组及其运算(4学时,验证性) (6)实验四数据和函数的可视化(2学时,验证性) (9)实验五MATLAB语言的程序设计(4学时,综合性) (11)实验六SIMULINK交互式仿真集成环境(2学时,验证性) (14)实验一基础准备及入门一、实验目的1、了解MATLAB操作桌面的基本结构和组成;2、理解Command Window指令窗的作用,掌握指令窗的操作方式和指令的基本语法;3、了解Command History历史指令窗的作用、历史指令的再运行方法;4、理解Current Directory当前路径、搜索路径的作用,掌握当前路径、搜索路径的设置方法;5、理解Workspace Browser工作空间浏览器的作用,掌握内存变量的查阅、删除、保存和载入的基本方法;6、了解Launch Pad的作用;7、掌握M脚本文件的编写、运行方法;8、掌握利用帮助系统查询函数等基本信息的方法。
二、实验原理1、MATLAB操作桌面的基本结构和组成了解MATLAB的基本组件是正确使用MATLAB的基本前提。
MATLAB由以下基本组件组成:(1)指令窗Command Window:可键入各种送给MATLAB运作的指令、函数、表达式;显示除图形外的所有运算结果(2)历史指令窗Command History:记录已经运作过的指令、函数、表达式;(3)当前目录浏览器:进行当前目录的设置;展示相应目录上的M、MDL等文件;(4)工作空间浏览器Workspace Browser:列出MATLAB工作空间中所有的变量名、大小、字节数;(5)内存数组编辑器Array Editor:在工作空间浏览器中对变量进行操作时启动(6)开始按钮(7)交互界面分类目录窗Launch Pad:以可展开的树状结构列着MATLAB提供的所有交互界面(8)M文件编辑/调试器(9)帮助导航/浏览器2、MATLAB指令窗的基本操作MATLAB指令窗给用户提供了最直接的交互界面,可用于输入和执行指令、显示指令运行结果、调试MATLAB程序等常用的MATLAB仿真计算功能。
《MATLAB软件与程序设计》学生上机实验任务书姓名:高云鹏学号:13530104班级:13级工程力学指导教师:郭秀婷兰州理工大学理学院实验一 MATLAB 运算基础一、实验目的1.熟悉启动和退出MATLAB 的方法;2.熟悉MATLAB 集成环境的组成;3.掌握MATLAB 各种表达式、变量的书写规则以及常用函数的使用。
4.掌握建立矩阵及矩阵拆分的方法;5,.掌握MA TLAB 运算二、实验内容1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1))1ln(212x x z ++=,其中⎥⎦⎤⎢⎣⎡-+=545.0212i x ; (2)0.3,9.2,8.2,,8.2,9.2,0.3,23.0ln )3.0sin(23.03.0 ---=+++-=-a aa e e z a a 2.已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=723302131,76538773443412B A ,求下列表达式的值: ⑴I B A B A +-+和*6(其中I 为单位矩阵);⑵B A B A *.*和; ⑶3.^3^A A 和; ⑷B A B A \/和;⑸]2^:);],3,1([[],[B A B A 和.3.已知: ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡---=14.35454.9632053256545410778.01023A ,完成下列操作: (1)输出A 在[10,25]范围内的全部元素。
(2)取出A 前3行构成的矩阵B ,前两列构成矩阵C ,右下角23⨯子矩阵构成矩阵D ,B 与C 的乘积构成矩阵E 。
(3)分别求表达式E<D 、E&D 、E|D 和~E|~D 的值。
三、实验步骤 1、编写程序。
2、调试程序。
3、写出程序运行结果。
实验报告1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1))1ln(212x x z ,其中+=545.0212i x ;程序:x=[2,1+2i;-0.45,5]; z=0.5*log(x+sqrt(1+x^2)) 结果:z =0.7114 - 0.0253i 0.8968 + 0.3658i 0.2139 + 0.9343i 1.1541 - 0.0044i(2)0.3,9.2,8.2,,8.2,9.2,0.3,23.0ln )3.0sin(23.03.0 ---=+++-=-a aa e e z a a 程序:a=[-3.0:0.1:3.0];z=0.5*(exp(0.3*a)-exp(-0.3*a)).*sin(a+0.3)+log((0.3+a)/2) 结果: z =Columns 1 through 60.7388 + 3.1416i 0.7696 + 3.1416i 0.7871 + 3.1416i 0.7913 + 3.1416i 0.7822 + 3.1416i 0.7602 + 3.1416iColumns 7 through 120.7254 + 3.1416i 0.6784 + 3.1416i 0.6196 + 3.1416i 0.5496 + 3.1416i 0.4688 + 3.1416i 0.3780 + 3.1416iColumns 13 through 180.2775 + 3.1416i 0.1680 + 3.1416i 0.0497 + 3.1416i -0.0771 + 3.1416i -0.2124 + 3.1416i -0.3566 + 3.1416iColumns 19 through 24-0.5104 + 3.1416i -0.6752 + 3.1416i -0.8536 + 3.1416i -1.0497 +3.1416i -1.2701 + 3.1416i -1.5271 + 3.1416iColumns 25 through 30-1.8436 + 3.1416i -2.2727 + 3.1416i -2.9837 + 3.1416i -37.0245 -3.0017 -2.3085Columns 31 through 36-1.8971 -1.5978 -1.3575 -1.1531 -0.9723 -0.8083Columns 37 through 42-0.6567 -0.5151 -0.3819 -0.2561 -0.1374 -0.0255Columns 43 through 480.0792 0.1766 0.2663 0.3478 0.4206 0.4841Columns 49 through 540.5379 0.5815 0.6145 0.6366 0.6474 0.6470Columns 55 through 600.6351 0.6119 0.5777 0.5327 0.4774 0.4126Column 610.33882.已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=723302131,76538773443412B A ,求下列表达式的值:⑴ I B A B A +-+和*6(其中I 为单位矩阵);程序:A=[12,34,-4;34,7,87;3,65,7]; B=[1,3,-1;2,0,3;3,-2,7]; A+6*B 结果: ans =18 52 -10 46 7 105 21 53 49 程序: I=eye(3); A-B+I 结果: ans =12 31 -3 32 8 84 0 67 1⑵B A B A *.*和 程序:A*B 结果:ans =68 44 62 309 -72 596 154 -5 241 程序:A.*B 结果:ans =12 102 4 68 0 261 9 -130 49⑶3.^3^A A 和;程序:A^3 结果:ans =37226 233824 48604 247370 149188 600766 78688 454142 118820 程序:A.^3 结果:ans =1728 39304 -64 39304 343 658503 27 274625 343⑷B A B A \/和; 程序:A/B 结果:ans =16.4000 -13.6000 7.6000 35.8000 -76.2000 50.2000 67.0000 -134.0000 68.0000 程序:A\B 结果:ans =-0.0313 0.3029 -0.3324 0.0442 -0.0323 0.1063 0.0317 -0.1158 0.1558 ⑸]2^:);],3,1([[],[B A B A 和.程序:[A,B] 结果:ans =12 34 -4 1 3 -1 34 7 87 2 0 3 3 65 7 3 -2 7 程序:[A([1,3],:);B^2] 结果:ans =12 34 -4 3 65 7 4 5 1 11 0 19 20 -5 403.已知: ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡---=14.35454.9632053256545410778.01023A ,完成下列操作:(1)输出A在[10,25]范围内的全部元素。
MATLAB上机实验
实验一:MATLAB语言概述上机
一、实验目的:了解MATLAB的工作环境;simulink仿真;和符号表达式绘图fplot(fun,lims),ezplot(y)
二、实验环境 MATLAB软件
三、实验内容
一、Simulink仿真,画出输入输出图形
二、1 熟悉常见的MATLAB命令:Esc,clc,exit,quit,help sin,help tan…
2 fomat命令:
1.format命令改变显示格式,常用的的格式有
•long (16位) bank(2个十进制位) hex(十六进制)
•short(缺省) short e(5位加指数) +(符号)
• long e(16位加指数) rat(有理数近似)
三、符号表达式绘图
sinx,cosx sin(1/x) tanx e-2x ;及自己绘制《电路》和《信号系统》课程常见函数。
四、在文本编辑窗口编辑简单程序并调试
1用plot绘画:0≤x≤7范围内的sin(2x)、sinx2、sin2x,sinx(1/x); ;及自己绘制《电路》和《信号系统》
2 用stairs绘下面图1所示图形和其他自己设计的图形
五、实验报告要求:
1写出源程序,并加注解
2上机调试出现的错误提示,错误的原因及解决的办法
3实验结果
4 总结实验,对实验进行结果分析
绘图1。
Matlab上机实习报告目录1.概述2.上机具体内容概述部分MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB应用非常之广泛!(尤其在我们信息专业)不仅仅可以对数据进行分析和计算,也可以将数据进行图样化呈现。
MATLAB 由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
在本次实习中,我们主要学习的是matlab的基本结构,掌握matlab的基本使用方法,掌握如何创建数组和对数组进行操作,学会用matlab绘画图形,对文件进行调试,对句柄图形和图形用户界面制作,最后达到能够对M文件的程序设计。
第一章开始第一章学习,听老师介绍了MATLAB的用途,基本界面的调整及(clear;clc;)的作用;clear是清除所有变量。
clc是清除所有矩阵。
然后自学了指导书上进入MATLAB的几种方法,退出界面的几种方法;退出界面与以往感觉略有不同,直接打叉再次打开文件以往内容还在,所以要用指导书上介绍的几种方法:1.快捷键“Ctrl+q”;2.在命令窗口输入‘quit’命令;3.在命令窗口输入‘exit’命令;在了解这一些的基础上,又进行了界面调整的工作;在命令窗中输入(12+2*(7-4))/3^2结果出ans=2;然后进行有关数组的实习,分别进行了这些内容:1.在命令窗中赋值空矩阵,在命令窗中输入A=[ ];2.在内存浏览器中,双击该变量,打开数组编辑器,观看了数据存储的形式。
打开了M文件输入了例题的内容:t=0:pi/50:4*pi; %t从0 开始;句步为pi/50;直到4*pi为止y0=exp(-t/3); %函数y0=e^(-t/)y=exp(-t/3).*sin(3*t); %函数y=exp(-t/3).*sin(3*t);plot(t,y,'-r',t,y0,':b',t,-y0,':b') %简单的制图设置了存放路径,在E盘里建立了自己名字的文件夹。
第一章上机实验一.实验内容(一)熟悉Matlab的基本命令(1)工作空间管理:①Who和whos:显示当前工作空间的变量情况,例如想查询A和B两个变量的空间占用情况,则可以用命令whos A B。
如果只给出whos命令,则将显示工作空间中全部变量的变量名称、大小、内存占用情况及变量类型。
Who命令给出的结果是简单的,只显示当前工作空间中的变量名称。
②clear:删除工作空间中的变量。
Clear A B表示删除A和B两个变量;若只给出clear命令,则将删除工作空间内的所有变量。
③which:显示出某个MATLAB文件所在目录,如which xxure将给出xxure.m 文件所在目录。
④quit:退出⑤workspace:该命令将打开工作空间浏览器窗口。
(2)路径编辑:①path:显示MATLAB包含路径。
②cd:返回上一级目录。
③addpath:将一个新的字符串表示的子目录名添加到MATLAB包含的路径下。
④rmpath:从当前MATLAB包含的路径下清除某个字符串表示的子目录。
(3)显示格式:①format long:双精度数表示小数点后14位有效数字,单精度数表示小数点后7位有效数字。
②short e:5位科学计数表示。
③short g:从format short和format short e中自动选择最佳计数方式(默认设置)④long g:从format long和format long e中自动选择最佳计数方式⑤hex:十六进制表示⑥rat:近似有理数表示(4)窗口清理:①clc:命令窗口清屏。
②cla:可以清除当前坐标系下的内容。
③clf:图形窗口清屏。
④close:用于关闭所有的图形窗口。
(5)操作系统命令:①copyfile:复制文件②pwd(Identify current directory):显示当前的工作目录名称。
(6)熟悉Matlab的联机帮助命令:①help:可以达到帮助信息目录。
实验一 MATLAB 上机预习报告一、实验目的:1.学习并熟悉MATLAB 软件的界面和基本操作;2.学习并掌握MATLAB 软件Simulink 工具箱的使用;3.用Simulink 工具箱仿真PID 控制器。
二、实验工具:MATLAB 软件(6.5 以上版本)。
三、实验内容:1.实验原理在模拟控制系统中,控制器最常用的控制规律是PID 控制。
模拟PID 控制系统原理框图如图所示。
系统由模拟PID 控制器和被控对象组成。
PID 控制器是一种线性控制器,它根据给定值U in 与实际输出值U out 构成控制偏差:E(t)= U out (t)-U in (t)PID 的控制规律为:传递函数的形式为:式中:k p 比例系数;k I 积分系数;k D 微分系数。
简单说来,PID 控制器各校正环节的作用如下:比例环节:成比例地反映控制系统的偏差信号E(t),偏差一旦产生,控制器立即产生控制作用,以减小偏差。
积分环节:主要用于消除静误差,提高系统的无差度。
积分作用的强弱取决于积分时间常数T I ,T I 越大,积分作用越弱,反之则越强。
微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正传号,从而加快系统的动作速度,减少调节时间。
四、实验要求1、实验中:在MATLAB 软件的主操作界面进行基本命令的操作和联系,打开熟悉MATLAB 软件。
0()()[()()]t P I D de t U t k e t k e t k dt =++⎰()1()(1)()P i D U s G s k k k s E s s==++2、打开Simulink工具箱,进行PID控制器的仿真,了解PID各参数对系统的影响,找到更合适的PID参数。
3、完成实验报告。
附录:PID仿真图延时时间:0.5s。
matlab上机实验报告《Matlab上机实验报告:探索数据分析与图像处理的奇妙世界》摘要:本实验报告基于Matlab平台,探索了数据分析与图像处理的应用。
通过实验,我们发现Matlab具有强大的数据处理和图像处理能力,能够帮助我们快速高效地分析数据和处理图像。
本文将详细介绍实验过程和结果,以及对Matlab在数据分析与图像处理中的应用前景进行探讨。
1. 实验目的本次实验旨在通过Matlab平台进行数据分析与图像处理实验,探索Matlab在这两个领域的应用能力,为学习者提供实践机会,加深对数据分析与图像处理的理解,并为未来的科研工作和工程实践提供技术支持。
2. 实验内容2.1 数据分析我们首先使用Matlab对一组实验数据进行分析,包括数据的可视化、统计特征提取、数据拟合等操作。
通过Matlab强大的数据处理工具,我们可以快速准确地分析数据,提取出其中的规律和特征,为后续的决策和应用提供支持。
2.2 图像处理其次,我们利用Matlab对一组图像进行处理,包括图像的增强、滤波、边缘检测等操作。
通过Matlab丰富的图像处理工具,我们可以对图像进行各种操作,改善图像质量,提取图像特征,甚至实现图像识别和分析。
3. 实验结果在数据分析方面,我们利用Matlab对实验数据进行了可视化展示,并提取了数据的统计特征,得到了数据的分布规律和趋势。
在图像处理方面,我们利用Matlab对图像进行了增强和边缘检测,得到了处理后的图像,观察到了图像质量的改善和边缘特征的提取。
4. 实验结论通过本次实验,我们深刻认识到Matlab在数据分析与图像处理领域的强大能力,能够帮助我们快速高效地分析数据和处理图像,为科研工作和工程实践提供技术支持。
我们相信,在未来的发展中,Matlab将在数据分析与图像处理领域发挥越来越重要的作用。
5. 展望基于本次实验的结果,我们对Matlab在数据分析与图像处理领域的应用前景进行了展望。
我们相信,随着科技的不断发展,Matlab将在数据分析与图像处理领域发挥越来越重要的作用,为人类社会的进步和发展做出更大的贡献。
2013-2014学年第一学期MATLAB 上机考试报告 班级 姓名 学号2.在区间1<x<4,同一窗口的两个子窗口内分别绘制函数x x +-12 和)35sin(2+x 曲线,第一个子窗口的采用红色点线,第二个子窗口绿色点化线。
程序;x=1:0.5:4;R=sqrt(x.^2-1);Z=R+x;subplot(2,1,1);plot(Z,x,'r');R=5*x.^2+3;Z=sin(R);subplot(2,1,2);plot(Z,x,'g');运行结果;程序中的图:结果分析;13. 已知一单位反馈系统开环传递函数为:)15.0)(12(10)(2+++=s s s s s G ,试绘制系统Nyquist 图,判断闭环系统的稳定性,并求其单位阶跃响应。
程序;s1=tf(10,[2,1,0]);s2=tf([1],[1,0.5,1]);sys1=series(s1,s2);subplot(2,2,1);nyquist(sys1);title('Nyquist曲线图')sys=feedback(sys1,1);subplot(2,2,2);pzmap(sys);title('零极点图');subplot(2,2,3);step(sys);运行结果;程序中的图:结果分析;19.调用MATLAB工具箱函数fir1设计线性相位低通FIR滤波器,要求希望逼近的理想低通滤波器通带截止频率ωc=π/4 rad,滤波器长度N=21。
分别选用矩形窗、 Hanning窗、 Hamming窗和Blackman窗进行设计,绘制用每种窗函数设计的单位脉冲响应h(n)及其损耗函数曲线,并进行比较,观察各种窗函数的设计性能。
程序;N=21;wc=1/4;n=0:20;figure(1);hrn=fir1(N-1,wc,boxcar(N));subplot(2,2,1);stem(n,hrn,'.');line([0,20],[0,0]);hnn=fir1(N-1,wc,hanning(N));subplot(2,2,2);stem(n,hnn,'.');line([0,20],[0,0]);hmn=fir1(N-1,wc,hamming(N));subplot(2,2,3);stem(n,hmn,'.');line([0,20],[0,0]); hbn=fir1(N-1,wc,blackman(N));subplot(2,2,4);stem(n,hbn,'.');line([0,20],[0,0]); figure(2);freqz(hrn,256);figure(3);freqz(hnn,256);figure(4);freqz(hmn,256);figure(5);freqz(hbn,256);运行结果;程序中的图:结果分析;。
MATLAB上机实验一一、实验目的初步熟悉MATLAB 工作环境,熟悉命令窗口,学会使用帮助窗口查找帮助信息; 命令窗口二、实验内容1 熟悉MATLAB 平台的工作环境;2 熟悉MATLAB 的5 个工作窗口;3 MATLAB 的优先搜索顺序;三、实验步骤1. 熟悉MATLAB 的5 个基本窗口①Command Window 命令窗口②Workspace 工作空间窗口③Command History 命令历史记录窗口④Current Directory 当前目录窗口⑤Help Window 帮助窗口1 命令窗口Command Window;在命令窗口中依次输入以下命令:>>x=1>> y=1 2 34 5 67 8 9;>> z1=1:10,z2=1:2:5;>> w=linspace1,10,10;>> t1=ones3,t2=ones1,3,t3=ones3,1>> t4=ones3,t4=eye4x =1z1 =1 2 3 4 5 6 7 8 9 10t1 =1 1 11 1 11 1t2 =1 1 1t3 =111t4 =1 1 11 1 11 1 1t4 =1 0 0 00 1 0 00 0 1 00 0 0 1思考题:①变量如何声明,变量名须遵守什么规则、是否区分大小写;答:1变量声明1.局部变量每个函数都有自己的局部变量,这些变量只能在定义它的函数内部使用;当函数运行时,局部变量保存在函数的工作空间中,一旦函数退出,这些局部变量将不复存在;脚本没有输入输出参数,由一系列MATLAB命令组成的M文件没有单独的工作空间,只能共享调用者的工作空间;当从命令行调用,脚本变量存在基本工作空间中;当从函数调用,脚本变量存在函数空间中;2.全局变量在函数或基本工作空间内,用global声明的变量为全局变量;例如声明a为全局变量:>>global a声明了全局变量的函数或基本工作空间,共享该全局变量,都可以给它曲赋值;如果函数的子函数也要使用全局变量,也必须用global声明;3.永久变量永久变量用persistent声明,只能在M文件函数中定义和使用,只允许声明它的函数存取;当声明它的函数退出时,MATLAB不会从内存中清除它,例如声明a为永久变量:>>persistent a2变量命名规则如下:始于字母,由字母、数字或下划线组成;区分大小写;可任意长,但使用前N个字符;N与硬件有关,由函数namelengthmax返回,一般N=63;不能使用关键字作为变量名关键字在后面给出;避免使用函数名作为变量名;如果变量采用函数名,该函数失效;3区分大小写②试说明分号、逗号、冒号的用法;答:分号:加上分号“;”其作用是将计算机结果存入内存,但不显示在屏幕上,反之,语句结尾若不加“;”,则表示在语句执行后,在将计算结果存入内存的同时,还将运算结果显示出来;逗号:分割列表冒号:从什么到什么,比如1:10意思是——1到10③linspace 称为“线性等分”函数,说明它的用法;可使用help命令,格式如下:>>help linspace④说明函数ones 、zeros 、eye 的用法;答;1ones函数:全部元素都为1的常数矩阵; 2zeros函数:全部元素都为0的矩阵; 3eye函数:单位矩阵;4linspace函数:如a=linspacen1,n2,n3,表示在线性空间上,行矢量的值从n1到n22 工作空间窗口Workspace;单击工作空间窗口右上角的按钮,将其从MATLAB 主界面分离出来;①在工作空间查看各个变量,或在命令窗口用who, whos注意大小写查看各个变量;②在工作空间双击变量,弹出Array Editor 窗口数组编辑器窗口,即可修改变量;③使用save 命令把工作空间的全部变量保存为文件;>>save④输入下列命令:>>clear all %清除工作空间的所有变量观察工作空间的变量是否被清空;使用load 命令把刚才保存的变量载入工作空间;>>load⑤清除命令窗口命令:>>clc3 历史命令窗口Command History;打开历史命令窗口,可以看到每次运行MATLAB 的时间和曾在命令窗口输入过的命令,练习以下几种利用历史命令窗口重复执行输入过的命令的方法;①在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择Copy,然后再Paste 到命令窗口;②在历史命令窗口中双击要执行的一行命令,或者选中要重复执行的一行或几行命令后,用鼠标将其拖动到命令窗口中执行;③在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择Evaluate Selection,也可以执行;④或者在命令窗口使用方向键的上下键得到以前输入的命令;例如,按方向键“↑”一次,就重新将用户最后一次输入的命令调到MATLAB 提示符下;重复地按方向上键“↑”,就会在每次按下的时候调用再往前一次输入的命令;类似地,按方向键“↓”的时候,就往后调用一次输入的命令;按方向键“←”或者方向键“→”就会在提示符的命令中左右移动光标,这样用户就可以用类似于在字处理软件中编辑文本的方法编辑这些命令;4 当前目录命令窗口Current Directory;MATLAB 的当前目录即是系统默认的实施打开、装载、编辑和保存文件等操作时的文件夹;打开当前目录窗口后,可以看到用“save”命令所保存的文件是保存在目录C:\MATLAB6p5\work 下;5 帮助窗口Help Window;单击工具栏的图标,或选择菜单View|Help,或选择菜单Help|MATLAB Help 都能启动帮助窗口;①通过Index 选项卡查找log2函数的用法,在Search index for 栏中输入需要查找的词汇“log2”,在左下侧就列出与之最匹配的词汇条目,选择“log21”,右侧的窗口就会显示相应的内容;②也可以通过Search 选项卡查找log2 函数的用法;Search 选项卡与Index 选项卡不同,Index 只在专用术语表中查找,而Search 搜索的是整个HTML 帮助文件;2. MATLAB 的数值显示格式设置屏幕显示方式有紧凑Compact和松散Loose两种,其中Loose 为默认方式;>>a=ones1,30>>format compact>>a数字显示格式有short、long、short e、long e 等,请参照教材的列表练习一遍;>>format long>>pi>>format short>>pi>>format long>>pi>>format +>>pi>>-pi3. 变量的搜索顺序在命令窗口中输入以下指令:>>pi>>sinpi;>>exist'pi'>>pi=0;>>exist'pi'>>pi>>clear pi>>exist'pi'>>pi思考题:① 3 次执行exist'pi'的结果一样吗如果不一样,试解释为什么答:不一样,pi原来是库存函数,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clear pi之后所赋的值被清空,因此pi的值又成为②圆周率pi 是系统的默认常量,为什么会被改变为0答:pi原来是库存函数,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clear pi之后所赋的值被清空,因此pi的值又成为实验二 MATLAB语言基础一、实验目的基本掌握MATLAB向量、矩阵、数组的生成及其基本运算区分数组运算和矩阵运算、常用的数学函数;交接字符串的操作;二、实验内容1 向量的生成和运算;2 矩阵的创建、引用和运算;3 多维数组的创建及运算;4 字符串的操作;三、实验步骤1.向量的生成和运算1 向量的生成直接输入法:A =2 3 4 5 6>> B=1;2;3;4;5B =12345冒号生成发:>> A=1:2:10 ,B=1:10 ,C=10:-1:1A =1 3 5 7 9B =1 2 3 4 5 6 7 8 9 10C =10 9 8 7 6 5 4 3 2 1函数法:Linspace 是线性等分函数,logspace 是对数等分函数;>> A=linspace1,10 ,B=linspace1,30,10A =Columns 1 through 9Columns 10 through 18Columns 19 through 27Columns 28 through 36Columns 37 through 45Columns 46 through 54Columns 55 through 63Columns 64 through 72Columns 73 through 81Columns 82 through 90Columns 91 through 99Column 100B =Columns 1 through 9Column 10>> A=logspace0,4,5A =1 10 100 1000 10000练习:使用logspace 创建1-4 的有10个元素的行向量;答案:>> A=logspace1,10,4piA =+010Columns 1 through 9Columns 10 through 122 向量的运算维数相同的行向量只见可以相加减,维数相同的列向量也可以相加减,标量可以与向量直接相乘除;>> A=1 2 3 4 5, B=3:7,A =1 2 3 4 5B =3 4 5 6 7>> AT=A', BT=B',AT =12345BT =34567>> E1=A+B, E2=A-BE1 =4 6 8 10 12E2 =-2 -2 -2 -2 -2 >> F=AT-BT,F =-2-2-2-2-2>> G1=3A, G2=B/3,G1 =3 6 9 12 15G2 =向量的点积与叉积运算;>> A=ones1,10;B=1:10; BT=B';>> E1=dotA,BE1 =55>> E2=ABTE2 =55>> clear>> A=1:3,B=3:5,A =1 2 3B =3 4 5>> E=crossA,BE =-2 4 -22.矩阵的创建、引用和运算1 矩阵的创建和引用矩阵是由nm 元素构成的矩阵结构,行向量和列向量是矩阵的特殊形式;直接输入法:>> A=1 2 3;4 5 6A =1 2 3 4 5 6 >> B= 1 4 72 5 83 6 9B =1 4 72 5 83 6 9 >> A1ans =1>> A4:endans =5 36 >> B:,1ans =123>> B:ans =123456789>> B5ans =5抽取法>> clear>> A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16A =1 2 3 45 6 7 89 10 11 1213 14 15 16>> B=A1:3,2:3B =2 36 710 11>> C=A1 3,2 4C =2 410 12>> A1 3;2 4ans =1 95 13函数法:>> A=ones3,4A =1 1 1 11 1 1 11 1 1 1>> B=zero3Undefined function or method 'zero' for input arguments of type 'double'. >> B=zeros3B =0 0 00 0 00 0 0>> C=eyes3,2Undefined function or method 'eyes' for input arguments of type 'double'. >> C=eye3,2C =1 00 10 0>> D=magic3D =8 1 63 5 74 9 2拼接法>> clear>> A=ones3,4A =1 1 1 11 1 1 1>> B=zeros3B =0 0 00 0 00 0 0>> C=eye4C =1 0 0 00 1 0 00 0 1 00 0 0 1>> D=A BD =1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 >> F=A;CF =1 1 1 11 1 1 11 1 1 10 1 0 0 0 0 1 0 0 0 0 1 拼接函数和变形函数法:>> clear>> A=0 1;1 1A =0 11 1>> B=2ones2B =2 22 2>> cat 1,A,B,Aans =0 11 12 22 20 11 1>> cat 2 A,B,Acat 2 A,B,AError: Unexpected MATLAB expression.>> cat2,A,B,Aans =0 1 2 2 0 11 12 2 1 1>> repmatA,2,2ans =0 1 0 11 1 1 10 1 0 11 1 1 1>> repmatA,2ans =0 1 0 11 1 1 10 1 0 11 1 1 1练习:使用函数法、拼接法、拼接函数法和变形函数法,按照要求创建以下矩阵:A为43⨯的3⨯的单位矩阵、D为33⨯的0矩阵/C为33⨯的全1矩阵、B为3魔方阵、E由C 和D纵向拼接而成,F抽取E的2---5行元素生成、G由F经变形为46⨯的大3⨯的矩阵而得、以G为子矩阵用复制函数repmat生成8矩阵H;答案:>> A=ones3,4A =1 1 1 11 1 1 11 1 1 1>> B=zeros3,3B =0 0 00 0 00 0 0>> C=eye3C =1 0 00 1 00 0 1>> D=magic3D =8 1 63 5 74 9 2>> E=C;DE =1 0 00 1 00 0 18 1 63 5 74 9 2>> F=2:5,:F=2:5,:Error: Expression or statement is incorrect--possibly unbalanced , {, or . >> F=E2:5,:F =0 1 00 0 18 1 63 5 7>> G=respaceE,3,4Undefined command/function 'respace'.>> G=respaceF,3,4Undefined command/function 'respace'.>> G=reshapeF,3,4G =0 3 1 10 1 5 68 0 0 7>> H=repmatG,2,2H =0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 7 0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 7 2)矩阵的运算矩阵的加减、数乘与乘法已知矩阵:>> A=1 23 -1,A =1 23 -1>> B=-1 01 2B =-1 01 2>> A+Bans =0 24 1>> 2Aans =2 46 -2>> 2A-3Bans =5 43 -8>> ABans =1 4-4 -2矩阵的逆矩阵>> format rat;A=1 0 1;2 1 2;0 4 61 0 12 1 2 0 4 6 >> A1=invAA1 =-1/3 2/3 -1/6 -2 1 0 4/3 -2/3 1/6 >> AA1ans =1 0 0 0 1 0 0 0 1 矩阵的除法>> a=1 2 1;3 1 4;2 2 1,b=1 1 2,d=b'a =1 2 1 3 1 42 2 1b =1 1 2112>> c1=binva,c2=b/ac1 =6/7 3/7 -4/7 c2 =6/7 3/7 -4/7 >> c3=invad, c4=a\bc3 =12/7-4/7Error using ==> mldivideMatrix dimensions must agree.>> c3=invad, c4=a\dc3 =12/7-4/7c4 =12/7-4/7练习:按下列要求求出各种的矩阵运算的值求矩阵的秩、特征值和特征向量、矩阵的乘幂与开方;矩阵的指数与对数矩阵的提取与翻转答案:>> A=6 3 4 3-2 5 7 -48 -1 -3 -7A =6 3 4 3-2 5 7 -48 -1 -3 -7>> B=rankAB =3>> rb=rankArb =3>> X,Lamda=eigAError using ==> eigMatrix must be square.>> X,Lamda=eigsAError using ==> eigsA must be a square matrix or a function which computes Ax. >> C=6 3 4-2 5 78 -1 -3C =6 3 4-2 5 78 -1 -3>> X,Lamda=eigsCX =Lamda =0 00 00 0>> X,Lamda=eigCX =Lamda =0 0 0 0 0 0 >> X,Lamda=eigCX =Lamda =0 0 0 0 0 0 >> D=A^2Error using ==> mpower Matrix must be square. >> D=C^2D =34 12 626 22 34>> E=sqrtmCE =+ - -+ - -- + +>> F=expmCF =+004>> G=logmCWarning: Principal matrix logarithm is not defined for A with nonpositive real eigenvalues. A non-principal matrix logarithm is returned.> In funm at 153In logm at 27G =+ - -- + + >> H=fliplrCH =4 3 6 75 -2 -3 -1 8 >> I=triuCI =6 3 4 0 57 0 0 -3 >> J=trilCJ =6 0 0 -2 5 0 8 -1 -3 >> K=diagCK =65-33.多维数组的创建及运算1)多维数组的创建>> A1=1,2,3;4 5 6;7,8,9;A2=reshape10:18,3,3 A2 =10 13 1611 14 1712 15 18>> T1:,:,1=ones3;T1:,:,2=zeros3T1:,:,1 =1 1 11 1 11 1 1T1:,:,2 =0 0 00 0 00 0 0>> T2=ones3,3,2T2:,:,1 =1 1 11 1 11 1 1T2:,:,2 =1 1 11 1 11 1 1>> T3=cat3,A1,A2,T4=repmatA1,1,1,2T3:,:,1 =1 2 34 5 67 8 9T3:,:,2 =10 13 1611 14 1712 15 18T4:,:,1 =1 2 34 5 67 8 9T4:,:,2 =1 2 34 5 67 8 92)多维数组的创建数组运算用小圆点加在运算符的前面表示,以区分矩阵的运算;特点是两个数组相对应的元素进行运算;>> A=1:6;B=ones1,6;>> C1=A+B,C2=A-BC1 =2 3 4 5 6 7C2 =0 1 2 3 4 5 >> C3=A.B,C4=B./A,C5=A.\BC3 =1 2 3 4 5 6C4 =C5 =关系运算或逻辑运算的结果都是逻辑值;>> I=A>3,C6=AII =0 0 0 1 1 1C6 =4 5 6>> A1=A-3,I2=A1&AA1 =-2 -1 0 1 2 3 I2 =1 1 0 1 1 1>> I3=~II3 =1 1 1 0 0 0 4.字符串的操作1 字符串的创建>> S1='Ilike MATLAB'S1 =Ilike MATLAB>> S2='I''m a stuent.'S2 =I'm a stuent.>> S3=S2,'and',S1S3 =I'm a MATLAB2)求字符串长度>> lengthS1ans =12>> sizeS1ans =1 123)字符串与一维数值数组的相互转换>> CS1=absS1CS1 =73 108 105 107 101 32 77 65 84 76 65 66>> CS2=doubleS1CS2 =73 108 105 107 101 32 77 65 84 76 65 66>> charCS2ans =Ilike MATLAB>> setstrCS2ans =Ilike MATLAB练习:用char 和向量生成的方法创建如下字符串AaBbCc......XxYyZz.>> S1=65:90;S2=97:122;>> C=S1;S2;>> C=C:';>> S3=doubleC;charS3ans =AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvWwXxYyZz实验三 MALTAB数值运算一、实验目的掌握MATLAB的数值运算及其运算中所用到的函数,掌握结构数组和细胞数组的操作;二、实验内容1)多项式运算;2)多项式插值和拟合;3)数值为积分;4)结构数组和细胞数组;三、实验步骤1、多项式运算1)多项式表示;在MATLAB中,多项式表示成向量的形式;如:432S S S+-+在MATLAB中表示为359>> s=1 3 -5 0 92)多项式的加减法相当于向量的加减法,但必须注意阶次要相同;如不同,低阶次的要补0;如多项式23547+-++相加;s s s s++与多项式432239s s>> s1=0 0 2 3 11>> s2=1 2 -5 4 7>> s3=s1+s2答;s1 =0 0 2 3 11s2 =1 2 -5 4 7s3 =1 2 -3 7 183)多项式的乘、除法分别用函数conv和的deconv实现; >> s1=2 3 11>> s2=1 3 -5 4 7>> s3=convs1,s2>> s4=deconvs3,s1答;s1 =2 3 11s2 =1 3 -5 4 7s3 =2 9 10 26 -29 65 77s4 =1 3 -5 4 74)多项式求根用函数roots;>> s1=2 4 2>> rootss1答;s1 =2 4 2ans =-1-15)多项式求值用函数polyval>> s1=2 4 1 -3>> polyvals1,3>> x=1:10>> y=polyvals1,x答;s1 =2 4 1 -3ans =90x =1 2 3 4 5 6 7 8 9 10y =Columns 1 through 84 31 90 193 352 579 886 1285 Columns 9 through 10练习:求23(1)(3)(1)21s s ss s+++++的“商”及余数;>> s1=1 0 1;s2=1 3;s3=1 1;>> s4=1 0 2 1;>> q,r=deconvconvconvs1,s2,s3,s4答;q =1 4r =0 0 2 -5 -12、多项式插值和拟合有一组实验数据如附表1-1所示;附表1-1分别用拟合二阶至三阶和插值线性和三次样条的方法来估算X=时Y的值;以下是实现一阶拟合的语句;>> x=1:10>> y=16 32 70 142 260 436 682 1010 1342 1960>> p1=polyfitx,y,1 %一阶拟合>> y1=polyvalp1, %计算多项式P1在x=的值答;x =1 2 3 4 5 6 7 8 9 10y =Columns 1 through 816 32 70 142 260 436 682 1010Columns 9 through 101342 1960p1 =y1 =+0033、数值微积分1)差分使用diff函数实现;>> x=1:2:9>> diffx答;x =1 3 5 7 9ans =2 2 2 22)可以用因变量和自变量差分的结果相处得到数值微分;>> x=linspace0,2pi,100;>> y=sinx;>> plotx,y>> y1=diffy./diffx;>> plotx1:end-1,y1答;3)cumsum函数求累计积分,trapz函数用梯形法求定积分,即曲线的面积;>> x=ones1,10>> cumsumx>> x=linspace0,pi,100;>> y=sinx;>> trapzx,y>> p=cumsumy;>> p100pi/100-1答;x =1 1 1 1 1 1 1 1 1 1ans =1 2 3 4 5 6 7 8 9 10ans =ans =练习:图A1是瑞士地图,为了算出其国土面积,首先对地图作如下测量:以由西向东方向为X轴,由南向北方向为Y 轴,选择方便的原点,并将从最西边界点到最东边界点在X轴上的区间适当划分为若干段,在每个分点的Y方向测出南边界点和北边界点的Y坐标Y1和Y2,这样就得到表1,根据地图比例尺回到18mm相当于40Km,试由测量数据计算瑞士国km比较;地图的数据见附表1-2单位mm;土近似面积,与其精确值412282附表1-2X 7 13 34 48 56 61 91Y1 44 45 47 50 50 38 30 30 34 36 34 41 45 46续表提示:由高等数学的知识,一条曲线的定积分是它与x轴所围成的面积,那么两条曲线所围成的面积可由两条曲线的定积分相减得到;4、结构数组与细胞数组1)机构数组的创建;>> ='Jack';>> student2.n>> ='Lucy';>> student或者用struct函数创建;>> student=struct'number',{'001','002'},'name',{'Jack','Lucy'};答;student =1x2 struct array with fields:numbername2)机构数组的操作;>> student1.subject= %添加subject域并赋予空值>> student1.score=>> filednamesstudeng>>fieldnamesstudeng>>fieldnamesstudent>> getfieldstudent,{2},'name'>> student=rmfieldstudent,'subject' %删除subject域>> student=setfieldstudent,{1},'score',90;>> student2.score=88; %比较和上一条语句是否效果一样答;student =1x2 struct array with fields:numbernamesubjectstudent =1x2 struct array with fields:numbernamesubjectscoreUndefined function or variable 'studeng'.练习:创建一结构数组stusorce,其域为:No,Name,English,Math,Chinese,Total,Average;结构数组的大小为2×2;3)细胞数组的创建;>> A={'How are you',ones3;1 2;3 4,{'cell'}}; %直接创建>> B1,1={'Hello world'}; %由各个细胞元素创建>> B1,2={magic3};>> B2,1={1 2 3 4};答或者用cell函数先创建空的细胞数组,然后再给各个元素赋值c=cell1,2;>> c1,1={'Hello world'};>> c1,2={magic3};>> c1,3={1 2 3 4};4)细胞数组的操作;>> ans1=A1,1>> ans2=A1,1>> whos ans1 ans2>> celldispA>> a1=A{2,1}1,2>> a2 a3=dealA{1:2}答;ans1 ='How are you'ans2 ='How are you'Name Size Bytes Class Attributesans1 1x1 84 cellans2 1x1 84 cellA{1,1} =How are youA{2,1} =1 23 4A{1,2} =1 1 11 1 11 1 1A{2,2}{1} =cella1 =2a2 =How are youa3 =1 23 4实验四 MALTAB符号运算一、实验目的掌握符号变量和符号表达式的创建,掌握MALTAB的symbol工具箱的一些基本运用;二、实验内容1)符号变量、表达式、方程及函数的表示; 2)符号微积分运算;3)符号表达式的操作和转换;4)符号微分方程求解;三、实验步骤1、符号运算的引入在数值运算中如果求x xxπsinlim→,则可以不断让的让x趋近0,一球的表达式趋近什么数,但终究不能令x=0,因为在数值运算中0不是能作除数的;MATLAB的符号运算能解决这内问题;输入如下命令:>> f=sym'sinpix/x'>> limitf,'x',0答;f =sinpix/xans =pi2、符号常量、符号变量、符号表达式的创建1)使用sym创建输入以下命令,观察Workspace中A、B、f是什么内性的数据,占用多少字节的内存空间;>> A=sym'1' %符号常量>> B=sym'x' %符号变量>> f=sym'2x^2+3x-1' %符号表达式>> clear>> f1=sym'1+2' %有单引号,表示字符串>> f2=sym1+2 %无单引号>> f2=sym1+2>> f4=sym'2x+3' %为什么出错>> x=1>> f4=sym2x+3答;A =1B =x2x^2+3x-1f1 =1+2f2 =3f2 =3f4 =2x+3x =1f4 =5通过看MATLAB的帮助可知,sym的参数可以使字符串或是数值类型,无论是哪种类型都会生成符号类型数据; 2)使用syms创建>> clear>> syms x y z>> x,y,z>> f1=x^2+2x+1>> f2=expy+expz^2>> f3=f1+f2答;x =xy =yz =zf1 =x^2+2x+1f2 =expy+expz^2f3 =x^2+2x+1+expy+expz^23、符号矩阵创建>> syms a1 a2 a3 a4>> A=a1 a2;a3 a4>> A1,A3答;A =a1, a2a3, a4ans =a1a24、符号算术运算1)符号向量相乘、相除符号量相成和数值量相乘一样,分成矩阵乘和数组乘;>> a=sym5;b=sym7;>> c1=ab>> c2=a/b>> a=sym5;B=sym3 4 5;>> C1=aB,C2=a\B>> syms a b>> A=5 a;b 3;B=2a b;2b a;>> C1=AB,C2=A.B>> C3=A\B,C4=A./B答;c1 =35c2 =5/7C1 =15, 20, 25C2 =3/5, 4/5, 1C1 =10a+2ab, 5b+a^22ab+6b, b^2+3aC2 =10a, ab2b^2, 3aC3 =2ab-3/-15+ab, a^2-3b/-15+ab2ba-5/-15+ab, -5a-b^2/-15+abC4 =5/2/a, a/b1/2, 3/a2)符号数值任意精度控制和运算任意精度的VPA运算可以使用命令digits设定默认的精度和vpa对指定对象以新的精度进行计算来实现; >> a1=sym'2sqrt5+pi'>> a=sym'2sqrt5+pi'>> b=sym2sqrt5+pi>> digits>> vpaa>> digits15>> c1=vpaa,56>> c2=vpab,56答a1 =2sqrt5+pia =2sqrt5+pib =Digits = 32ans =ans =c1 =c2 =注意观察c1和c2的数值类型,c1和c2是否相等;3) 符号类型与数值类型的转换使用命令sym 可以把数值型对象转换成有理数性符号对象,命令vpa 可以讲数值型对象转换为任意精度的VPA 型符号对象;使用double,numeric 函数可以将有理数型和VPA 型符号对象转换成数值对象.>> clear>> a1=sym'2sqrt5+pi'>> b1=doublea1 %符号转数值>> b2=isnumericb1 %判断是否转换成了数值>> a2=vpaa1,70 %数值转符号答;a1 =2sqrt5+pib1 =b2 =1a2 =85、 符号表达式的操作和转换1独立变量的确定原则独立变量的确定原则:在符号表达式中默认变量是惟一的;MATLAB 会对单个英文小写字母除i 、j 外进行搜索,且以x 为首选独立变量;如果表达式中字母不唯一,且无x,就选在字母表最接近x 的字母;如果有相连的字母,则选择在字母表中较后的那一个;例如:'*3'z y +中,y 是默认独立变量;)'*sin('b t a +,t 是默认独立变量;输入以下命令,观察并分析结果;>> clear>> f=sym'a+b+i+j+x+y+xz'>> findsymf>> findsymf,1>> findsymf,2>> findsymf,3>> findsymf,4>> findsymf,5>> findsymf,6答;f =a+b+i+j+x+y+xzans =a, b, j, x, xz, yans =xans =x,xzans =x,xz,yans =x,xz,y,jans =x,xz,y,j,bans =x,xz,y,j,b,a2符号表达式的化简符号表达式化简主要包括表达式美化pretty 、合并同类项collcet 、多项式展开expand 、因式分解factor 、化简simple 或simplify 等函数;①合并同类项collect;分别按x 的同幂项和e 指数同幂项合并表达式: 2(1)()t t x xe x e --+++;>> syms x t;>> f=x^2+x^exp-t+1x+exp-t;>> f1=collectf>> f2=collectf,'exp-t'答;f1 =x^3+exp-tx^2+x^exp-t+1x+x^exp-t+1exp-tf2 =x^2+x^exp-t+1exp-t+x^2+x^exp-t+1x②对显示格式加以美化pretty;针对上例,用格式美化函数可以使显示的格式更符合数学书写习惯;>> prettyf1>> prettyf2答;f1 =x^3+exp-tx^2+x^exp-t+1x+x^exp-t+1exp-tf2 =x^2+x^exp-t+1exp-t+x^2+x^exp-t+1x>> prettyf1prettyf23 2 exp-t exp-tx + exp-t x + x + 1 x + x + 1 exp-t2 exp-t 2 exp-tx + x + 1 exp-t + x + x + 1 x注意与直接输出的f1和f2对比;③多项式展开expand;展开12x-成x不同次幂的多项式.(1)>> syms x>> f=x-1^12;>> expandf>> prettyexpandf答;ans =1+x^12-12x^11+66x^10-220x^9+495x^8-792x^7+924x^6-792x^5+495x^4-220x^3+66x^2-12x 12 11 10 9 8 7 6 51 + x - 12 x + 66 x - 220 x + 495 x - 792 x + 924 x - 792 x4 3 2+ 495 x - 220 x + 66 x - 12 x④因式分解factor;将表达式121x-做因式分解;>> syms x;f=x^12-1;>> prettyfactorf答;ans =1+x^12-12x^11+66x^10-220x^9+495x^8-792x^7+924x^6-792x^5+495x^4-220x^3+66x^2-12x 12 11 10 9 8 7 6 51 + x - 12 x + 66 x - 220 x + 495 x - 792 x + 924 x - 792 x4 3 2+ 495 x - 220 x + 66 x - 12 x>> syms x;f=x^12-1;prettyfactorf2 2 2 4 2x - 1 1 + x + x 1 + x 1 - x + x 1 + x x - x + 1⑤化简simple或simplify;将函数f=;>> clear>> syms x;f=1/x^3+6/x^2+12/x+8^1/3;>> g1=simplef>> g2=simplifyf答;g1 =2x+1/xg2 =2x+1^3/x^3^1/36、符号表达式的变量替换subs函数可以对符号表达式中的符号变量进行替换>> clear>> f=sym'x+y^2+4x+10'>> f1=subsf,'x','s' %使用s替换x>> f2=subsf,'x+y','z'答;f =x+y^2+4x+10f1 =s+y^2+4s+10f2 =z^2+4x+107、符号极限、符号积分与微分1)求极限函数的调用格式limitF,x,a %返回符号对象F当x→a时的极限limitF,a %返回符号对象F当独立变量→a时的极限limitF %返回符号对象F当独立变量→0a=0时的极限limitF,x,a,’right’ %返回符号对象F当x→a时的右极限limitF,x,a,’left’ %返回符号对象F当x→a时的左极限例一:>> clear>> f=sym'sinx/x+ax'>> limitf,'x',0 %以x为自变量求极限>> limitf,'a',0 %以a为自变量求极限>> limitf %在默认情况下以x为自变量求极限>> findsymf %得到变量并且按字母表顺序排列答‘f =sinx/x+axans =1ans =sinx/xans =1ans =a, x例二:>> clear>> f=sym'sqrt1+1/n;>> limitf,n,inf %求n趋于无穷大时的极限2)求积分函数的调用格式intF %求符号对象F关于默认变量的不定积分intF,v %求符号对象F关于指定变量v的不定积分intF,a,b %求符号对象F关于默认变量的从a到b的定积分intF,v,a,b %求符号对象F关于指定变量的从a到b的定积分3)求微分方程的调用格式diffF %求符号对象F关于默认变量的微分diffF,v %求符号对象F关于指定变量v的微分diffF,n %求符号对象F关于默认变量的n阶微分,n为自然数1、2、3……diffF,v,n %求符号对象F关于指定变量v的n阶微分8、符号方程求解1常规方程求解函数的调用格式g=solveeq %求方程或表达式或字串eq关于默认变量的解g=solveeq,var %求方程或表达式或字串eq关于指定变量var的解g=solveeq1,eq2,….,eqn,var1,var2,…,varn %求方程或表达式或字串eq1,eq2,eq3,……eqn关于指定变量组var1,var2,……,varn的解求一元二次方程20++=的解;其求解方法有多种形式:ax bx c①seq=solve'ax^2+bx+c'②seq=solve'ax^2+bx+c=0'③eq=’ax^2+bx+c’;④eq=’ax^2+bx+c=0’;seq=solveeq⑤sym x a b ceq=ax^2+bx+cseq=solveeq2常微分方程求解求解常微分方程的函数是dsolve;应用此函数可以求得常微分方程组的通解,以及给定边界条件或初始条件后的特解;常微分方程求解函数的调用格式:r=dsolve’eq1,eq2,…’,’cond1,cond2,…’,’v’r=dsolve’eq1’,’eq2’,…,’cond1’,’cond2’,…,’v’说明:①以上两式均可给出方程eq1,、qeq2对应初始条件cond1、cond2之下的一v 作为解变量的各微分方程的解; ②常微分方程解的默认变量为t;③第二式中最多可接受的输入式是12个;④微分方程的表达方法;在用MATLAB 求解常微分方程时,用大写字母Dy 表示dxdy ,用D2y 表示22d y dx ,依此类推; 边界条件以类似于ya=b 给出;其中y 为因变量,a 、b 为常数.如果初始条件给的不够,求出的解为含有C1、C2等待定常数的通解;例一 求微分方程x dx dy 2=的通解. 练习:1求222132lim x x x x →--+; 2求函数()cos 2sin 2f x x x =-的积分;求函数()g x =3计算定积分60(sin 2)x dx π+⎰ 4求下列线性方程组的解5求解但y0=2,在z0=7时,微分方程组的解;实验五 MATLAB 程序设计一、实验目的掌握MATLAB 程序设计的主要方法,熟练编写MATLAB 函数.二、 实验内容1M 文件的编辑;。
MATLAB上机实验实验报告实验名称:用MATLAB实现多项式拟合及插值一、实验目的:通过使用MATLAB实现多项式拟合及插值的方法,掌握MATLAB软件的基本操作和函数应用,进一步了解多项式拟合及插值的原理和实现过程。
二、实验原理:多项式拟合及插值是一种常见的数值分析方法,通过对已知数据点集合的拟合或插值,构造出一个多项式函数,用于近似表示原始数据。
1.多项式拟合:通过最小二乘法原理,选择一个合适的多项式函数,使得拟合出的多项式与已知数据点之间的误差最小。
拟合函数可以是一次、二次或高阶多项式。
2.多项式插值:通过已知数据点的横纵坐标值,构造一个满足这些点的多项式函数。
插值函数可以是一次、二次或高阶多项式。
插值函数经过每个已知数据点。
三、实验步骤:1.数据准备:选择一组已知数据,包含横纵坐标值。
数据点的个数可以根据具体情况自行确定。
2.多项式拟合:使用MATLAB中的polyfit函数,根据已知数据点进行多项式拟合。
根据拟合结果,获取拟合的多项式系数。
3.多项式插值:使用MATLAB中的polyfit函数,根据已知数据点进行多项式插值。
通过plot函数绘制原始数据点的散点图和插值多项式的曲线图。
可以尝试不同阶数的多项式插值。
4.结果分析:根据实验结果,分析拟合与插值的效果。
对比拟合结果与原始数据的误差大小,评估拟合的准确性。
对比插值结果与原始数据的差异,评估插值的精确度。
五、实验总结:通过这次实验,我熟练掌握了使用MATLAB实现多项式拟合及插值的方法。
在实验中,我了解了多项式拟合的原理,以及如何利用最小二乘法求取多项式拟合的系数。
同时,我也学会了如何使用MATLAB中的polyfit函数实现多项式拟合和插值。
通过实验结果的分析,我对拟合和插值的实际应用和效果有了更加深入的认识。
[1]MATLAB官方文档[2]高等数值分析教程以上为MATLAB上机实验实验报告,共计1200字。
************************ MATLAB上机指导书************************昆明理工大学机电学院刘孝保2013年3月实验一 MATLAB 工作环境熟悉及简单命令的执行一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。
二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单(Menu )、工具条 (Toolbar )、命令窗口(Command Window)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。
三、实验步骤:1、启动MATLAB ,熟悉MATLAB 的桌面。
2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。
(1)(365-52⨯2-70)÷3 (2)>>area=pi*2.5^2(3)已知x=3,y=4,在MATLAB 中求z :()232y x y x z -= (4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。
m1=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡11514412679810115133216 执行以下命令 >>m1( 2 , 3 ) >>m1( 11 ) >>m1( : , 3 )>>m1( 2 : 3 , 1 : 3 )>>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) (5)执行命令>>help abs查看函数abs 的用法及用途,计算abs( 3 + 4i ) (6)执行命令>>x=0:0.1:6*pi; >>y=5*sin(x); >>plot(x,y)(6)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。
2013年上学期MATLAB 语言上机实验内容
姓名: 班级: 1012501 学号:30
实验3: 图形绘制及m 文件编程
1. 已知椭圆的长、短轴2,4==b a ,用“小红点线”画椭圆⎩⎨⎧==t
b y t a x sin cos 。
t=2*pi*(0:199)/199; x=4*cos(t);y=2*sin(t);
plot(x,y,'r.'),axis equal
2. 根据表达式θρcos 1-=绘制如图p5-2的心脏线。
(提示:采用极坐标绘线指令polar )
t=0:0.1:2*pi;p=1-cos(t);polar(t,p)
3. A,B,C 三个城市上半年每个月的国民生产总值见表p5.1。
试画出如图p5-3所示的三城
市上半年每月生产总值的累计直方图。
(提示:使用指令bar )
表p5.1 各城市生产总值数据(单位:亿元)
A=[170,120,180,200,190,220];B=[120,100,110,180,170,180];C=[70,50,80,100,95,120];
bar([A;B;C]','stacked'),legend('A','B','C',Location','NorthWest')
4. 用绿实线绘制)sin(t x =,)cos(t y =,t z =的三维曲线,曲线如图p5-5所示。
(提示:
使用plot3指令)
t=4*pi*(0:100)/100; x=sin(t); y=cos(t); z=t;
plot3(x,y,z,'g','LineWidth',3),box on
5. 在区域]3,3[,-∈y x ,绘制2
24y x xe z --=的如图p5-6的三维(透视)网格曲面。
(不得
使用ezmesh )
x=-3:0.1:3;y=x;[X,Y]=meshgrid(x,y); Z=4.*X.*exp(-X.^2-Y.^2);
mesh(X,Y,Z)
6. 在]4,4[,ππ-∈y x 区间里,根据表达式y
x y x z ++=
)
sin(,绘制如图p5-7所示的曲面。
x=4*pi*(-50:50)/50;y=x;[X,Y]=meshgrid(x,y); Z=sin(X+Y)./(X+Y);surf(X,Y,Z)
view([21,32])
7. 试用图解法回答:
(1)方程组⎪⎩⎪
⎨⎧
=+=++0
))cos(sin(1.0)1(22y x y x y 有多少个实数解?
(2)求出离0,0==y x 最近、且满足该方程组的一个近似解。
8.一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。
输出全部水仙花数。
for m=100:999; m1=fix(m/100);
m2=rem(fix(m/10),10); m3=rem(m,10);
if m==m1^3+m2^3+m3^3; disp(m) end end 153 370 371 407
9.Fibonacci 数组的元素满足Fibonacci 规则:12+++=k k k a a a ,),2,1( =k ;且
121==a a 。
现要求该数组中第一个大于10000的元素。
a(1)=1;a(2)=1;i=2;sum=1; while a(i)<=10000 a(i+1)=a(i-1)+a(i); i=i+1; sum=sum+a(i); end
i, a(i),sum i = 21 ans = 10946 sum = 28655
10.请分别写出用for 和while 循环语句计算1000000
21000000
2.02.02.012
.0+++==
∑= i i
K 的程序。
此外,还请写出避免循环的数值、符号计算程序。
i=0;s=0;
while i<=1000000 s=s+2.^i; i=i+1; end
disp(s)
Inf s=0;
for i=0:1:1000000 s=s+2.^I; end disp(s)
Inf
11.若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。
求[1,500]之间的全部完数。
for m=1:500 s=0;
for k=1:m/2 if rem(m,k)==0 s=s+k; end end if m==s disp(m)
end
end
6
28
496
12.随机输入20个数,按从小到大的顺序输出A=10*rand(1,20);h=length(A);
for m=1:h
for n=m+1:h
if A(n)<A(m)
k=A(n);A(n)=A(m);A(m)=k;
end
end
end
disp(A)
170 120 180 200 190 220
实验4: 连续、离散时间系统的simulink 仿真
1、利用SIMULINK 求解dx
e t I t
x ⎰
-=
2
)(在区间]1 ,0[∈t 积分,并求出积分值)1(I 。
(参见
例4.1-5)
2、已知系统方程为4)0(r 3,r(0),423'
'
'===++初始条件为,r r r ,请建立simulink 模型,并仿真执行。
(参见例4.1-9)r''+3r'+2r=4e^(-2t);
3、设计一个数字低通滤波器)(z F ,从受噪声干扰的多频率混合信号)(t x 中获取10Hz 的信号。
)()1002cos(5.1)102sin()(t n t t t x +⋅⋅+⋅⋅=ππ
(7.3)
在此,)2.0,0(~)(2
N t n ,s s
T k f k t ⋅=⋅=1。
采样频率取1000=s f (Hz ),即采样 周期001.0=T (秒)。
4、在图7.3-1所示的电路中,已知)(3.0H L =,)(3.0F C =,)(21Ω=R ,)(01.02Ω=R ,
)(53Ω=R ,)(1)0(V V C -=-, )(1)0(A i L =-, )(10V V s =,开关K 在0=t 时闭合。
试采用SIMULINK 的SimPowerSystems 模块库器件进行元件级仿真,求 L i 和c V 。
图7.3-1 二阶RLC 电路
powergui
Continuous Voltage Measurement
v +-
Series RLC Branch 1Series RLC Branch
Scope
Parallel RLC Branch
DC Voltage Source
Current Measurement
i
+-
Breaker。