matlab实验报告(实验2)
- 格式:doc
- 大小:627.00 KB
- 文档页数:10
核科学技术学院实验报告实验项目名称MATLAB符号计算所属课程名称MATLAB及应用实验类型上机实验实验日期12月日指导教师谢芹班级学号姓名成绩一、实验名称MATLAB符号计算二、实验目的(1)掌握定义符号对象的方法(2)掌握符号表达式的运算法则以及符号矩阵运算(3)掌握求符号函数极限及导数的方法(4)掌握求符号函数定积分和不定积分的方法三、实验原理1. 函数极限及导数的方法(1)函数极限:limit(F,x,a) 求符号函数f(x)的极限值。
即计算当变量x趋近于常数a时,f(x)函数的极限值。
(2)limit(f):求符号函数f(x)的极限值。
符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。
(3)limit(f,x,a,'right'):求符号函数f的极限值。
'right'表示变量x从右边趋近于a。
(4)limit(f,x,a,‘left’):求符号函数f的极限值。
‘left’表示变量x从左边趋近于a。
2. 微分:diff(s):没有指定变量和导数阶数,则系统按findsym函数指示的默认变量对符号表达式s求一阶导数。
diff(s,'v'):以v为自变量,对符号表达式s求一阶导数。
diff(s,n):按findsym函数指示的默认变量对符号表达式s求n阶导数,n为正整数。
diff(s,'v',n):以v为自变量,对符号表达式s求n阶导数。
3. 函数定积分和不定积分的方法:int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分。
int(s,v):以v为自变量,对被积函数或符号表达式s求不定积分。
int(s,v,a,b):求定积分运算。
a,b分别表示定积分的下限和上限。
梯形法:trapz(x,y):x为分割点构成的向量,y为被积函数在分割点上的函数值构成的向量;抛物线法:quad(f,a,b,tol),f 是被积函数,[a,b]是积分区间,tol 是精度。
实验报告通信工程 1101学号:********* 姓名:李*实验2 用MATLAB 进行信号频谱分析一、实验目的㈠ 初步掌握MATLAB 产生常用离散时间信号的编程方法。
㈡ 学习编写简单的FFT 算法程序,对离散信号进行幅频谱分析。
㈢ 观察离散时间信号频谱的特点。
二、实验原理㈠ 常用的离散时间信号在 MATLAB 语言主要是研究离散信号的。
常用的离散信号有: 1.单位取样序列⎩⎨⎧≠==0001)(n n n δ2.单位阶跃序列⎩⎨⎧<≥=001)(n n n u3.实指数序列R a n a n x n∈∀=;)(4.复指数序列n e n x n j ∀=+)(0)(ωσ5.正(余)弦序列)cos()(0θω+=n n x n ∀ 6.周期序列n N n x n x ∀+=)()(㈡ 离散信号的产生离散信号的图形显示使用stem 指令。
在 MATLAB 中的信号处理工具箱中,主要提供的信号是离散信号。
由于MATLAB 对下标的约定为从1开始递增,例如x=[5,4,3,2,1,0],表示x(1)=5,x(2)=4,X(3)=3…因此要表示一个下标不由1开始的数组x(n),一般应采用两个矢量,如 n=[-3,-2,-1,0,l ,2,3,4,5];x=[1,-l ,3,2,0,4,5,2,1];这表示了一个含9个采样点的矢量:X(n)={x(-3),x(-2),x(-1),x(0),x(1),x(2),x(3),x(4),x(5)}。
1.单位取样序列⎩⎨⎧≠==δ0001)(n n n 这一函数实现的方法有二:方法一:可利用MATLAB 的zeros 函数。
x=zeros(1,N); %建立一个一行N 列的全零数组x(1)=1; %对X (1)赋1 方法二:可借助于关系操作符实现n=1:N;x=[n==1]; %n 等于1时逻辑关系式结果为真,x=1;n 不等于1时为假,x=0如要产生 ⎪⎩⎪⎨⎧≤<<=≤≤=-δ20210100)(10)(n n n n n n n n n n n n则可采用MATLAB 实现:n=n1:n2;x=[(n-n0)==0];%n=n0时逻辑关系式结果为真,x=1;n ≠n0时为假,x=0 2.单位阶跃序列⎩⎨⎧<≥=001)(n n n u这一函数可利用MATLAB 的ones 函数实现: x=ones(1,N);还可借助于关系操作符“>=”来实现。
实验二MATLAB语言基础一、实验目的基本掌握MA TLAB向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。
了解字符串的操作。
二、实验内容1.向量的生成与运算;2.矩阵的创建、引用和运算;3.多维数组的创建及运算;4.字符串的操作。
三、实验步骤1.向量的生成与运算①向量的生成向量的生成有三种方法:直接输入法:生成行向量、列向量;冒号表达式法:变量=初值:间隔(可正可负):终值函数法:使用linspace线性等分函数,logspace对数等分函数。
格式为:linspace(初值,终值,个数)Logspace(初值,终值,个数), 初值及终值均为10的次幂。
②向量的运算A=[1 2 3 4 5],b=3:7,计算两行向量的转置,两行向量人加、减,两列向量的加、减;向量的点积与叉积。
a=[1 2 3 4 5];b=3:7;a =1 2 3 4 5b =3 4 5 6 7at=a',bt=b'at =12345bt =34567e1=a+b,e2=a-be1 =4 6 8 10 12 e2 =-2 -2 -2 -2 -2 f1=at+bt,f2=at-btf1 =4561012f2 =-2-2-2-2-2g1=dot(a,b),g2=a*bt>> g1=dot(a,b),g2=a*btg1 =85g2 =85g4=a.*b>> g4=a.*bg4 =3 8 15 24 35A=1:3;B=4:6;g3=cross(A,B)>> g3=cross(a,b)g3 =-3 6 -3注意:g1和g2的结果是否相同,为什么?g4的结果与g1和g2结果是否一样,为什么?g1和g2的结果相同,因为两者是同一种运算;g4与g1和g2不相同,因为两者一个是点乘一个是叉乘,运算不一样。
2.矩阵的创建、引用和运算矩阵是由n×m元素构成的矩阵结构。
实验二 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 语句填写上相关注释,说明其含义或功能。
第二章作业M2_1.利用MATLAB实现下列连续时间信号。
(1)x(t)=u(t)-u(t-2)function y=heaviside(t);y=(t>0);endt=-10:0.001:10;>>xt=heaviside(t)-heaviside(t-2);>>plot(t,xt)>>axis([-10,10,-2,2])(2) x(t)=u(t)function y=heaviside(t);y=(t>0);endt=-10:0.001:10;>>xt=heaviside(t);>>plot(t,xt)>>axis([-10,10,-2,2])(3)xt=10exp(-t)-5exp(-2t)>> A=10;a=-1;>> t=0:0.001:10;>> x1t=A*exp(a*t);>> A=5;a=-2;>> t=0:0.001:10;>> x2t=A*exp(a*t);>>xt=x1t-x2t;>>plot(t,xt)(4)xt=tu(t)>> t=-10:0.001:10;>>xt=t.*heaviside(t);>>plot(t,xt)(5)xt=2|sin(10pit+pi/3)| >> A=2;w0=10*pi;phi=pi/3; >> t=0:0.001:1;>>xt=A*abs(sin(w0*t+phi)); >>plot(t,xt)>>axis([0,1,-4,4])Xt=cost+sin(2pit)>> A=1;w0=1;phi=0; >> t=0:0.002:10;>> x1t=A*cos(w0*t+phi); >> A=2;w0=2*pi;phi=0; >> t=0:0.002:10;>> x2t=A*sin(w0*t+phi); >>xt=x1t+x2t;>>plot(t,xt)(7)xt=4exp(-0.5t)cos(2pit) >> A=5;a=-0.5;>> t=0:0.001:10;>> x1t=A*exp(a*t);>> A=1;w0=2*pi;phi=0; >> t=0:0.001:10;>> x2t=A*cos(w0*t+phi); >>xt=x1t.*x2t;>>plot(t,xt)(8)Sa(pit)cos(30t)A=1;w0=30;phi=0;>> t=0:0.001:3;>> x1t=A*cos(w0*t+phi);>> t=0:0.001:3;>> x2t=sinc(t);>>xt=x1t.*x2t;>>plot(t,xt)M2-3,写出书中图示波形函数,并画出xt,x0.5t,x(2-0.5t)的图像function yt=x2_3(t)yt=t.*(t>=0&t<2)+2*(t>=2&t<3)+(-1)*(t>=3&t<=5); end>> t=0:0.001:5;>>xt=x2_3(t);>>title('x(t)');>>plot(t,xt)>>axis([0,6,-2,3])>> t=0:0.001:10;xt=x2_3(0.5*t); >>plot(t,xt)>>title('x(0.5t)')>>axis([0,10,-2,3])x(0.5t)>> t=-10:0.001:10;>>xt=x2_3(2-0.5*t);>>plot(t,xt)>>title('x(2-0.5t)')>>axis([-10,10,-2,3])M2-4画出图示的奇分量和偶分量。
第二次上机作业准备&要求:1、 运行课件第三章(课本第四章)讲过的例子,掌握Matlab 的流程控制语句、函数及脚本文件的编程、调试方法。
2、 本次作业(4~12题)要求全部写M 文件;3、 题目要求未明确要求写脚本文件还是函数文件的,学生自己决定是写脚本文件还是函数文件。
只要能够实现要求。
4、 列出第二章课堂上出现过的所有函数,知道它们的作用并试着调用这些函数。
作业:1. 继续完成第一次上机实验未完成的作业。
2. 分析脚本M 文件及函数M 文件的区别。
(1)脚本文件没有输入参数,也不返回输出参数,而函数文件可以带输入参数,也可以返回输出参数。
(2)脚本文件对MATLAB 工作空间中的变量进行操作,文件中所有命令的执行结果也完全返回到工作空间中,而函数文件中定义的变量为局部变量,当函数文件执行完毕时。
这些变量被清除。
(3)脚本文件可以直接运行。
在MATLAB 命令行窗口输入脚本文件的名字,就会顺序执行脚本文件中的命令。
而函数文件不能直接运行,要以函数调用的方式来调用。
3. 已知⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=7613870451A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=023352138B ,求下列表达式的值,并注意第(2)(3)小题表达式的结果有何特点:(1)B A 6+ 、I B A +-2(其中I 为单位阵);>> A+6*Bans =47 23 -1012 37 26-15 73 7>> A^2-B+Ians =-18 -217 1722 533 10921 867 526(2)A*B、A.*B、B*A、B.*A;>> A*Bans =14 14 16-10 51 21125 328 180>> A.*Bans =-8 15 40 35 24-9 122 0>> B*Aans =-11 0 -157 228 533 -1 28>> B.*Aans =-8 15 40 35 24-9 122 0(3)A/B、B\A、A./B、B.\A;A/Bans =1.2234 -0.92552.9787-0.9468 2.3511 -0.95744.6170 3.8723 13.8936>> B\Aans =-0.5106 -8.6170 -1.12770.7340 17.5745 1.8085-0.8830 -21.2128 0.4043>> A./Bans =-0.1250 1.6667 4.00000 1.4000 2.6667-1.0000 30.5000 Inf>> B.\Aans =-0.1250 1.6667 4.00000 1.4000 2.6667-1.0000 30.5000 Inf(4)[A, B]、[A([1 3],:);B^2]。
MATLAB数学实验报告姓名:李帆班级:机械(硕)21学号:2120104008第一次数学实验报告——线性规划问题一,实验问题1,某饲养场饲养动物出售,设每头动物每天至少需要700g蛋白质,30g矿物质,100mg 维生素。
现有五种饲料可供选择,各种饲料的每千克营养成分含量和单价如下表。
是确定既能满足动物生长的营养需要,游客是费用最省的选用饲料方案。
2,某工厂生产甲、乙、丙三种产品,单位产品所需工时分别为2、3、1个;单位产品所需原料分别为3、1、5公斤;单位产品利润分别为2、3、5元。
工厂每天可利用的工时为12个,可供应的原料为15公斤。
为使总利润为最大,试确定日生产计划和最大利润。
二,问题分析1,1)该题属于采用线性规划的方式求出最优解的数学问题。
该题有以下特点,1.目标函数有线性,是求目标函数的最小值;2.约束条件为线性方程组;3.未知变量都有非负限制。
1,2)求解该类问题的方法有图解法,理论解法和软件解法。
图解法常用于解变量较少的线性规划问题。
理论解法要构建完整的理论体系。
目前用于解线性规划的理论解法有:单纯形法,椭球算法等。
在此,我们采用单纯形法的MATLAB软件解法来求解该问题。
1,3)此题中,要求既要满足动物生长的营养需要,又要使费用最省,则使每种饲料的选用量为变量,以总费用的最小值为所求量,同时每种饲料的使用量要符合营养成分的要求。
1,4)在此,首先确定建立线性规划模型。
设饲料i选用量为xi公斤,i=1,2,3,4,5.则有模型:Minz=0.2x1+0.7x2+0.4x3+0.3x4+0.8x5s.t.{3x1+2x2+6x4+18x5>=700;x1+0.5x2+0.2x3+2x4+0.5x5>=300.5x1+x2+0.2x3+2x4+0.8x5>=100Xj>=0,j=1,2,3,4,5解之得:x1=x2=x3=0X4=39.74359X5=25.14603Zmin=32.435902,1)该问题与第一题分析步骤相似,故只在此写出其线性规划模型Z=2x+3y+5z2x+3y+z<=123x+y+5z<=15三,程序设计流程图第一题:c=[0.2,0.7,0.4,0.3,0.8]A=[3,2,1,6,18;1,0.5,0.2,2,0.5;0.5,1,0.2,2,0.8;1,0,0,0,0;0,1, 0,0,0;0,0,1,0,0;0,0,0,1,0;0,0,0,0,1]b=[700,30,100,0,0,0,0,0][x,fval]=linprog(c,-A,-b)c=0.20000.70000.40000.30000.8000A=3.0000 2.0000 1.0000 6.000018.00001.00000.50000.20002.00000.50000.5000 1.00000.2000 2.00000.80001.000000000 1.000000000 1.000000000 1.000000000 1.0000b=7003010000000Optimization terminated.x=0.0000-0.00000.000039.743625.6410fval=32.4359第二题c=[-2-3-5]A=[231;315]b=[12;15]lb=[000][x,Z,exitflag,output]=linprog(c,A,b,[],[],lb,[])将上述程序输入matlab。
实验一:MATLAB基本操作一、实验目的1、学习掌握MA TLAB语言的基本操作方法2、掌握命令窗口的使用3、熟悉MA TLAB的数据表示、基本运算和程序控制语句4、熟悉MA TLAB程序设计的基本方法二、实验内容和要求2.b.帮助命令的使用,查找SQRT函数的使用方法按Start-help-search,输入sqrtc.矩阵运算(1)已知A=[1 2;3 4];B=[5 5;7 8];求A^2*B输入A=[1 2;3 4];B=[5 5;7 8];A^2*B结果为:ans =105 115229 251(2)矩阵除法已知A=[1 2 3 ;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3];求A/B,A\BA/B=1.0000 1.0000 1.00004.0000 2.5000 2.00007.0000 4.0000 3.0000A\B=1.0e+016 *0.3152 -1.2609 0.9457-0.6304 2.5218 -1.89130.3152 -1.2609 0.9457(3)矩阵的转置及共轭转置已知A=[15+i,2-i,1;6*i,4,9-i];求A.',A'A=15.0000 + 1.0000i 2.0000 - 1.0000i 1.00000 + 6.0000i 4.0000 9.0000 - 1.0000iA.'=15.0000 + 1.0000i 0 + 6.0000i2.0000 - 1.0000i 4.00001.0000 9.0000 - 1.0000iA'=15.0000 - 1.0000i 0 - 6.0000i2.0000 + 1.0000i 4.00001.0000 9.0000 + 1.0000i(4)使用冒号选出指定元素已知A=[1 2 3;4 5 6;7 8 9];求A中第三列前两个元素;A中所有第二行的元素A =1 2 34 5 67 8 9求A中第三列前两个元素:A([1,2],3)ans =36求A中所有第二行的元素:A(2,1:1:end)ans =4 5 6(5)方括号[]用magic函数生成一个4阶魔方矩阵,删除该矩阵的第四列magic(4)ans =16 2 3 135 11 10 89 7 6 124 14 15 1a=ans;a(:,[1,2,3])ans =16 2 35 11 109 7 64 14 153..多项式(1)求多项式p(X)=x^3-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作为未知数代入到多项式中;(1)a=[1,0,-2,-4]x=roots(a)x =2.0000-1.0000 + 1.0000i-1.0000 - 1.0000i(2)求特征多项式系数:A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4]p=poly(A)p =1.0000 -6.9000 -77.2600 -86.1300 604.5500求矩阵多项式中未知数为20时的值:c=polyval(p,20)c =7.2778e+004把矩阵A作为未知数代入到多项式中:c=polyval(p,A)c =1.0e+003 *0.3801 -0.4545 -1.9951 0.4601-1.9951 0.2093 -1.9951 -2.8880-0.4545 -4.8978 0.6046 0.43530.4353 0.0840 -0.4545 -1.16174、基本程序设计(1)编写命令文件:计算1+2+3+……+n<2000;n=0;s=0;while s<2000n=n+1;s=s+n;endn=n-1n =62(2)编写函数文件:分别用for和while循环结构编写程序,求2的0到n次幂的和。
数学与软件科学学院实验报告学期:至第学期 201年月日课程名称:MATLAB程序设计及应用专业:信息与计算机科学实验编号:实验项目:MATLAB的基本数据类型指导教师:班级:级班学号:姓名:实验成绩:一、实验目的及要求(1) 熟悉MATLAB提供的常用数据类型:数值:numeric字符:char逻辑:logical单元:cell结构:struct(2) 掌握每种数据类型标识符、范围以及不同数据类型之间的转换方式;(3) 熟悉MATLAB提供的运算符;(4)熟练掌握MATLAB常用函数的用法二、实验内容(1) 利用MATLAB简单计算的功能完成第二章课后习题;(1) 利用MATLAB简单计算的功能完成第二章课后习题;一、判断下面语句的运算结果:(1)4<20(2)4<=20(3)4==20(4)4~=20(5)'b'<'B'二、设a=39,b=58,c=3,d=7,判断下面表达式的值:(1)a>b(2)a<c(3)a>b && b>c(4)a==d(5)a|b>c(6)~~d(2) 利用class()函数测已知变量的数据类型;(3) 熟练掌握不同数据类型之间转换的两种格式,分别将已知变量的数据类型转换成int16,double类型;(4) 利用函数测实数及整数的范围;(5) 通过两种方式创建下列复数,并测试所创建的数是否为复数:100+24i、10-23.567i、20(6) 熟悉逻辑数组的创建、使用方法;。