MATLAB实验及程序

合集下载

MATLAB实验报告(1-4)

MATLAB实验报告(1-4)

信号与系统MATLAB第一次实验报告一、实验目的1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。

2.学会运用MATLAB表示常用连续时间信号的方法3.观察并熟悉一些信号的波形和特性。

4.学会运用MATLAB进行连续信号时移、反折和尺度变换。

5.学会运用MATLAB进行连续时间微分、积分运算。

6.学会运用MATLAB进行连续信号相加、相乘运算。

7.学会运用MATLAB进行连续信号的奇偶分解。

二、实验任务将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。

三、实验内容1.MATLAB软件基本运算入门。

1). MATLAB软件的数值计算:算数运算向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。

2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。

矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开;矩阵的不同行之间必须用分号”;”或者ENTER分开。

2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。

3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。

举例:计算一个函数并绘制出在对应区间上对应的值。

2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名”2.MATLAB软件简单二维图形绘制1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y)2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表示第p个区域,表达为subplot(mnp)或者subplot(m,n,p)3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin])4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’)5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’)6).输出:grid on举例1:举例2:3.matlab程序流程控制1).for循环:for循环变量=初值:增量:终值循环体End2).while循环结构:while 逻辑表达式循环体End3).If分支:(单分支表达式)if 逻辑表达式程序模块End(多分支结构的语法格式)if 逻辑表达式1程序模块1Else if 逻辑表达式2程序模块2…else 程序模块nEnd4).switch分支结构Switch 表达式Case 常量1程序模块1Case 常量2程序模块2……Otherwise 程序模块nEnd4.典型信号的MATLAB表示1).实指数信号:y=k*exp(a*t)举例:2).正弦信号:y=k*sin(w*t+phi)3).复指数信号:举例:4).抽样信号5).矩形脉冲信号:y=square(t,DUTY) (width默认为1)6).三角波脉冲信号:y=tripuls(t,width,skew)(skew的取值在-1~+1之间,若skew取值为0则对称)周期三角波信号或锯齿波:Y=sawtooth(t,width)5.单位阶跃信号的MATLAB表示6.信号的时移、反折和尺度变换:Xl=fliplr(x)实现信号的反折7.连续时间信号的微分和积分运算1).连续时间信号的微分运算:语句格式:d iff(function,’variable’,n)Function:需要进行求导运算的函数,variable:求导运算的独立变量,n:求导阶数2).连续时间信号的积分运算:语句格式:int(function,’variable’,a,b)Function:被积函数variable:积分变量a:积分下限b:积分上限(a&b默认是不定积分)8.信号的相加与相乘运算9.信号的奇偶分解四、小结这一次实验让我能够教熟悉的使用这个软件,并且能够输入简单的语句并输出相应的结果和波形图,也在一定程度上巩固了c语言的一些语法。

高等数学:MATLAB实验

高等数学:MATLAB实验
以上两种格式中的x、y都可以是表达式.plot是绘制二维 曲线的基本函数,但在使用 此函数之前,需先定义曲线上每一 点的x及y的坐标.
MATLAB实验
2.fplot绘图命令 fplot绘图命令专门用于绘制一元函数曲线,格式为:
fplot('fun',[a,b]) 用于绘制区间[a,b]上的函数y=fun的图像.
MATLAB实验 【实验内容】
MATLAB实验
由此可知,函数在点x=3处的二阶导数为6,所以f(3)=3为 极小值;函数在点x= 1处的二阶导数为-6,所以f(1)=7为极大值.
MATLAB实验
例12-10 假设某种商品的需求量q 是单价p(单位:元)的函 数q=12000-80p,商 品的总成本C 是需求量q 的函数 C=25000+50q.每单位商品需要纳税2元,试求使销售 利润达 到最大的商品单价和最大利润额.
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验 实验九 用 MATLAB求解二重积分
【实验目的】 熟悉LAB中的int命令,会用int命令求解简单的二重积分.
MATLAB实验
【实验M步A骤T】 由于二重积分可以化成二次积分来进行计算,因此只要
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
实验七 应用 MATLAB绘制三维曲线图
【实验目的】 (1)熟悉 MATLAB软件的绘图功能; (2)熟悉常见空间曲线的作图方法.
【实验要求】 (1)掌握 MATLAB中绘图命令plot3和 mesh的使用; (2)会用plot3和 mesh函数绘制出某区间的三维曲线,线型

MATLAB实验程序

MATLAB实验程序

实验一要求: 查看matlab 的版本代码:version结果:ans =7.1.0.246 (R14) Service Pack 31.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。

(1)z 1=2185sin 2e+z1=(2*sin(85*pi/180))/(1+exp(2))z =0.2375(2)z 2=⎥⎦⎤⎢⎣⎡+=++545.0-i 212其中),1ln(212x x x x=[2,1+2*i;-0.45,5]x =2.0000 1.0000 + 2.0000i-0.4500 5.0000>> z2=1/2*log(x+sqrt(1+x*x))z2 =0.7114 - 0.0253i 0.8968 + 0.3658i0.2139 + 0.9343i 1.1541 - 0.0044i(3)z 3=23.0ln )3.0sin(23.03.0a a e e aa +++--,a=-3.0,-2.9,-2.8, …3.0 提示:用冒号表达式生成a 向量,求各点的函数值时用点乘计算。

a=[-3.0:0.1:3.0]z3=1/2.*((exp(0.3.*a)-exp(-0.3.*a))).*sin(a+0.3)+log((0.3+a).*1/2)(4)z 4=⎪⎩⎪⎨⎧<≤+-<≤-<≤32,12,21,110,222t t t t t t t 其中t=0:0.5:2.5提示:用逻辑表达式求分段函数值。

t=0:0.5:2.5t =0 0.5000 1.0000 1.5000 2.0000 2.5000>> z4=t.^2.*(t>=0&t<1)+(t.^2-1).*(t>=1&t<2)+(t.^2-2*t+1).*(t>=2&t<3) z4 =0 0.2500 0 1.2500 1.0000 2.25002.已知:A=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡7653877344-3412,B=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡72-3321-31求下列表达式的值:(1)A+6*B和A-B+I(其中I为单位矩阵) A=[12,34,-4;34,7,87;3,65,7]A =12 34 -434 7 873 65 7>> B=[1,3,-1;2,0,3;3,-2,7]B =1 3 -12 0 33 -2 7>> A+6*Bans =18 52 -1046 7 10521 53 49>> I=eye(size(A))I =1 0 00 1 00 0 1>> A-B+Ians =12 31 -332 8 840 67 1(2)A*B和A.*BA*Bans =68 44 62309 -72 596154 -5 241>> A.*Bans =12 102 468 0 2619 -130 49(3)A^3和A.^3A^3ans =37226 233824 48604247370 149188 60076678688 454142 118820>> A.^3ans =1728 39304 -6439304 343 65850327 274625 343(4)A/B和B\AA/Bans =16.4000 -13.6000 7.600035.8000 -76.2000 50.200067.0000 -134.0000 68.0000>> B/Aans =0.1027 -0.0062 -0.00690.0617 0.0403 -0.03660.0205 0.0855 -0.0507(5)[A,B]和[A([1,3],:);B^2][A,B]ans =12 34 -4 1 3 -134 7 87 2 0 33 65 7 3 -2 7>> [A([1,3],:);B^2]ans =12 34 -43 65 74 5 111 0 1920 -5 403.设有矩阵A和BA=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡25242322212019181716151413121110987654321,B=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡111340794-23096-171603 (1) 求它们的乘积C 。

MATLAB全部实验及答案

MATLAB全部实验及答案

MATLAB全部实验及答案实验一、MATLAB基本操作实验内容及步骤1、命令窗口的简单使用(1)简单矩阵的输入(2)求[12+2×(7-4)]÷32的算术运算结果2、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*B?A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2?(4)设a=[1 -2 3;4 5 -4;5 -6 7]请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全下标的形式),并将其单下标转换成全下标。

clear,clca=[1 -2 3;4 5 -4;5 -6 7];[x,y]=find(a<0);c=[];for i=1:length(x)c(i,1)=a(x(i),y(i));c(i,2)=x(i);c(i,3)=y(i);c(i,4)=(y(i)-1)*size(a,2)+x(i);endc(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那个是虚数矩阵,后面那个出错(6)请写出完成下列计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?a^2= 22 16 1625 26 2326 24 28a.^2=1 4 99 16 425 4 9(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) 转化为列向量(8)使用三元组方法,创建下列稀疏矩阵2 0 8 00 0 0 10 4 0 06 0 0 0方法一:clear,clcdata=[2 8 1 4 6];ir=[1 1 2 3 4 ];jc=[1 3 4 2 1];s=sparse(ir,jc,data,4,4);full(s)方法二:不用三元组法clear,clca=zeros(4,4);a(1,[1,3])=[2,8];a(2,4)=1;a(3,2)=4;a(4,1)=6;a(9) 写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B3、 已知⎪⎭⎫ ⎝⎛+⋅=-334sin 234πt e y t 若需要计算t ∈[-1,1],取间隔为0.01,试计算出相对应的y 值。

MATLAB实验教程

MATLAB实验教程

实验一1.实现单位采样序列,单位阶跃序列,矩形序列,并用图形显示。

写出程序及输出图形。

代码:(1)单位采样序列x=-10:10;y=[zeros(1,10),1,zeros(1,10)];figure(3);stem(x,y);axis([ -10, 10,0,2]);(2)单位阶跃序列x=-10:10;y=[zeros(1,10),1,ones(1,10)];figure(4);stem(x,y);axis([ -10, 10,0,2]);(3)矩形序列x=-10:10;y=[zeros(1,10),1,ones(1,5),zeros(1,5)];figure(4);stem(x,y);axis([ -10, 10,0,2]);图:Figure 8.5.1. 1 单位采样序列Figure 8.5.1. 2 单位阶跃序列Figure 8.5.1. 3 矩形序列实验心得:实验二1.模拟信号x(t)=2sin(4*pi*t)+5cos(8*pi*t),以t=0.01n(n=0:N-1)进行采样,求:(1)N=40点FFT的幅度频谱,从图中能否观察出信号的2个频谱分量?(2)提高采样点数,如N=128,再求该信号的频谱幅度,此时幅度频谱发生了什么变化?代码:N=40;n=0:N-1;t=0.01*n;x=2*sin(4*pi*t)+5*cos(8*pi*t);k=0:N/2;w=2*pi/N*k;X=fft(x,N);magX=abs(X(1:N/2+1));subplot(2,1,1);stem(n,x,'.');title('signal x(n)');subplot(2,1,2);plot(w/pi,magX);title('FFT N=40');xlabel('f (unit :pi)');ylabel('|X|');gridN=128;n=0:N-1;t=0.01*n;x=2*sin(4*pi*t)+5*cos(8*pi*t);k=0:N/2;w=2*pi/N*k;X=fft(x,N);magX=abs(X(1:N/2+1));subplot(2,1,1);stem(n,x,'.');title('signal x(n)');subplot(2,1,2);plot(w/pi,magX);title('FFT N=128');xlabel('f (unit :pi)');ylabel('|X|');grid图:510152025303540signal x(n)50100FFT N=40Figure 8.2.1. 1 N=40 的FFT 频谱图20406080100120140signal x(n)0.10.20.30.40.50.60.70.80.91010*******400FFT N=128f (unit :pi)|X |Figure 8.2.1. 2 N=128 的FFT 频谱图实验心得: 实验六双线性变换法 代码%Filter clc;%clear;%digital filter specifications; lfp=100; lfs=300;ws=2*pi*lfs;wp=2*pi*lfp;Rp=1;Rs=25;fs=1000;[n,Wn]=buttord(wp,ws,Rp,Rs,'s');[z,p,k] = buttap(n);[b,a]=zp2tf(z,p,k);x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2 ,0,0,-2,-2,-2,-2,0];Y=filter(b,a,x);N=56;n=0:N-1;subplot(2,1,1);plot(n,x);subplot(2,1,2);plot(n,Y);[bt,at]=lp2lp(b,a,Wn);[bbs,abs]=bilinear(bt,at,fs);[dB,mag,pha,grd,w]=freqz_m(bbs,abs);Ripple=10^(-Rp/20);Attn=10^(-Rs/20);%»-ͼsubplot(2,2,1);plot(w/pi,mag);title('·ùƵÏìÓ¦');xlabel('¹éÒ»»¯ÆµÂÊ');axis([0,1,0,1.1]);set(gca,'XTickMode','manual','XTick',[0,2*lfp/fs,2*lfs/fs,1]);set(gca,'XTickMode','manual','XTick',[Attn,Ripple,1]);grid;subplot(2,2,2);plot(w/pi,pha/pi);title('ÏàƵÏìÓ¦');xlabel('¹éÒ»»¯ÆµÂÊ');ylabel('µ¥Î»:pi');axis([0,1,-1.1,1.1]);set(gca,'XTickMode','manual','XTick',[0,2*lfp/fs,2*lfs/fs,1]);set(gca,'XTickMode','manual','XTick',[-1,-0.5,0,0.5,1]);grid;subplot(2,2,3);plot(w/pi,dB,'red');title('·ùƵÏìÓ¦:dB');xlabel('¹éÒ»»¯ÆµÂÊ');axis([0,1,-60,5]);set(gca,'XTickMode','manual','XTick',[0,2*lfp/fs,2*lfs/fs,1]);set(gca,'XTickMode','manual','XTick',[-60,-40,-20,5]);grid;subplot(2,2,4); plot(w/pi,grd,'red'); title('ȺʱÑÓ'); xlabel('¹éÒ»»¯ÆµÂÊ') axis([0,1,0,6]);set(gca,'XtickMode','manual','Xtick',[0,2*lfp/fs,2*lfs/fs,1]); set(gca,'YtickMode','manual','Ytick',[0,1,2,4,6]); grid;%²ÉÓÃÊý×ÖÓòƵÂʱ任·¨Éè¼ÆÊý×Ö´ø×èÂ˲¨Æ÷(using bilinear and Chebyshev-I)x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0]; Y=filter(b,a,x); N=56;n=0:N-1;figure(2)subplot(2,1,1);plot(n,x);grid on ; subplot(2,1,2);plot(n,Y);grid on ;图双线性变换法设计的滤波器特性0.05620.891310.20.40.60.81幅频响应归一化频率00.51-1-0.500.51相频响应归一化频率单位:p i-60-40-200幅频响应:dB归一化频率0.20.6101246群时延归一化频率原始心电图信号和经过滤波后的心电图信号0102030405060-100-5050102030405060-30-20-1001020实验心得:脉冲响应不变法代码:%Âö³åÏìÓ¦²»±ä·¨% digital filter specifications: lfp=100; lfs=300; ws=2*pi*lfs; wp=2*pi*lfp; Rp=1; Rs=25; fs=1000;%Êý×ÖÖ¸±êµ½Ä£ÄâÖ¸±êµÄ±ä»¯¡ªË«ÏßÐԱ任 %¼ÆËã½×ÊýºÍ½ØֹƵÂÊ[n,Wn]=buttord(wp,ws,Rp,Rs,'s'); %Éè¼ÆÄ£ÄâµÍͨÔ-ÐÍ [z,p,k]=buttap(n); [b,a]=zp2tf(z,p,k);x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-69,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];Y=filter(b,a,x);%ÓÉÄ£ÄâµÍͨÔ-Ð;-ƵÂʱ任»ñµÃÄ£ÄâµÍͨ¡¢¸ßͨ¡¢´øͨ»ò´ø×èÂ˲¨Æ÷[bt,at]=lp2lp(b,a,Wn);%ÀûÓÃÂö³åÏìÓ¦²»±ä·¨»òË«ÏßÐÔ²»±ä·¨£¬ÊµÏÖÄ£ÄâÂ˲¨Æ÷µ½Êý×ÖÂ˲¨Æ÷µÄÓ³Éä[bbs,abs]=impinvar(bt,at,fs);%Â˲¨Æ÷ƵÂÊÏìÓ¦[dB,mag,pha,grd,w]=freqz_m(bbs,abs);Ripple=10^(-Rp/20);Attn=10^(-Rs/20);%»-ͼsubplot(2,2,1);plot(w/pi,mag) %Êý×ÖÂ˲¨Æ÷·ù¶ÈÏìÓ¦title('·ùƵÏìÓ¦');xlabel('¹éÒ»»¯ÆµÂÊ');axis([0,1,0,1.1]);set(gca,'XTickMode','manual','XTick',[0,2*lfp/fs,2*lfs/fs,1]);set(gca,'YTickMode','manual','YTick',[Attn,Ripple,1]);grid;subplot(2,2,2);plot(w/pi,pha/pi); %Êý×ÖÂ˲¨Æ÷ÏàλÏìÓ¦title('ÏàƵÏìÓ¦');xlabel('¹éÒ»»¯ÆµÂÊ');ylabel('µ¥Î»£ºpi');axis([0,1,-1.1,1.1]);set(gca,'XTickMode','manual','XTick',[0,2*lfp/fs,2*lfs/fs,1]);set(gca,'YTickMode','manual','YTick',[-1,-0.5,0,0.5,1]);grid;subplot(2,2,3);plot(w/pi,dB,'red');%Êý×ÖÂ˲¨Æ÷·ù¶ÈÏìÓ¦£¨dB£©title('·ùƵÏìÓ¦£ºdB');xlabel('¹éÒ»»¯ÆµÂÊ');axis([0,1,-60,5]);set(gca,'XTickMode','manual','XTick',[0,2*lfp/fs,2*lfs/fs,1]);set(gca,'YTickMode','manual','YTick',[-60,-40,-20,5]);grid;subplot(2,2,4);plot(w/pi,grd,'red');%Êý×ÖÂ˲¨Æ÷ÑÓʱtitle('ȺÑÓʱ');xlabel('¹éÒ»»¯ÆµÂÊ');axis([0,1,0,6]);set(gca,'XTickMode','manual','XTick',[0,2*lfp/fs,2*lfs/fs,1]);set(gca,'YTickMode','manual','YTick',[0,1,2,4,6]);grid;%²ÉÓÃÊý×ÖÓòƵÂʱ任·¨Éè¼ÆÊý×Ö´ø×èÂ˲¨Æ÷£¨using bilinear and Chebyshev-1£©x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,2,-4,8,12,12,10,6,6,6,4,0,0,0,0,-2,-4,0,0,0,-2,-2,0 ,0,-2,-2,-2,-2,0]Y =filter(b,a,x);N=56;n=0:N-1;figure(2)subplot(2,1,1);plot(n,x);grid on; subplot(2,1,2);plot(n,Y);grid on;子函数:function[dB,mag,pha,grd,w]=freqz_m(b,a)%computation of s-domain frequency response:modified version%---------------------------------------------------------%[dB,mag,pha,grd,w]=freqz_m(b,a);% dB=Relative magintude in dB over [0 to 2pi]% mag=Absolute magintude over [0 to 2pi]% pha=Phase response in radians over [0 to 2pi]% w=array of 500 frequency samples between [0 to 2pi]% b=numerator polynomial coefficients of H(z)% a=denominator polynomial coefficients of H(z)[H,w]=freqz(b,a,1000,'whole');%w ranging from 0 to 2pi radians per sample.%uses 1000 sample points around the entire unit circle to calculate the %frequency responseH=(H(1:501))';w=(w(1:501))';mag=abs(H);dB=20*log10((mag+eps)/max(mag));pha=angle(H);grd=grpdelay(b,a,w);图:0.20.610.05620.89131幅频响应归一化频率00.20.61-1-0.500.51相频响应归一化频率单位:p i00.20.61-60-40-205幅频响应:dB归一化频率00.20.611246群延时归一化频率0102030405060-100-5050102030405060-30-20-1001020实验七代码:主程序:% design a digital FIR lowpass filter with Hamming windowwp=0.3*pi;ws=0.5*pi;tr_width=ws-wp;N=ceil(6.6*pi/tr_width)+1; % N=34n=[0:1:N-1];wc=(ws-wp)/2;hd = ideal_lp(wc,N);w_ham=(hamming(N))';h=hd.*w_ham;[dB,mag,pha,grd,w]=freqz_m(h,[1]);delta_w=2*pi/1000;Rp=-(min(dB(1:1:wp/delta_w+1)));As=-round(max(dB(ws/delta_w+1:1:501)));%plotssubplot(2,2,1);stem(n,hd);title('ÀíÏëÂö³åÏìÓ¦');axis([0,N-1,-0.09,0.5]);xlabel('n');set(gcr,'YTickMode','manual','YTick',[0,0.1,0.2,0.3]);subplot(2,2,2);stem(n,w_ham);title('hamming´°');axis([0,N-1,0,1.1]);xlabel('n');subplot(2,2,3);stem(n,h);title('ʵ¼ÊÂö³åÏìÓ¦');axis([0,N-1,-0.09,0.5]);xlabel('n');set(gcr,'YTickMode','manual','YTick',[0,0.1,0.2,0.3]);subplot(2,2,4);plot(w/pi,dB);title('·ùƵÏìÓ¦:dB');grid;axis([0,1,-100,0]);xlabel('pi');ylabel('dB');set(gcr,'YTickMode','manual','YTick',[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0 .8,0.9,1.0]);set(gcr,'YTickMode','manual','YTick',[-100,-90,-80,-70,-60,-50,-40,-3 0,-20,-10,0]);子程序:function[dB,mag,pha,grd,w]=freqz_m(b,a)%computation of s-domain frequency response:modified version%---------------------------------------------------------%[dB,mag,pha,grd,w]=freqz_m(b,a);% dB=Relative magintude in dB over [0 to 2pi]% mag=Absolute magintude over [0 to 2pi]% pha=Phase response in radians over [0 to 2pi]% w=array of 500 frequency samples between [0 to 2pi]% b=numerator polynomial coefficients of H(z)% a=denominator polynomial coefficients of H(z)[H,w]=freqz(b,a,1000,'whole');%w ranging from 0 to 2pi radians per sample.%uses 1000 sample points around the entire unit circle to calculate the %frequency responseH=(H(1:501))';w=(w(1:501))';mag=abs(H);dB=20*log10((mag+eps)/max(mag));pha=angle(H);grd=grpdelay(b,a,w);函数ideal_lp;function hd=ideal_lp(wc,N);alpha=(N-1)/2;n=0:1:N-1;m=n-alpha+eps;hd=sin(wc*m)./(pi*m);汉明窗法设计滤波器的102030理想脉冲响应n0102030hamming 窗n102030实际脉冲响应n 00.51-100-50幅频响应:dBpid B。

matlab实验

matlab实验

实验一 MATLAB基本操作一、实验目的1、了解MATLAB应用程序环境2、掌握MATLAB语言程序的书写格式和MATLAB语言程序的结构。

3、掌握在MATLAB应用环境下编写程序4、掌握MATALB调试过程,帮助文件5、掌握MATLAB语言上机步骤,了解运行一个MATLAB程序的方法。

6、本实验可在学习完教材第一章后进行。

二、主要仪器及耗材PC电脑,MATLAB6.5软件三、实验内容和步骤1、MATLAB语言上机步骤:(1)、进入系统在C盘或其他盘上找到MATLAB或MATLAB6.5,然后双击其图标打开文件夹。

然后进行编辑源程序->编译->连接->执行程序->显示结果(2)、常用命令编辑切换(F6),编译(F9),运行(CTRL+F9),显示结果(ALT+F5)其它常用命令见“附录一”。

2、有下面的MATLAB程序。

(1)数值计算功能:如,求方程 3x4+7x3 +9x2-23=0的全部根p=[3,7,9,0,-23]; %建立多项式系数向量x=roots(p) %求根(2)绘图功能:如,绘制正弦曲线和余弦曲线x=[0:0.5:360]*pi/180;plot(x,sin(x),x,cos(x));(3)仿真功能:如,请调试上述程序。

3、熟悉MATLAB环境下的编辑命令,具体见附录一。

三、实验步骤1、静态地检查上述程序,改正程序中的错误。

2、在编辑状态下照原样键入上述程序。

3、编译并运行上述程序,记下所给出的出错信息。

4、按照事先静态检查后所改正的情况,进行纠错。

5、再编译执行纠错后的程序。

如还有错误,再编辑改正,直到不出现语法错误为止。

四、实验注意事项1、记下在调试过程中所发现的错误、系统给出的出错信息和对策。

分析讨论对策成功或失败的原因。

2、总结MATLAB程序的结构和书写规则。

五、思考题1、matlab到底有多少功能?2、MATLAB的搜索路径3、掌握使用MATLAB帮助文件实验二 MATLAB 矩阵及其运算一、 实验目的1、了解矩阵的操作,包括矩阵的建立、矩阵的拆分、矩阵分析等2、了解MATLAB 运算,包括算术运算、关系运算、逻辑运算等3、掌握字符串的操作,了解结构数据和单元数据。

MATLAB实验

MATLAB实验

MATLAB实验一:MATLAB语言基本概念实验实验目的:1. 熟悉MATLAB语言及使用环境;2.掌握MATLAB的常用命令;3.掌握MATLAB的工作空间的使用;4.掌握MATLAB的获得帮助的途径。

5.掌握科学计算的有关方法,熟悉MATLAB语言及其在科学计算中的运用;6.掌握MATLAB的命令运行方式和M文件运行方式;7.掌握矩阵在MATLAB中的运用。

实验方案分析及设计:本次实验主要目的是了解MATLAB的使用环境,以及常用的一些命令的使用;了解矩阵在MATLAB实验中的具体运用,以及相关的一些符号命令的使用。

实验器材:电脑一台,MATLAB软件实验步骤:打开MATLAB程序,将实验内容中的题目依次输入MATLAB中,运行得到并记录结果,最后再对所得结果进行验证。

实验内容及要求:1.熟悉MATLAB的菜单和快捷键的功能2.熟悉MATLAB的命令窗口的使用3.熟悉常用指令的使用format clc clear help lookfor who whos 4.熟悉命令历史窗口的使用5. 熟悉MATLAB工作空间的功能将工作空间中的变量保存为M文件,并提取该文件中的变量6.熟悉MATLAB获取帮助的途径将所有plot开头的函数列出来,并详细给出plotfis函数的使用方法1. 输入 A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2;3 3 3],在命令窗口中执行下列表达式,掌握其含义:A(2, 3) A(:,2) A(3,:) A(:,1:2:3)A(:,3).*B(:,2) A(:,3)*B(2,:) A*BA.*BA^2 A.^2 B/A B./AA=[7 1 5;2 5 6;3 1 5]7 1 52 5 63 1 5>> B=[1 1 1; 2 2 2;3 3 3]1 1 12 2 23 3 3>> A(2, 3)6>> A(:,2)151>> A(3,:)3 1 5>> A(:,1:2:3)7 52 63 5>> A(:,3).*B(:,2)51215>> A(:,3)*B(2,:)10 10 1012 12 1210 10 10>> A*B24 24 2430 30 3020 20 20>> A.*B7 1 54 10 129 3 15>> A^266 17 6642 33 7038 13 46>> A.^249 1 254 25 369 1 25>> B/A0.1842 0.2105 -0.23680.3684 0.4211 -0.47370.5526 0.6316 -0.7105>> B./A0.1429 1.0000 0.20001.0000 0.4000 0.33331.0000 3.0000 0.60002.输入 C=1:2:20,则 C (i )表示什么?其中 i=1,2,3, (10)1到19差为2,i 代表公差3. 试用 help 命令理解下面程序各指令的含义:cleart =0:0.001:2*pi;subplot(2,2,1);polar(t, 1+cos(t))subplot(2,2,2);plot(cos(t).^3,sin(t).^3)subplot(2,2,3);polar(t,abs(sin(t).*cos(t)))subplot(2,2,4);polar(t,(cos(2*t)).^0.5)4计算矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡897473535与⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡638976242之和。

实验二MATLAB程序设计含实验报告

实验二MATLAB程序设计含实验报告

实验二 MATLAB 程序设计一、 实验目的1.掌握利用if 语句实现选择结构的方法。

2.掌握利用switch 语句实现多分支选择结构的方法。

3.掌握利用for 语句实现循环结构的方法。

4.掌握利用while 语句实现循环结构的方法。

5.掌握MATLAB 函数的编写及调试方法。

二、 实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。

M 文件的编写:启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。

点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正三、 实验内容1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。

并输入几组典型值加以检验。

(提示:提示输入使用input 函数)2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。

其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。

要求:(1)用switch 语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

(提示:注意单元矩阵的用法)3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。

重复此过程,最终得到的结果为1。

如:2?13?10?5?16?8?4?2?16?3?10?5?16?8?4?2?1运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。

请为关键的Matlab 语句填写上相关注释,说明其含义或功能。

《MATLAB程序设计》实验指导书

《MATLAB程序设计》实验指导书

三、
实验仪器和设备
1、 计算机一台。 2、 MATLAB7.0 以上集成环境。
四、
预习要求
2
《MATLAB 程序设计》实验指导书
1、 复习 MATLAB 的启动与Байду номын сангаас出,熟悉 MATLAB 运行环境。 2、 复习 MATLAB 中矩阵的生成以及矩阵运算的基本原理。
五、
实验内容及步骤
实验内容:
1、 求下列表达式的值 1) z1
5
《MATLAB 程序设计》实验指导书
2) 函数调用 函数文件编制好后,就可调用函数进行计算了。函数调用的一般格式为 [输出实参表]=函数名(输入实参表) 注意:函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个 数一致,否则会出错。函数调用时,实参先传递给形参,然后再执行函数功能。 5、 选择结构 1) if 语句 a) 单分支 if 语句 if 条件 语句块 end b) 双分支 if 语句 if 条件 语句块 1 else 语句块 2 end c) 多分支 if 语句 if 条件 1 语句块 1 elseif 条件 2 语句块 2 …… elseif 条件 n 语句块 n else 语句块 n+1 end 2) switch 语句 switch 表达式 case 结果表 1 语句块 1 case 结果表 2 语句块 2 ……
二、
实验原理
1、 M 文件 用 MATLAB 语言编写的程序,称为 M 文件,它们的扩展名均为.m。M 文件根据 调用方式的不同分为两类,命令文件(Script file)和函数文件(Function file) 。 2、 建立新的 M 文件 启动 MATLAB 文本编辑器有 3 种方法: 1) 单击工具栏上的“New M-File”命令按钮。 2) 从 MATLAB 主窗口的“File”菜单中选择“New”菜单项,再选择“M-file”命令。 3) 在 MATLAB 命令窗口输入命令“edit”。 3、 打开已有的 M 文件 1) 在当前目录窗口选中要打开的 M 文件,双击鼠标左键。 2) 单击 MATLAB 主窗口工具栏上的“Open File”命令按钮,再从弹出的对话框中 选择所需打开的 M 文件。 3) 从 MATLAB 主窗口的“File”菜单中选择“Open”命令,在“Open”对话框中选中 所需打开的文件。 4) 在 MATLAB 命令窗口输入命令“edit 文件名” 。 4、 函数文件 1) 函数文件的基本结构 函数文件由 function 语句引导,其基本结构为: function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 注意:函数名的命名规则与变量名相同。当输出形参多于一个时,应用方括号 括起来。

实验4Matlab程序设计1

实验4Matlab程序设计1

实验4 Matlab程序设计1实验目的:1、掌握建立和执行M文件的方法;2、掌握实现选择结构的方法;3、掌握实现循环结构的方法。

实验内容:1. 从键盘输入一个4位整数,按如下规则加密后输出。

加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。

2. 求分段函数的值。

2x +x-6, x <0且x式-3y = *x2—5x + 6 0Wxc 5 且x 式2及x 式3X2 _ X -1 其他用if语句实现,分别输出x=-5,-3,0,1,2,2.5,3,5时的y值。

3. 输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

要求:(1)分别用if语句和swich语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

4. 硅谷公司员工的工资计算方法如下:(1)工作时数超过120小时者,超过部分加发15% ;(2)工作时数低于60小时者,扣发700元;(3)其余按每小时84元计发。

试编程按输入的工号和该号员工的工时数,计算应发工资。

5. 设计程序,完成两位数的加、减、乘、除四则运算。

即:输入两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。

6. 建立5X 6矩阵,要求输出矩阵的第n行元素。

当n值超过矩阵的行数时,自动转为输出矩阵的最后一行元素,并给出出错信息。

7. 产生20 个两位随机整数,输出其中小于平均数的偶数。

实验代码及实验结果1.>> a=input(' 请输入一个四位整数:');请输入一个四位整数:9988>> a1=fix(a/1000);>> a2=rem(fix(a/100),10);>> a3=rem(fix(a/10),10);>> a4=rem(a,10);>> a1=rem(a1+7,10);>> a2=rem(a2+7,10);>> a3=rem(a3+7,10);>> a4=rem(a4+7,10);>> b=a1;a1=a3;a3=b;>> b=a2;a2=a4;a4=b;>> c=a1*1000+a2*100+a3*10+a4;>> disp(c)3.>> a=input C请输入一个四位整数:一); 请输人一个四f立整數:3988 »(a/1000);>> a2=ren(fix(a/100), 10);>> a3=ren(fiK(a/10)?10);>> 血(a, ID);» al=re&(al+^ 10);>> a^rsB(a2+7f 10);>> a3=rem(a3+7? 10):>> 丑"“血(M+C 10);>> b=al:a1=a3:a3=b;» b=a2:a2=a4:a4=b,» c-al *100(Hai2*l 0(H-a3*l 0+ttl;>> disp(c)55662.x=input('请输入x的值:');if x<0 & x~=-3y=x92+x-6;elseif x>=0 & x<5 & x~=2 & x~=3y=x.A2+5.*x+6elsey=x.A2-x-1;end请输入孟的値:[-瓦-亠0,1, 2t2. E f 3, 5]7 =29. 0000 IL ODDO -I. 0000 -1.0000 1. OODO 2.7500 5. QOOD(1) if语句:a=i nput('请输入成绩:');ig.ooooif a>=90 & a<=100disp('A');elseif a>=80 & a<90disp('B');elseif a>=70 & a<80disp('C');elseif a>=60 & a<70disp('D');elseif a<60 &a>=0disp('E');elsedisp('输入有误!'); end( 2) switch 语句:a=input(' 请输入成绩:'); switch fix(a/10)case{9}disp('A');case{8}disp('B');case{7}disp('C');case{6}disp('D');case nu m2cell(2:5)disp('E')otherwisedisp('输入有误!');end请输入咸绩:80E请输入咸绩;5E请输入成绩:1212输入有误I»4.n=i nput('请输入工号:’);a=i nput('请输入工作小时数:'); if a>=120 y=a*84+a*84*0.15;elseif a<120 & a>=60y=a*84;elsey=a*84-700;disp(y);end请输入工号:30请输入工作小时数:231232。

matlab实验

matlab实验

实验一1、计算y=x^3+(x-0.98)^2/(x+1.35)^3-5*(x+1/x)当x=2,x=4的值。

2、计算cos(pi/3)-(9-2^(1/2))^(1/3)。

3、已知a=3,A=4,b=a^2,B=b^2-1,c=a+2*B+c,求C。

4、创建一个3*3矩阵,然后用矩阵编辑器将其扩充为4*5矩阵。

5、创建一个4*4矩阵魔方阵和相应的随机矩阵,将两个矩阵并接起来,然后提取任意两个列向量。

7设A=[1,4,8,13;-3,6,-5,-9;2,-7,-12,-8],B=[5,4,3,-2;6,-2,3,-8;-1,3,-9,7],求C=A*B’,D=A.*B。

8、求(s^2+2)(s+4)(s+1)/(s^3+s+1)的“商”及“余”多项式。

9、建立矩阵A,然后找出在[10,20]q区间的元素的位置。

10、创建一个有7个元素的一维数组,并做如下处理:1)直接访问一位数组的第6个元素;2)寻访一维数组的第1、3、5个元素;3)寻访一维数组中的第4个至最后1个元素;4)寻访一维数组中大于70的元素。

三、实验程序:NO.1>> x=[2,4]x = 2 4>> y=x.^3+(x-0.98).^2/(x+1.35).^3-5*(x+1./x)y =-4.4423 42.8077>>NO.2>> cos(pi/3)-(9-sqrt(2))^(1/3) ans =-1.4649>>3>> a=3a =NO. 3>> A=4A =4>> b=a^2b =9>> B=b^2-1B =80>> c=a+A-2*Bc =-153>> C=a+2*B+cC =10NO..4A=rand(3)A =0.5341 0.8385 0.70270.7271 0.5681 0.54660.3093 0.3704 0.4449>> B=rand(3,2)B =0.6946 0.95680.6213 0.52260.7948 0.8801>> C=rand(1,5)C =0.1730 0.9797 0.2714 0.2523 0.8757 >> F=[A,B;C]F =0.5341 0.8385 0.7027 0.6946 0.95680.7271 0.5681 0.5466 0.6213 0.52260.3093 0.3704 0.4449 0.7948 0.88010.1730 0.9797 0.2714 0.2523 0.8757 NO.5>> A=magic(4)A =16 2 3 135 11 10 89 7 6 124 14 15 1>> B=rand(3,4)B =0.7373 0.8939 0.6614 0.06480.1365 0.1991 0.2844 0.98830.0118 0.2987 0.4692 0.5828 >> C=[A;B]C =16.0000 2.0000 3.0000 13.00005.0000 11.0000 10.0000 8.00009.0000 7.0000 6.0000 12.00004.0000 14.0000 15.0000 1.00000.7373 0.8939 0.6614 0.06480.1365 0.1991 0.2844 0.98830.0118 0.2987 0.4692 0.5828 >> C(:,[1,2])ans =NO.6>> A=[-4,-2,0,2,4;-3,-1,1,3,5]A =-4 -2 0 2 4-3 -1 1 3 5>> LA=abs(A)>3LA =1 0 0 0 10 0 0 0 1>> A(LA)ans =-445>>NO.7>> A=[1,4,8,13;-3,6,-5,-9;2,-7,-12,-8]A =1 4 8 13-3 6 -5 -92 -7 -12 -8>> B=[5,4,3,-2;6,-2,3,-8;-1,3,-9,7]B =5 4 3 -26 -2 3 -8-1 3 -9 7>> C=A*B'C =19 -82 3012 27 3-38 54 29>> D=A.*BD =5 16 24 -26-18 -12 -15 72-2 -21 108 -56>>NO.8>> den=conv([1,0,2],conv([1,4],[1,2])) den =1 6 10 12 16 num=[1,0,1,1];>> [q,r]=deconv(den,num)q =1 6r =0 0 9 5 10>>NO.9>> A=[10,15,8;5,16,35;16,8,26]A =10 15 85 16 3516 8 26>> (A>=10)&(A<=20)ans =1 1 00 1 01 0 0>>NO.10x =1 2 3 4 5 6 7 >> x(1)ans =1>> x(3)ans =3>> x(5)ans = 5>> x(4:end)ans = 4 5 6 7>> x(x>70)ans =Empty matrix: 1-by-0>>实验二1. 设()23sin cos 0.51x y x x ⎡⎤⎢⎥=++⎢⎥⎣⎦,把0~2x π=区间分为125点,画出以x 为横坐标,y 为纵坐标的曲线。

(完整word)Matlab实验报告

(完整word)Matlab实验报告

实验一:Matlab操作环境熟悉一、实验目的1.初步了解Matlab操作环境.2.学习使用图形函数计算器命令funtool及其环境。

二、实验内容熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format 命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算:1.单函数运算操作。

求下列函数的符号导数(1)y=sin(x);(2) y=(1+x)^3*(2-x);求下列函数的符号积分(1)y=cos(x);(2)y=1/(1+x^2);(3)y=1/sqrt(1—x^2);(4)y=(x1)/(x+1)/(x+2)求反函数(1)y=(x-1)/(2*x+3); (2) y=exp(x);(3) y=log(x+sqrt(1+x^2));代数式的化简(1)(x+1)*(x-1)*(x-2)/(x-3)/(x—4);(2)sin(x)^2+cos(x)^2;(3)x+sin(x)+2*x—3*cos(x)+4*x*sin(x);2.函数与参数的运算操作。

从y=x^2通过参数的选择去观察下列函数的图形变化(1)y1=(x+1)^2(2)y2=(x+2)^2(3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4 (6) y6=x^2/2 3.两个函数之间的操作求和(1)sin(x)+cos(x) (2) 1+x+x^2+x^3+x^4+x^5乘积(1)exp(—x)*sin(x) (2) sin(x)*x商(1)sin(x)/cos(x); (2) x/(1+x^2); (3) 1/(x—1)/(x—2); 求复合函数(1)y=exp(u) u=sin(x) (2) y=sqrt(u) u=1+exp(x^2)(3) y=sin(u) u=asin(x) (4) y=sinh(u) u=-x实验二:MATLAB基本操作与用法一、实验目的1.掌握用MATLAB命令窗口进行简单数学运算。

matlab实验报告

matlab实验报告

实验仿真一:控制系统中的MATLAB编程应用已知单位负反馈的开环传递函数为:G(s)=ωξω(1)假设自然频率ω给定,取五个不同的阻尼比ξ。

试用MATLAB编程,在同一张图中绘制其单位阶跃响应曲线,并分析阻尼比对二阶动态系统的影响。

取ω=2,ξ=0.25, 0.5, 1,2,4由开环传递函数求出闭环传递函数:G(s)=ωξωω将数据带入闭环传递函数得:G(s)=,ξ则随着ξ的值变化,绘制的曲线将不同。

写入MATLAB程序如下:clearclcnum=4;den1=[1 1 4];sys1=tf(num,den1);den2=[1 2 4];sys2=tf(num,den2);den3=[1 4 4];sys3=tf(num,den3);den4=[1 8 4];sys4=tf(num,den4);den5=[1 16 4];sys5=tf(num,den5);step(sys1,'b-',sys2,'g-',sys3,'r-',sys4,'c-',sys5,'y-',20);图1-1 阻尼比不同的单位阶跃响应曲线图阻尼比对二阶动态系统的影响:随着阻尼比ξ的增大,系统超调量逐渐减小。

当阻尼比大于1时,系统响应曲线为单调曲线,已经没有振荡了。

(2)假设阻尼比ξ给定,取五个不同的自然频率ω。

试用MATLAB编程,在同一张图中绘制其单位阶跃响应曲线,并分析自然频率对二阶动态系统的影响。

取ξ=0.5,ω=0.5,1,2,3, 4将数据带入闭环传递函数得:G(s)=ω,ωω则随着ω的值变化,绘制的曲线将不同写入MATLAB程序如下:clearclcnum1=0.25;den1=[1 0.5 0.25];sys1=tf(num1,den1);num2=1;den2=[1 1 1];sys2=tf(num2,den2);num3=4;den3=[1 2 4];sys3=tf(num3,den3);num4=9;den4=[1 3 9];sys4=tf(num4,den4);num5=16;den5=[1 4 16];sys5=tf(num5,den5);step(sys1,'b-',sys2,'g-',sys3,'r-',sys4,'c-',sys5,'y-',20);图1-2 自然频率不同的单位阶跃响应曲线图自然频率对二阶动态系统的影响:随着自然频率的增加,系统的响应速度加快,而响应曲线的峰值保持不变。

MATLAB实验六(精品)

MATLAB实验六(精品)

第二节 逐点比较法逐点比较法的基本原理是,在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具沿着坐标轴向减小偏差的方向进给,且只有一个方向的进给。

也就是说,逐点比较法每一步均要比较加工点瞬时坐标与规定零件轮廓之间的距离,依此决定下一步的走向,如果加工点走到轮廓外面去了,则下一步要朝着轮廓内部走;如果加工点处在轮廓的内部, 则下一步要向轮廓外面走,以缩小偏差,周而复始,直至全部结束,从而获得一个非常接近于数控加工程序规定轮廓的刀具中心轨迹。

逐点比较法既可实现直线插补,也可实现圆弧插补。

其特点是运算简单直观,插补过程的最大误差不超过一个脉冲当量,输出脉冲均匀,而且输出脉冲速度变化小,调节方便,但不易实现两坐标以上的联动插补。

因此,在两坐标数控机床中应用较为普遍。

一般来讲,逐点比较法插补过程每一步都要经过如图3-1所示的四个工作节拍:(1)偏差判别 判别刀具当前位置相对于给定轮廓的偏差情况,即通过偏差值符号确定加工点处在理想轮廓的哪一侧,并以此决定刀具进给方向。

(2)坐标进给 根据偏差判别结果,控制相应坐标轴进给一步,使加工点向理想轮廓靠拢,从而减小其间的偏差。

(3)偏差计算 刀具进给一步后,针对新的加工点计算出能反映其偏离理想轮廓的新偏差,为下一步偏差判别提供依据。

(4)终点判别 每进给一步后都要判别刀具是否达到被加工零件轮廓的终点,若到达了则结束插补,否则继续重复上述四个节拍的工作,直至终点为止。

一、逐点比较法I 象限直线插补(一)基本原理设第一象限直线OE ,起点为坐标原点O(0,0),终点为E (X e ,Y e ),另有一个动点为N (X i ,Y i ),如图3-2所示。

其中,各个坐标值均是以脉冲当量为单位的整数,以便于后面的推导与讲解,并且在脉冲增量式插补算法中都是这样约定的。

ee i i X Y X Y = (3-1a ) 即 X e Y i —X i Y e =0 (3-1b ) 当动点N 处于直线OE 的下方N ′处时,直线N O '的斜率小于直线OE 的斜率,从而有ii X Y <e e X Y (3-2a )即 X e Y i —X i Y e <0 (3-2b ) 当动点N 处于直线OE 的上方N ″处时,直线N O ''的斜率大于直线OE 的斜率,从而有ee i i X Y X Y > (3-3a ) 即 X e Y i —X i Y e >0 (3-3b ) 由上述关系可以看出,表达式(X e Y i —X i Y e )的符号就能反映出动点N 相对直线OE 的偏离情况,为此取偏差函数F 为F =X e Y i —X i Y e (3-4)根据上述过程可以概括出如下关系:当F =0时,动点N (X i ,Y i )正好处在直线OE 上;当F >0时,动点N (X i ,Y i )落在直线OE 上方区域;当F <0时,动点N (X i ,Y i )落在直线OE 下方区域。

MATLAB实验指导书

MATLAB实验指导书

实验一:MATLAB的基本操作一、实验目的:1.熟悉MATLAB操作环境2.熟悉MATLAB的帮助3.熟悉MATLAB矩阵的操作4.熟悉MATLAB基本运算二、实验内容:1.自行设计试题,说明三角函数是按弧度还是按角度计算。

2.找出取整的函数,并自行设计试题,说明它们的区别。

3.自行设计试题,说明如何给矩阵按列符值。

4.自行设计试题,建一个5X5矩阵,然后将第一行乘1,第二行乘2,第三行乘3,第四行乘4,第五行乘5。

5.设计编写程序(命令),解方程3x5-7x4+5x2+2x-18=0。

6.自行设计试题,说明eval()函数的功能。

三、实验原理:ceil(x)= -4 -2 0 2 5 7fix(x) = -4 -2 0 1 4 6floor(x) = -5 -3 -1 1 4 6round(x) = -5 -2 0 1 5 72、系统的在线帮助help 命令:(1).当不知系统有何帮助内容时,可直接输入help以寻求帮助:>> help(回车)(2).当想了解某一主题的内容时,如输入:>> help syntax(了解Matlab的语法规定)(3).当想了解某一具体的函数或命令的帮助信息时,如输入:>> help sqrt (了解函数sqrt的相关信息)lookfor命令现需要完成某一具体操作,不知有何命令或函数可以完成,如输入:>> lookfor line (查找与直线、线性问题有关的函数)3、常量与变量系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。

此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表:数值型向量(矩阵)的输入(1).任何矩阵(向量),可以直接按行方式...输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。

所有元素处于一方括号([ ])内;例1-1:>> Time = [11 12 1 2 3 4 5 6 7 8 9 10]>> X_Data = [2.32 3.43;4.37 5.98](2).系统中提供了多个命令用于输入特殊的矩阵:上面函数的具体用法,可以用帮助命令help得到。

MATLAB实验指导书(第一次实验)

MATLAB实验指导书(第一次实验)

************************ 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 有一个总体了解。

实验三MATLAB的程序设计

实验三MATLAB的程序设计
error('k>n,put in again!!');
end
ifk==0
Y=1;
elseifk==1&&n==1
Y=1;
elseifk<=n
Y=(n/k)*c(k-1,n-1);
end
程序测试:
>> c(0,0)
ans =
1
>> c(0,1)
ans =
1
>> c(3,4)
ans =
4
7,计算以下和式,并估计其求和公式以及验证:
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k;
end
测试:
>> s(3)
ans =
6
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k^2;
end
测试:
>> s(3)
ans =
14
functionY=s(n)
Y=0;
fork=1:n
Y=Y+k^3;
end
测试:
>> s(2)
4
>> Joseph0(7,4)
2
11,求出 之间的所有素数;
M函数文件:
functionout = nprimes(N)
A= [1:N];
A(1)=0;
i=2;
whilei<= floor(sqrt(N));
forj= 2:fix(N/i)
A(i*j) = 0;
end;
i = A(find(A>i,1));
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一
a=[1,2,3;4,5,6;7,8,9] b= repmat(a,2,2)
B(24)=9
实验二
1、使用matlab命令统计randn(5)生成的矩阵里,有多少个元素小于0,将
小于0元素个数存变量c中并将这些小于零元素存变量d中。

(实验报告
要求:写出命令)
a=randn(5)
b=find(a<0);
c=length(find(a<0))
d=a(b)
2、建立一个字符数组,内容如下所示:(实验报告要求:写出命令)
A B C D
E F G H
a b c d
a=['A B C D'
'E F G H'
'a b c d']
3、已知有一个矩阵A(假如不知道其具体信息),请计算其元素个数(请先用实际矩阵来验证计算方法是否正确)。

(实验报告要求:写出正确计算方法的命令)A=randn(3,4)
B=numel(A)
4、已知有一个元胞数组B=[{ones(2,3,2)},{'Hello, Matlab'};{[4 5 6]},{1:100}],想获取字符串'Matlab',应输入什么命令?(实验报告要求:写出命令)
f=B{1,2}(7:end)
5、要从上题所建元胞数组B中获取列向量[4;5;6],可以有哪几种方法?(实验报告要求:写出命令及结果)
方法1: i=B{2,1}(:)
方法2: j=reshape(B{2,1},3,1)
6、已知有两个学生的信息如下,请在matlab中创建结构对其进行存储,并算
=['姓名'
'张三'
'李四']
student.shuxue=[87
78]
student.yuwen=[75
81 ]
student.yingyu=[55
60]
实验三
实验四:二维绘图
(1)在同一个窗体(figure1)中画出正弦函数和余弦函数的图象。

要求如下:
◆正弦图象用蓝色实线,时标用方格;
◆余弦图象用黄色虚线,时标选向下三角形;
◆为整个图像加中文标题;
◆为x和y轴加轴标题;
◆改x轴的单位为pi/2的倍数;
◆增加图例;
◆在图中合适的位置增加“正弦曲线”和“余弦曲线”两处文本信息。

答:程序:
x1=0:0.05*pi:6;
y1=sin(x1);
figure(1);
x2=0:0.05*pi:6;
y2=cos(x2);
plot(x1,y1,'b-s',x2,y2,'y--v');
legend('y1=sin(x1)','y2=cos(x2)')
title('函数图像');
xlabel('横坐标');
ylabel('纵坐标');
(2)在另一个窗体(figure2)中划分子图如下图所示,并在第一个子图上绘制正弦函数曲线,在第二个子图上绘制余弦函数曲线,在第三个子图上同时绘制正弦函数和余弦函数。

答:程序:
x1=0:0.05*pi:6;
y1=sin(x1);
figure(1);
subplot(2,2,1);
plot(x1,y1,'b-');
x2=0:0.05*pi:6;
y2=cos(x2);
subplot(2,2,2);
plot(x2,y2,'b-');
subplot(2,2,[3 4]);
plot(x1,y1,'b-',x2,y2,'g-');
(3)已知某体育联盟几支球队近几年战绩如下表所示,请分别使用垂直条状图和三维垂直条状图显示表格中的数据。

并用饼形图表示2011年各队的胜场数,
答:
垂直条状图:
x=2008:2011;
data=[56 50 60 48;51 48 58 46;53 47 57 47;55 45 37 49];
bar(x,data);grid on;
title('垂直条状图(3D)');
legend('湖人','火箭','骑士','太阳');
xlabel('年份');
ylabel('胜场数');
三维垂直条状图:
x=2008:2011;
data=[56 50 60 48;51 48 58 46;53 47 57 47;55 45 37 49];
bar3h(x,data);grid on;
title('3维垂直条状图(3D)');
legend('湖人','火箭','骑士','太阳');
zlabel('年份');
xlabel('胜场数');
饼状图:
a=[55 45 37 49];
pie(a);
legend('湖人','火箭','骑士','太阳');
实验五:三维绘图
设计一个M 脚本文件,完成下列三维绘图功能:
1. 分别用mesh 、meshc 、meshz 在不同的图形窗口中绘制如下函数的三维网格曲面,其中mesh 的效果如右图所示:
2
222)
sin(y x y x z ++=
程序:
x = linspace(-10, 10, 50); y= linspace(-10, 10, 50); [x,y]=meshgrid(x,y);
z=sin(sqrt(x.*x+y.*y))./(sqrt(x.*x+y.*y));
2. 分别用surf 和surfc 命令在不同的图 形窗口中绘制以下函数的曲面图,其中 Surf 命令的效果如右图所示:
)
cos()sin(y x e e z +=
要求:不显示曲面上的格线,加上图标题 和三个轴的轴标题。

注:程序中请加上必要的注释。

答:程序:
x = linspace(0, 10, 50); y= linspace(0, 10, 50); [x,y]=meshgrid(x,y);
z=sqrt(exp(sin(x)) + exp(cos(y))); surf(x,y,z);
shading faceted; shading flat;
shading interp;;surf(x,y,z);axis([0 10 0 10 0.5 2.5]); xlabel('X 轴'); ylabel('Y 轴'); zlabel('Z 轴');
title('三维绘图例子)');
实验六:符号计算。

相关文档
最新文档