实验四matlab
实验4 matlab gui设计

实验四 MATLAB GUI设计一.预备知识点1. 图形用户界面(GUI)是用户与计算机程序之间的交互方式,是用户与计算机进行信息交流的方式。
计算机在屏幕显示图形和文本,若有扬声器还可产生声音。
用户通过输入设备,如:键盘、鼠标、跟踪球、绘制板或麦克风,与计算机通讯。
用户界面设定了如何观看和如何感知计算机、操作系统或应用程序。
通常,多是根据悦目的结构和用户界面功能的有效性来选择计算机或程序。
图形用户界面或GUI是包含图形对象,如:窗口、图标、菜单和文本的用户界面。
以某种方式选择或激活这些对象,通常引起动作或发生变化。
最常见的激活方法是用鼠标或其它点击设备去控制屏幕上的鼠标指针的运动。
按下鼠标按钮,标志着对象的选择或其它动作。
2.对“句柄图形”的理解是设计和实现GUI的先决条件。
由图形命令生成的每一事物是一个图形对象。
图形对象不仅包括uimenu和uicontrol对象,而且还包括图形、坐标轴和他们的子对象。
让我们从另一个角度来看这一层次结构。
计算机的屏幕本身是根结点,图形是根对象的子对象,坐标轴,uimenu ,uicontrol是图形的子对象。
根可以包括多个图形,每个图形含有一组或多组坐标轴以及其子对象,每个图形也可以有一个或多个与坐标轴无关的uimenu和uicontrol。
虽然uicontrol对象无子对象结点,但他们确实具有多种类型。
uimenu对象常将其它的uimenu对象作为其子对象。
3. MATLAB的图形用户界面设计实际上是一种面向对象的设计方法。
假设想建立一个图形界面来显示和处理二维图形的颜色、线型及数据点的图标。
要求其基本功能是:(1)建立一个主坐标系,用来显示要绘制的二维图形;(2)建立一个列表框,允许用户选择不同的着色方法;(3)建立一组按扭,用于处理二维图形线型和数据点的图标;(4)为图形界面加入菜单项,用于决定坐标轴是否显示及坐标轴上是否需要网格;(A)最初图形界面的设想如下图所示:(B)根据上面的设想,下面我们就来制作它的图形用户界面:首先,我们先来看其图形窗口的设置。
实验四 Matlab编程

实验四Matlab编程【实验目的】1、了解Matlab运行方式2、熟悉Matlab程序流程与结构3、会编写简单的Matlab程序4、掌握M文件编辑器及程序的调试工具【实验内容】1、关系运算与逻辑运算2、m函数文件(function file)和m命令文件(script file)以及m文件的调试3、分支结构和循环结构4、相关语句或函数5、根据要求,完成实验报告中的内容【实验指导】1)关系运算与逻辑运算关系运算符>(大于) <(小于) >=(大于等于) <=(小于等于) ==(等于) ~=(不等于) 逻辑运算符& (与) |(或) ~(非) xor(异或)% 逻辑结果以“1”或者“非零数字”表示真, 以“0”表示假。
测试函数2)m函数文件(function file)基本数学函数自定义函数:以m文件形式出现✓格式:function [y1, y2, ..., yn]=fun_name(x1, x2, ..., xn)✓说明:◆函数名必须符合Matlab变量命名规则。
◆m文件名必须与函数名相同。
◆输出参数只有一个或者没有时,可以省略方括号。
◆输入参数可为0、1、2、...个,但不能省略圆括号。
◆M函数文件第一行必须以funtion开头。
◆函数有自已的工作空间,它与Matlab系统本身的工作空间是分开的。
◆当m文件到终点或者遇到return时结束调用。
◆函数可以调用其他函数,也可以调用自己。
◆一个m文件中可以定义多个函数,第一个出现的为主函数,其他的为子函数。
注意文件名与主函数名相同,子函数只能被主函数调用,而不能被该m文件外的函数或者m文件调用。
✓调用:[y1, y2, ..., yn]=fun_name(x1, x2, ..., xn)3)m命令文件(script file)该文件仅是一连串Matlab指令的集合,执行时按顺序执行。
它没有输入参数与输出参数,中间可以调用函数。
实验四MATLAB数值计算与符号计算

实验四 MATLAB数值计算与符号计算一、实验目的1.掌握数据插值和曲线拟合的方法2.掌握求数值导数和数值积分的方法3.掌握代数方程数值求解的方法4.掌握常微分方程数值求解的方法5.掌握求解优化问题的方法6.掌握求符号极限、导数和积分的方法7.掌握代数方程符号求解的方法8.掌握常微分方程符号求解的方法二、实验原理1.数据插值a) 一维数据插值 Y1=interp1(X,Y,X1,’method’)b) 二维数据插值 Z1=interp2(X,Y,Z,X1,Y1,’method’)2.曲线拟合[P,S]=polyfit(X,Y,m)3.符号对象的建立(1)符号量名=sym(符号字符串):建立单个的符号变量或常量;(2)syms arg1 arg2,…,argn:建立n个符号变量或常量。
4.基本符号运算(1)基本四则运算:+,-,*,\,^(2)分子与分母的提取:[n,d]=numden(s)(3)因式分解与展开:factor(s),expand(s)(4)化简:simplify, simple(s)5.符号函数及其应用(1)求极限:limit(f,x,a)(2)求导数:diff(f,x,a);(3)求积分:int(f,v)三、实验内容1.按下表用3次样条方法插值计算0~900范围内整数点的正弦值和0~750范围内整数点的正切值,然后用5次多项式拟合方法计算相同的函数值,并将两种计算结果进行比较。
x2=0:75;y1=sin(pi.*x1./180);y2=tan(pi.*x2./180);;a=interp1(x1,y1,45,'cublic')b=interp1(x1,y1,45,'cublic')p1=polyfit(x1,y1,5)p2=polyfit(x2,y2,5)c1=polyval(p1,x1);c2=polyval(p2,x2);subplot(2,1,1);plot(x1,c1,':o',x1,y1,'r');subplot(2,1,2);plot(x2,c2,':o',x2,y2,'r');10203040506070802.(1)求函数33()sin cos f x x x =+在点,,,6432x ππππ=的数值导数。
MATLAB实验四_求微分方程的解

参数说明
[T,Y] = solver(odefun,tspan,y0)
odefun 为显式常微分方程,可以用命令 inline 定义,或 在函数文件中定义,然后通过函数句柄调用。
dy 2 2 y 2 x 2x 求初值问题 的数值解,求解范 例: dx 围为 [0,0.5] y( 0 ) 1
dsolve的输出个数只能为一个 或 与方程个数相等。
只有很少一部分微分方程(组)能求出解析解。 大部分微分方程(组)只能利用数值方法求数值解。
Matlab函数数值求解
[T,Y] = solver(odefun,tspan,y0)
其中 y0 为初值条件,tspan为求解区间;Matlab在数值求解 时自动对求解区间进行分割,T (列向量) 中返回的是分割点 的值(自变量),Y (数组) 中返回的是这些分割点上的近似解, 其列数等于因变量的个数。
数学实验
实验四
求微分方程的解
问题背景和实验目的
自牛顿发明微积分以来,微分方程在描述事物运 动规律上已发挥了重要的作用。实际应用问题通过 数学建模所得到的方程,绝大多数是微分方程。 由于实际应用的需要,人们必须求解微分方程。 然而能够求得解析解的微分方程十分有限,绝大多 数微分方程需要利用数值方法来近似求解。 本实验主要研究如何用 Matlab 来计算微分方程 (组)的数值解,并重点介绍一个求解微分方程的 基本数值解法--Euler折线法。
Runge-Kutta 方法
Euler 法与 R-K法误差比较
Matlab 解初值问题
用 Maltab自带函数 解初值问题 求解析解:dsolve 求数值解:
ode45、ode23、 ode113、ode23t、ode15s、 ode23s、ode23tb
实验四MATLAB符号运算

实验四MATLAB符号运算实验四MATLAB符号运算⼀、实验⽬的:1、掌握定义符号对象的⽅法;2、掌握符号表达式的运算法则以及符号矩阵运算。
3、掌握求符号函数极限及导数的⽅法。
4、掌握求符号函数定积分和不定积分的⽅法。
⼆、实验原理1、符号常量、符号变量、符号表达式的创建(1) 使⽤sym( )创建输⼊以下命令,观察Workspace 中A、B、f是什么类型的数据,占⽤多少字节的内存空间。
>>A=sym('1') %符号常量>>B=sym('x') %符号变量>>f=sym('2*x^2+3y-1') %符号表达式>>clear>>f1=sym('1+2') %有单引号,表⽰字符串>>f2=sym(1+2) %⽆单引号>>f3=sym('2*x+3')>>f4=sym(2*x+3) %为什么会出错>>x=1>>f4=sym(2*x+3)通过看MATLAB 的帮助可知,sym( )的参数可以是字符串或数值类型,⽆论是哪种类型都会⽣成符号类型数据。
(2) 使⽤syms 创建>>clear>>syms x y z %注意观察x,y,z都是什么类型的,它们的内容是什么>>x,y,z>>f1=x^2+2*x+1>>f2=exp(y)+exp(z)^2>>f3=f1+f2通过以上实验,知道⽣成符号表达式的第⼆种⽅法:由符号类型的变量经过运算(加减乘除等)得到。
⼜如:>>f1=sym('x^2+y +sin(2)')>>syms x y>>f2=x^2+y+sin(2)>>x=sym('2') , y=sym('1')>>f3=x^2+y+sin(2)>>y=sym('w')>>f4=x^2+y+sin(2)(3)符号矩阵创建>>syms a1 a2 a3 a4>>A=[a1 a2;a3 a4]>>A(1),A(3)或者>>B=sym('[ b1 b2 ;b3 b4] ')>>c1=sym('sin(x) ')>>c2=sym('x^2')>>c3=sym('3*y+z')>>c4=sym('3 ')>>C=[c1 c2; c3 c4]2、符号算术运算(1) 符号量相乘、相除符号量相乘运算和数值量相乘⼀样,分成矩阵乘和数组乘。
Matlab实验四拟合

解法 2.用多项式拟合的命令
1)输入以下命令:
x=0:0.1:1;
y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2];
A=polyfit(x,y,2)
z=polyval(A,x);
plot(x,y,'k+',x,z,'r')
%作出数据点和拟合曲线的图形
r1 (xn ) ... rm (xn ) nm
则线性方程组可表示为: RT Ra RT y
由于当 r1(x), r2 (x), rm (x) 线性无关时,R 列满秩,RT R 可逆所以上述 方程组有唯一解:a (RT R)1 * RT y (称为该线性方程组的最小二乘
意义下的解)。此即线性最小二乘拟合所得系数。
(4)[x, options]=lsqcurvefit (‘fun’,x0,xdata,ydata,…); (5)[x,options,funval]=lsqcurvefit(‘fun’,x0,xdata,ydata,…)
; (6) [x,options,funval,Jacob] = lsqcurvefit (‘fun’,x0,xdata,
用作线性最小二乘拟合的误差也可以考虑以下两种形式:
n
1.最小平方误差: J (a1, a2 ,...am ) ( ( yi f (xi ))2 ) i 1
2.最大偏差: J (a1, a2 ,...am ) max yi f (xi ) 1in
(二)基函数组的选取
线性最小二乘拟合 f(x)=a1r1(x)+ …+amrm(x)中函数
该问题即求解最优化问题:
(打印)实验四 MATLAB 高级图形绘制

实验四MATLAB 高级图形绘制一、实验目的及要求:1.熟悉各种绘图函数的使用;2.掌握图形的修饰方法和标注方法;3.了解MATLAB 中图形窗口的操作。
二、实验内容:1.用图形表示连续调制波形Y=sin(t)sin(9t)及其包络线。
程序代码如下:包络线:2.x=[-2π,2π],y1=sinx、y2=cosx、y3=sin2x、y4=cos 2x①用MATLAB语言分四个区域分别绘制的曲线,并且对图形标题及横纵坐标轴进行标注。
程序:结果:②另建一个窗口,不分区,用不同颜色、线型绘出四条曲线,并标注图例注解。
程序:结果:③绘制三维曲线:⎪⎩⎪⎨⎧=≤≤==)cos()sin()200()cos()sin(t t t z t t y t x π程序:结果:3.绘制极坐标曲线ρ=asin(b+nθ),并分析参数a、b、n对曲线形状的影响。
(1)a=1;b=1;n=1(2)a=10;b=1;n=1(3)a=10;b=10;n=1 (4)a=10;b=10;n=10参数a、b、n对曲线形状的影响:由上面绘制的图形可知:a决定图形的大小,当a为整数时,图形半径大小就是a;b决定图形的旋转角度,图形的形状及大小不变;n决定图形的扇叶数,当n 为奇数时,扇叶数为n,当n为偶数时,扇叶数为2n。
三、结论本次实验用到了曲线绘图、三位曲线绘图的知识,与老师上课的内容一致,让我学的matlab绘图的知识得到了巩固,我还学会了如何使用title、subplot、plot、axis等函数。
在做实验的过程复习了hold on指令是覆盖函数继续绘图的意思。
实验四 MATLAB的绘图

西安邮电大学《Matlab程序设计基础》课内实验报告题目:实验四MATLAB的绘图院系名称:计算机学院专业名称:计算机科学与技术班级:计科1502班内序号:05141107(29)学生姓名:赵阳指导教师:张老师实验四MATLAB的绘图一、实验目的:掌握基本的绘图函数plot。
二、实验内容:1、在同一坐标系下绘制下面三个函数在[0,4pi]的图象。
代码如下:t=0:pi/100:4*pi;y1=t;y2=sqrt(t);y3=4*pi*exp(-0.1*t).*sin(t);plot(t,y1,t,y2,t,y3)2、编写程序,选择合适的步距,绘制下面函数在区间[-6,6]中的图象。
代码如下:x=linspace(-6,6,100);y=[];for x0=xif x0<=0y=[y,sin(x0)];elseif x0<=3y=[y,x0];elsey=[y,-x0+6];endendplot(x,y)3、用compass函数画下面相量图ua=1;ub=cos(-2*pi/3)+sin(-2*pi/3)*i;uc=cos(2*pi/3)+sin(2*pi/3)*i;compass([ua,ub,uc,ua-ub,ub-uc,uc-ua])代码如下:ua=1;ub=cos(-2*pi/3)+sin(-2*pi/3)*i;uc=cos(2*pi/3)+sin(2*pi/3)*i;compass([ua,ub,uc,ua-ub,ub-uc,uc-ua])4、三维空间曲线绘制z=0:0.1:4*pi;x=cos(z);y=sin(z);plot3(x,y,z)代码如下:z=0:0.1:4*pi;x=cos(z);y=sin(z);plot3(x,y,z)5、用mesh或surf函数,绘制下面方程所表示的三维空间曲面,x和y的取值范围设为[-3,3]。
代码如下:[x,y]=meshgrid(-3:0.5:3);z=-x^2/10+y^2/10;mesh(x,y,z)三、思考题在同一坐标系下,用不同颜色和线型绘制以下两个函数在tÎ[-2p,2p]范围内的图象。
matlab实验4_循环结构程序设计_参考解答

高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
clear all; close all; clc; y=0; n=1; while y<3
y=y+1/(2*n-1); n=n+1; end n=n-1; y=y-1/(2*n-1) n=n-1
运行结果:
y= 2.9944
x1=a/(b+x0); y=abs(x1-x0); x0=x1;
MATLAB 语言
3
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
n=n+1; end x1 r1=(-b+sqrt(b^2+4*a))/2 r2=(-b-sqrt(b^2+4*a))/2
clear all; close all; clc; prime=[]; for n=2:49
x=n*(n+1)-1; signx=0; for k=2:sqrt(x)
MATLAB 语言
5
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
根据
π2 6
=1 12
+
1 22
+1 32
+"+
1 n2
,求 π 的近似值。当
n
分别取
100、1000、10000
时,
结果是多少?
要求:分别用循环结构和向量运算(使用 sum 函数)来实现。 答:程序设计:
(1) 循环结构
实验四 用MATLAB求解状态空间模型

实验四 用MATLAB 求解状态空间模型1、实验设备MATLAB 软件2、实验目的① 学习线性定常连续系统的状态空间模型求解、掌握MATLAB 中关于求解该模型的主要函数;② 通过编程、上机调试,进行求解。
3、实验原理说明Matlab 提供了非常丰富的线性定常连续系统的状态空间模型求解(即系统运动轨迹的计算)的功能,主要的函数有:初始状态响应函数initial()、阶跃响应函数step()以及可计算任意输入的系统响应数值计算函数lsim()和符号计算函数sym_lsim()。
数值计算问题可由基本的Matlab 函数完成,符号计算问题则需要用到Matlab 的符号工具箱。
4、实验步骤① 根据所给状态空间模型,依据线性定常连续系统状态方程的解理论,采用MATLAB 编程。
② 在MATLAB 界面下调试程序,并检查是否运行正确。
习题1:试在Matlab 中计算如下系统在[0,5s]的初始状态响应,并求解初始状态响应表达式。
Matlab 程序如下:A=[0 1; -2 -3];B=[]; C=[]; D=[];x0=[1; 2];sys=ss(A,B,C,D);[y,t,x]=initial(sys,x0,0:5);plot(t,x)0011232⎡⎤⎡⎤==⎢⎥⎢⎥--⎣⎦⎣⎦x x x习题2:试在Matlab 中计算如下系统在[0,10s]内周期为3s 的单位方波输入下的状态响应。
并计算该系统的单位阶跃状态响应表达式。
Matlab 程序如下:A=[0 1; -2 -3];B=[0; 1]; C=[]; D=[];x0=[1; 2];sys=ss(A,B,C,D);[u t]=gensig('square',3,10,0.1)0011232⎡⎤⎡⎤==⎢⎥⎢⎥--⎣⎦⎣⎦x x x[y,t,x] = lsim(sys,u,t,x0)plot(t,u,t,x);(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。
MATLAB实验四

MATLAB实验四MATLAB程序设计试验报告说明:1 做试验前请先预习,并独立完成试验和试验报告。
2 报告解答方式:将MATLAB执行命令和最后运行结果从命令窗口拷贝到每题的题目下面,请将报告解答部分的底纹设置为灰色,以便于批阅。
3 在页眉上写清报告名称,学生姓名,学号,专业以及班级。
3 报告以Word文档书写。
文档命名方式: 学号+姓名+_(下划线)+试验几.doc 如:110400220张三_试验1.doc4 试验报告doc文档以附件形式发送到******************。
凡文档命名不符合规范,或者发送方式不正确,不予登记。
一目的和要求(1)熟练掌握MATLAB的程序设计流程控制结构(2)熟练掌握M文件的结构(3)熟练掌握函数调用和参数传递(4)熟练掌握内联函数的使用(5)了解程序性能剖析窗口二内容和步骤1 (必做)编写M脚本文件,实现:1)从键盘逐个输入学生的某科成绩,计算学生的平均分并输出显示。
2)统计学生成绩分布,其中90分以上为A类,80~89分为B类,70~79分为C类,60~69分为D类,60分以下为E类,统计各类的学生人数,并打印显示。
3)将学生成绩保存到结构数组student. score域和统计成绩分布信息保存数组level中并存作为student. level域,最后把结构数组student保存到score. mat文件中。
(提示:1)成绩输入采用input函数,可采用while循环,提示用户连续输入学生成绩,直到用户输入负数成绩,终止成绩录入。
2)成绩保存可采用save函数)score=0;n=0;sum=0;a=0;b=0;c=0;d=0;e=0;while score>=0if score>=90a=a+1;elseif score>=80elseif score>=70c=c+1;elseif score>=60d=d+1;elsee=e+1;ends um=sum+score;n=n+1;score=input('score:');endaverage=sum/(n-1)fprintf(' A类人数:%d',a)fprintf(' B类人数:%d',c)fprintf(' C类人数:%d',c)fprintf(' D类人数:%d',d)fprintf(' E类人数:%d',e-1)2(必做)有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13... 采用循环迭代求出这个数列的前n项之和。
matlab实验四

实验四曲线绘图【实验目的】1.了解曲线的几种表示方法。
2.学习掌握MATLAB软件有关的命令。
【实验内容】绘制下列三种曲线:1.以直角坐标方程x,=表示的正、余弦线。
sin=y cosyxt=0:0.1:10;y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'b--');x=[1.7*pi;1.6*pi];y=[-0.3;0.8];s=['sin(t)';'cos(t)'];text(x,y,s);title('正弦和余弦曲线');legend('正弦','余弦')xlabel('时间t'),ylabel('正弦、余弦')gridaxis square2.以参数方程]y=tx表示的平面曲线(单位圆)。
∈=t t2,0[,sin,cosπ>> t=0:0.1:2*pi;>> x=cos(t);>> y=sin(t);>> plot(x,y)>> title('x=cos(t),y=sin(t)');>>axis square3. 以参数方程]20,0[,,sin 2,2cos2.02.0∈===--t t z t e y t e x t t ππ表示的空间曲线。
>> t=0:0.1:20; >> x=exp(-0.2*t).*cos(pi/2*t);>>y=pi/2*exp(-0.2*t).*sin(t);>>z=t;>>plot3(x,y,z);>> xlabel('x 轴')>> ylabel('y 轴')>> zlabel('z 轴')>> title(' x=exp(-0.2*t)*cos(pi/2*t),y=pi/2*exp(-0.2*t)*sin(t),z=t, t ∈[0:20]')4. 以极坐标方程]2,0[,1),cos 1(πϕϕ∈=+=a a r 表示的心脏线。
实验四 用Matlab求解方程

均可以得到实根 2.0946.
温州大学城市学院 1. fzero 的基本用法 [x, fv, ef, out, jac]=fsolve(@F, x0, opt, P1, P2,…)
2 2 x1 + x2 = 4 例 11 求方程组 2 的解. 2 x1 − x2 = 1
Matlab 编程代码: 先建立文件 fangchz.m function y=fangchz(x,a,b,c,d) y(1)=x(1)^2+a*x(2)^2-b; %当a=1,b=4时为第1个方程 y(2)= x(1)^2+c*x(2)^2-d; %当c=-1,d=1时为第2个方程 输入程序: x0=[2,2];
3 2 p 1 = x + 21 x + 20 x 例 12 计算多项式
的根以及由多项式的根得出系数. >> p1=[1 21 20 0]; >> roots(p1) >> poly([0;-20;-1]) % 计算多项式的根 % 计算多项式的系数
温州大学城市学院 例 13 求下列方程的根 f = function y=fun(x)
例 4 求函数 f=3x2+4x+5 对变量 x 的一阶导数.
温州大学城市学院 (3) 积分 格式: int (f, t, a, b) 功能: 求函数 f 对变量 t 从 a 到 b 的定积分. 例 4 求函数 f=ax2+bx+c 对变量 x 的不定积分. >> syms a b c x >> f=a*x^2+b*x+c >> int(f) 求函数 f 对变量 x 从 1 到 5 的定积分, 命令为 >> int(f,1,5)
MATLAB实验四 选择结构和循环结构程序设计

实验四 选择结构和循环结构程序设计实验目的:1.掌握建立和执行M 文件的方法 2.掌握利用if 语句实现选择结构的方法 3.掌握利用switch 语句实现多分支选择结构的方法 4.掌握利用for 语句实现循环结构的方法 5.掌握利用while 语句实现循环结构的方法 6. 熟悉利用向量运算来代替循环操作的方法实验内容:1. 求分段函数的值。
3及2其它,1x 且50,653且0,6222≠⎪⎩⎪⎨⎧--≠<≤+--≠<-+=x x x x x x x x x x y用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。
x=input('请输入x 的值:x=');if(x<0&x~=-3)y=x.*x+x-6elseif(x>=0&x<5&x~=2&x~=3)y=x.*x-5.*x+6elsey=x.*x-x-1end请输入x 的值:x=[-5.0 -3.0 1.0 2.0 2.5 3.0 5.0]y =29.0000 11.0000 -1.0000 1.0000 2.7500 5.0000 19.00002. 输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。
其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。
要求:a) 分别用if 语句和switch 语句实现。
If 语句x=input('请输入分数:')if(x<=100&x>=90)disp('A')elseif(x>=80&x<=89)disp('B')elseif(x>=70&x<=79)disp('C')elseif(x>=60&x<=69)disp('D')elseif(x<60)disp('E')end请输入分数:95x =95Aswitch语句c=input('请输入分数:')switch ccase num2cell(90:100)disp('A')case num2cell(80:89)disp('B')case num2cell(70:79)disp('C')case num2cell(60:69)disp('D')case num2cell(0:59)disp('E')end请输入分数:83c =83Bb)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
Matlab 实验四

实验四姓名:XX 学号:XXXXXXXXXX7.1创建一个正弦信号的仿真模型。
创建模型如下:运行结果:7.2在工作空间计算变量t 和y,将其运算的结果作为系统的输入。
在Command Window中输入:>> t=0:0.1:10;y=sin(t);t=t';y=y';并创建如下模型:运行结果:7.3建立二阶系统的仿真模型。
输入信号源使用阶跃信号,系统使用开环传递函数,接受模块使用示波器来构成模型。
方法一:构建模型如下所示:运行结果:方法二:构建模型如下所示:仿真结果如下:7.4控制部分为离散环节,被控对象为两个连续环节,其中一个有反馈环,反馈环引入了零阶保持器,输入为阶跃信号。
构建模型如下:调整T、Tk d(t)、y(t)的波形变化:T=Tk=0.1 (a) d(k)示波器显示y(t)示波器显示T=0.6 Tk=0.1 (a) d(k)示波器显示y(t)示波器显示T=0.6 Tk=0.6 (a) d(k)示波器显示y(t)示波器显示7.5将例7.4 中的模块结构参数用变量表示,结构图如图7.35所示。
构建模型如下:在Command Window中输入如下指令:T=0.1;Tk=0.6;k=0.03;zt1=1.44;zt2=-1.26;zt3=1;zt4=-1;tf11=6.7;tf12=0.1;tf13=1;tf21=1;tf22=3;tf23=1;运行结果:7.6打开【例7.4】建立的模型,将控制对象中的第一个连续环节中的反馈环建立为一个子系统。
创建子函数后:打开子函数如下:7.7 在【例7.6】的基础上建立新子系统,将【例7.6】模型的控制对象中的第一个对象环节整个作为一个子系统。
构建系统如下:打开子系如下:7.8建立一个用使能子系统控制正弦信号为半波整流信号的模型。
构建模型如下:运行结果如下:7.9建立一个用触发子系统控制正弦信号输出阶梯波形的模型。
构建如下模型:运行结果如下:创建模型如下:创建子系统后如下:封装之后系统为:打开二阶系统其参数输入对话框如下:。
实验四 matlab三维绘图

实验四 matlab三维绘图一、实验目的1、掌握matlab三维绘图的基本原则。
2、掌握绘制matlab三维绘图的基本方法。
二、实验内容1、三维线图的基本指令调用格式:plot3(x,y,z) —— x,y,z是长度相同的向量plot3(X,Y,Z) —— X,Y,Z是维数相同的矩阵plot3(x1,y1,z1,'s1', x2,y2,z2,'s2', …) 例5.3-1】三维曲线绘图。
体会三维曲线的参数方程;线型、点形和图例绘制。
2、三维曲面/网线(surf曲面mesh 网线图)可视化的基本过程1、确定自变量x,y的取值范围和取值间隔。
2、使用meshgrid指令构成x-y 平面的自变量“格点”矩阵[X,Y]=meshgrid(x,y)3、计算在自变量采样“格点”上的函数值z=f(x,y) —根据X,Y表达出z题目1、绘制z=x2+y2的三维网线图形。
x,y取值范围为-5:5;题目2、分别使用mesh,surf,stem3,plot3指令绘制z=x2+y2三维图形,体会指令的变化。
可以使用figure指令以及二维图形实验中的标注指令Title、xlable 、ylable 、text 、gtext 、grid on(off) 、legend 、axis3、曲面/网线图的精细修饰1)视角控制view绘制z=x2+y2的曲面图形结合subplot指令或figure指令,体会(-15,60);(-90,0);(0,90)以及缺省角度下的效果,并对标题以及x,y轴进行标注2)色图colormap,浓淡处理shading(p.210)运行例5. 3-33)图形的透视运行例5. 3-6体会使用hidden off 以及不用消隐指令的差别4、影片动画运行例5. 4-6,修改rotate指令参数,运行绕x,y,z轴旋转修改movie指令参数,增减速度,增减运行时间。
MATLAB实验四:MATLAB程序设计 参考答案

function y=f(x) y=(x^3-2*x^2+x-6.3)/(x^2+0.05*x-3.14)
河南财经政法大学数学与信息科学学院
6
实验报告
f(1)*f(2)+f(3)
function f=f(a,b,c) f=g(a)*g(b)+g(c)^2; function g=g(x) g=(x^3-2*x^2+x-6.3)/(x^2+0.05*x-3.14);
a=rand(1,100); [b,c]=sort(a); index=c(1); i=1; while i<=7 if i==8 disp('You Lost!'); i=i+1; else d=input('please input the number you guess:'); if d>index disp('High'); elseif d<index disp('Low'); elseif d==index disp('You won!'); i=9;
syms i j k l n i=1;k=0; n=input('Input n:'); for j=1:n i=i*j; k=k+j; end fprintf('%d!=%d \n Sum(1,...,%d)=%d\n',n,i,n,k);
4、用 while-end 循环语句求不超过 1000 的偶数之和,并求显示出最大值。 s=0,n=0; while s<=1000 n=n+2; s=s+n; if s>1000 break end
实验四基于MATLAB的根轨迹绘制与性能分析

实验四基于MATLAB的根轨迹绘制与性能分析一、实验目的1.了解根轨迹的概念和作用;2.学习使用MATLAB绘制根轨迹;3.通过根轨迹进行系统性能分析。
二、实验原理1.根轨迹的概念根轨迹是指随着系统参数变化,系统极点随参数变化所经过的连续点的轨迹。
根轨迹可以用来表示系统的动态性能,并可以用来分析系统的稳定性、抗干扰能力以及动态响应等。
2.根轨迹的绘制方法根轨迹的绘制方法主要有以下几步:(1)确定系统传递函数的开环极点和零点;(2)根据系统传递函数的特征方程确定根轨迹起始点和抵达无穷远点的分支数量;(3)确定分支的方向;(4)计算根轨迹抵达无穷远点的角度;(5)计算根轨迹与实轴的交点。
三、实验步骤1.准备工作(1)安装MATLAB软件,并确保已安装了Control System Toolbox;(2)准备所需绘制根轨迹的系统传递函数。
2.绘制根轨迹(1)在MATLAB命令窗口中输入以下命令,定义系统传递函数:G = tf([1],[1 2 3]);(2)输入以下命令,绘制系统的根轨迹:rlocus(G);3.性能分析(1)根据根轨迹的形状,可以判断系统的稳定性。
如果根轨迹与实轴相交的次数为奇数,则系统是不稳定的。
(2)根据根轨迹的形状以及相交点的位置,可以判断系统的过渡过程的振荡性和阻尼性。
(3)根据根轨迹抵达无穷远点时的角度,可以判断系统的相对稳定性。
角度接近0或180度时,系统相对稳定。
(4)根据根轨迹抵达实轴的位置,可以判断系统的动态性能。
抵达实轴的位置越远离原点,系统的动态响应越快。
四、实验结果分析通过上述步骤,我们可以得到系统的根轨迹图,并根据根轨迹图进行性能分析。
根据根轨迹的形状、交点位置、角度以及抵达实轴的位置,我们可以判断系统的稳定性、过渡过程的振荡性和阻尼性、相对稳定性以及动态响应速度。
根轨迹分析可以帮助我们设计和优化系统的控制器,从而改善系统的性能。
五、实验总结本实验通过MATLAB绘制根轨迹,并利用根轨迹进行系统性能分析。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Mstg函数
function st=mstg
N=800
Fs=10000;T=1/Fs;Tp=N*T;
t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
fc1=Fs/10;
fm1=fc1/10;
fc2=Fs/20;
fm2=fc2/10;
fc3=Fs/40;
fm3=fc3/10;
xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t);
xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t);
xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t);
st=xt1+xt2+xt3;
fxt=fft(st,N);
subplot(3,1,1)
plot(t,st);grid;xlabel('t/s');ylabel('s(t)');
axis([0,Tp/8,min(st),max(st)]);title('(a) s(t)的波形') subplot(3,1,2)
stem(f,abs(fxt)/max(abs(fxt)),'.');grid;title('(b) s(t)的频谱') axis([0,Fs/5,0,1.2]);
xlabel('f/Hz');ylabel('幅度')
调幅信号y1(n)
fp1=300;fs1=400;Fs=10000;T=1/Fs;
wp1=2*fp1/Fs;ws1=2*fs1/Fs;
rp=0.1;rs=60;
[N,wn1]=ellipord(wp1,ws1,rp,rs);
[b1,a1]=ellip(N,rp,rs,wn1);
st1=mstg
y1=filter(b1,a1,st1);
[H,W]=freqz(b1,a1);
m=abs(H);
figure(2);subplot(3,1,1)
plot(W/pi,20*log10(m/max(m)));grid;xlabel('频率(Hz)');ylabel('幅度(dB)');title('(c) H1(z)的幅频特性')
subplot(3,1,2)
N=800;Tp=N*T;t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
plot(t,y1);grid;xlabel('t/s');ylabel('y1');
axis([0,Tp/8,min(y1),max(y1)]);title('(d) y1的波形')
Y1=fft(y1)
k=0:N-1;
subplot(3,1,3)
plot(f,abs(Y1));
stem(f,abs(Y1)/max(abs(Y1)),'.');grid;title('(e) y1的频谱')
axis([0,Fs/5,0,1.2]);
xlabel('f/Hz');ylabel('幅度')
调幅信号y2(n)
fp2=460,fpu=540;fs2=400,fsu=600;Fs=10000;T=1/Fs;
wp2=2*[fp2,fpu]/Fs;ws2=2*[fs2,fsu]/Fs;
rp=0.1;rs=60;
[N,wn2]=ellipord(wp2,ws2,rp,rs);
[b2,a2]=ellip(N,rp,rs,wn2);
st2=mstg
y2=filter(b2,a2,st2);
[H,W]=freqz(b2,a2);
m=abs(H);
figure(2);subplot(3,1,1)
plot(W/pi,20*log10(m/max(m)));grid;xlabel('频率(kHz)');ylabel('幅度(dB)');title('(c2) H2(z)的幅频特性')
subplot(3,1,2)
N=800;Tp=N*T;t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
plot(t,y2);grid;xlabel('t/s');ylabel('y2');
axis([0,Tp/8,min(y2),max(y2)]);title('(d2) y2的波形')
Y2=fft(y2)
k=0:N-1;
subplot(3,1,3)
plot(f,abs(Y2));
stem(f,abs(Y2)/max(abs(Y2)),'.');grid;title('(e2) y2的频谱')
axis([0,Fs/5,0,1.2]);
xlabel('f/Hz');ylabel('幅度')
调幅信号y3(n)
fp3=1150;fs3=700;Fs=10000;T=1/Fs;
wp3=2*fp3/Fs;ws3=2*fs3/Fs;
rp=0.1;rs=60;
[N,wn3]=ellipord(wp3,ws3,rp,rs);
[b3,a3]=ellip(N,rp,rs,wn3,'high');
st3=mstg
y3=filter(b3,a3,st3);
[H,W]=freqz(b3,a3);
m=abs(H);
figure(2);subplot(3,1,1)
plot(W/pi,20*log10(m/max(m)));grid;xlabel('频率(Hz)');ylabel('幅度
(dB)');title('(c3) H3(z)的幅频特性')
subplot(3,1,2)
N=800;Tp=N*T;t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;
plot(t,y3);grid;xlabel('t/s');ylabel('y3');
axis([0,Tp/8,min(y3),max(y3)]);title('(d3) y3的波形')
Y3=fft(y3)
k=0:N-1;
subplot(3,1,3)
plot(f,abs(Y3));
stem(f,abs(Y3)/max(abs(Y3)),'.');grid;title('(e3) y3的频谱')
axis([0,Fs/5,0,1.2]);
xlabel('f/Hz');ylabel('幅度')。