MATLAB实验五 函数文件
(完整版)MATLAB)课后实验[1]
实验一 MATLAB 运算基础1. 先求以下表达式的值,尔后显示 MATLAB 工作空间的使用情况并保存全部变量。
(1)2sin 85 z1 21 e(2) 12z ln( x 1 x ) ,其中22 x2 1 2i5(3)ae e az sin( a 0.3) ln , a 3.0, 2.9, L , 2.9, 32 22t 0 t 1(4) 2z t 1 1 t 242t 2t 1 2 t 3,其中解:M 文件:z1=2*sin(85*pi/180)/(1+exp(2))x=[2 1+2*i;-.45 5];z2=1/2*log(x+sqrt(1+x^2))a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2)t=0:0.5:2.5;z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)4. 完成以下操作:(1) 求[100,999] 之间能被 21 整除的数的个数。
(2) 建立一个字符串向量,删除其中的大写字母。
解:(1) 结果:m=100:999;n=find(mod(m,21)==0);length(n)ans =43(2). 建立一个字符串向量比方:ch='ABC123d4e56Fg9'; 那么要求结果是:ch='ABC123d4e56Fg9';k=find(ch>='A'&ch<='Z');ch(k)=[]ch =123d4e56g9实验二 MATLAB矩阵解析与办理1. 设有分块矩阵 A E R3 3 3 2O S2 3 2 2,其中 E、R、O、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试经过数值计算考据 2A E R RS2O S。
MATLAB 实验五 函数文件
MATLAB 实验报告实验五函数文件一、实验目的1、理解函数文件的概念2、掌握定义和调用MTALAB函数的方法二、实验内容1, 命令文件 fu1、函数文件 fushu.mfunction [a,b,c,d]=fushu(A)a=exp(A);b=log(A);c=sin(A);d=cos(A);shu2.mA=input('请输入任意一个复数A:');[a,b,c,d]=fushu(A);abcd2、函数文件 wulixitong.mfunction [a1,a2,N1,N2]=wulisitong(m1,m2,M)g=9.8;A=[m1*cos(M*pi/180) -m1 -sin(M*pi/180) 0m1*sin(M*pi/180) 0 cos(M*pi/180) 00 m2 -sin(M*pi/180) 00 0 -cos(M*pi/180) 1];B=[0m1*gm2*g];X=inv(A)*B;a1=X(1);a2=X(2);N1=X(3);N2=X(4);命令文件wulixitong2.mm1=input('请输入m1:');m2=input('请输入m2:');M=input('请输入角度M:');[a1,a2,N1,N2]=wulisitong(m1,m2,M);a1a2N1N23、函数文件 sushu.mfunction [x]= sushu(m)%UNTITLED3 Summary of this function goes here for M=2:(m/2)if mod(m,M)==0b=0;breakelseb=1;endendif b==1x=m;xendend命令文件sushu2.mfor m=10:99[x]=sushu(m)x=x/10+mod(x,10)*10;[y]=sushu(x)end4、函数文件fx.mfunction [f] = fx( x)%UNTITLED7 Summary of this function goes here % Detailed explanation goes hereA=0.1+(x-2).^2;B=0.01+(x-3).^4;f=1./A+1./B;end5、(1)函数文件fn.mfunction [ f ] = fn(n)%UNTITLED6 Summary of this function goes here % Detailed explanation goes heref=n+10*log(n^2+5)end命令文件fn2.m[f40]=fn(40);[f30]=fn(30);[f20]-fn(20);y=f40/(f20+f30)(2)/函数文件fn3.mfunction [ f ] = fn3(n)%UNTITLED6 Summary of this function goes here % Detailed explanation goes heref=0;for x=1:nf=f+x*(x+1);end命令文件fn4.m[f40]=fn3(40);[f30]=fn3(30);[f20]-fn3(20);y=f40/(f20+f30)三、实验总结通过这次实习,我有以下收获:1,学会了运用m文件创建函数与命令文件2,掌握了函数的定义及变量的命名3,学会了运用MATLAB解决较为复杂的数学问题。
matlab实验五
实验五 基于matlab 的数据拟合与回归分析一、 实验类型验证性实验二、 实验学时2学时三、 实验目的1、掌握利用MATLAB 中实现单因变量的多元线性回归分析(经典多元线性回归分析)的方法;2、掌握利用MATLAB 中实现多因变量的多元线性回归分析(多对多线性回归分析)的方法。
3、掌握MATLAB 有关逐步回归的命令。
四、 实验内容及要求 实验内容:1 学习MATLAB 中有关经典多元线性回归分析的命令;(1) [b,bint,r,rint,stats] = regress(y,X,alpha)建立回归分析模型01122,i i i ip ip i y b b x b x b x ε=+++++其中()()2E 0,D i i εεσ==,1,2,,i n =.注:在该命令中,设计矩阵()(1)ij n p X x ⨯+=(X 的第1列全为1 ) 或响应值向量()1i n y y ⨯=中的无效值Nan 将被免忽略。
输入参数至少有2个,alpha 是检验的显著性水平,默认值为0.05。
输出参数至少有1个,b 是回归系数的估计值;bint 是各回归系数的置信度为1-alpha 的置信区间(第1列是它们的下界,第2列是它们的上界);r 是残差,rint 是残差的置信区间;stats 给出一个1*4的向量,依次是判定系数2R ,F 统计量的观测值及检验的p 值,以及误差的方差的估计值2ˆσ. 这里//(1)U p MMSF Q n p MSE==-- 是检验回归模型是否显著的检验统计量,当012:0p H b b b ====成立时, ~(,1)F F p n p --.可以通过分析残差的置信区间来观察原始数据是否存在异常点,若残差的置信区间不包括0,则可认为对应的观测值是异常值,将异常值全部去掉,重新建立的回归模型将更加精确。
可以调用命令rcoplot(r,rint)按观测顺序逐个画出各组观测值对应的残差和残差置信区间,从而观测异常值的位置。
matlab实验 函数
实验(五)项目名称:函数一、实验目的:1、熟练掌握matlab的程序流程控制结构。
2、熟悉掌握M文件的结构和函数调用。
3、掌握内联函数和函数句柄的使用。
二、实验原理1.MATLAB的语法规则简洁,编程效率高,作为一个完整的程序语言,MATLAB 也有各种程序流程控制,文件格式和函数调用的规则,通过对函数的调用就能够组成庞大的程序,完成复杂的功能。
2.函数调用:脚本文件直接运行,函数文件需要调用。
三、实验环境1.硬件:PC机2. 软件:Windows操作系统、matlab2015四、实验内容、步骤以及结果4.1.1实验要求:a=[1 2 3 4 5],用matlab原有函数求出最大值、最小值和平均值。
4.1.2实验步骤(1)启动matlab,新建一个M文件;(2)输入程序,如图1;(3)保存文件;(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;图1:程序输入4.1.3运行结果如下:图2:运行结果4.2.1实验要求:编写函数max_min_avg,使得调用该函数可返回矢量的最大值、最小值和平均值。
矢量a = [ 10, 2, -1, -7, 8],调用max_min_avg:[m1,m2,m3]= max_min_avg(a);求m1\m2\m3的值。
4.2.2实验步骤:(1)启动matlab,M文件;(2)输入程序,如图3和4;(3)保存文件;(4)编译源程序,观察屏幕上显示的编译信息,修改出现的错误,直到编译成功;图3:编写函数max_min_avg图4:调用该函数4.2.3运行结果如下:图5:运行结果五、实验总结通过本次实验,我慢慢理解了函数的调用过程,掌握了一些程序设计方法,但还不是很熟练。
实验五(线性方程组的数值解法和非线性方程求解)
1大学数学实验 实验报告 | 2014/4/5一、 实验目的1、学习用Matlab 软件数值求解线性代数方程组,对迭代法的收敛性和解的稳定性作初步分析;2、通过实例学习用线性代数方程组解决简化问题。
二、 实验内容项目一:种群的繁殖与稳定收获:种群的数量因繁殖而增加,因自然死亡而减少,对于人工饲养的种群(比如家畜)而言,为了保证稳定的收获,各个年龄的种群数量应维持不变。
种群因雌性个体的繁殖而改变,为方便起见以下种群数量均指其中的雌性。
种群年龄记作k=1,2,…,n ,当年年龄k 的种群数量记作x k ,繁殖率记作b k (每个雌性个体1年的繁殖的数量),自然存活率记作s k (s k =1−d k ,d k 为1年的死亡率),收获量记作ℎk ,则来年年龄k 的种群数量x ̌k 应该为x ̌k =∑b k n k=1x k , x ̌k+1=s k x k −ℎk , (k=1,2,…,n -1)。
要求各个年龄的种群数量每年维持不变就是要求使得x ̌k =x k , (k=1,2,…,n -1).(1) 如果b k , s k 已知,给定收获量ℎk ,建立求各个年龄的稳定种群数量x k 的模型(用矩阵、向量表示).(2) 设n =5,b 1=b 2=b 5=0,b 3=5,b 4=3,s 1=s 4=0.4,s 2=s 3=0.6,如要求ℎ1~ℎ5为500,400,200,100,100,求x 1~x 5.(3) 要使ℎ1~ℎ5均为500,如何达到?问题分析:该问题属于简单的种群数量增长模型,在一定的条件(存活率,繁殖率等)下为使各年龄阶段的种群数量保持不变,各个年龄段的种群数量将会满足一定的要求,只要找到种群数量与各个参量之间的关系,建立起种群数量恒定的方程就可以求解出各年龄阶段的种群数量。
模型建立:根据题目中的信息,令x ̌k =x k ,得到方程组如下:{x ̌1=∑b k nk=1x k =x 1x ̌k+1=s k x k −ℎk =x k+1整理得到:{−x 1∑b k nk=1x k =0−x k+1+s k x k =ℎk2 大学数学实验 实验报告 | 2014/4/52写成系数矩阵的形式如下:A =[b 1−1b 2b 3s 1−100s 2−1…b n−1b n0000⋮⋱⋮000000000⋯00−10s n−1−1]令h =[0, ℎ1,ℎ2,ℎ3,…,ℎn−2,ℎn−1]Tx =[x n , x n−1,…,x 1]T则方程组化为矩阵形式:Ax =h ,即为所求模型。
(完整版)MATLAB)课后实验答案[1]
1 + e2 (2) z = 1 ln( x + 1 + x 2 ) ,其中 x = ⎡⎢ 2⎣-0.45 ⎦2 2 ⎪t 2 - 2t + 1 2 ≤ t <3 ⎨实验一MATLAB 运算基础1. 先求下列表达式的值,然后显示 MATLAB 工作空间的使用情况并保存全部变量。
(1) z = 2sin 8501221 + 2i ⎤5 ⎥(3) z = e 0.3a - e -0.3asin(a + 0.3) + ln 0.3 + a ,a = -3.0, - 2.9, L , 2.9, 3.03⎧t 2 0 ≤ t < 1 (4) z = ⎪t 2 - 11 ≤ t <2 ,其中 t=0:0.5:2.5 4⎩解:M 文件:z1=2*sin(85*pi/180)/(1+exp(2))x=[2 1+2*i;-.45 5];z2=1/2*log(x+sqrt(1+x^2))a=-3.0:0.1:3.0;3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2)t=0:0.5:2.5;z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)4.完成下列操作:(1)求[100,999]之间能被21整除的数的个数。
(2)建立一个字符串向量,删除其中的大写字母。
解:(1)结果:m=100:999;n=find(mod(m,21)==0);length(n)ans=43(2).建立一个字符串向量例如:ch='ABC123d4e56Fg9';则要求结果是:ch='ABC123d4e56Fg9';k=find(ch>='A'&ch<='Z');ch(k)=[]ch=⎣O2⨯3⎥,其中E、R、O、S分别为单位矩阵、随机矩阵、零矩S⎦阵和对角阵,试通过数值计算验证A=⎢⎥。
实验五 用Matlab数据拟合
2. 已知观测数据点如表所示 x 1.6 2.7 1.3 4.1 3.6 2.3 y 17.7 49 13.1 189.4 110.8 34.5
0.6
4
4.9
409.1
3
65
2.4
36.9
求a, b, c的值, 使得曲线 f(x)=aex+bsin x+c lnx 与已知数据 点在最小二乘意义上充分接近.
例4 已知观测数据点如表所示
x 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 y 3.1 3.27 3.81 4.5 5.18 6 7.05 8.56 9.69 11.25 13.17 求三个参数 a, b, c的值, 使得曲线 f(x)=aex+bx2+cx3 与 已知数据点在最小二乘意义上充分接近.
1.55
500 106
2.47
2. 93
3. 03
2.89
1000 106 1500 106 2000 106 2375 106
3 1.953 103 1.517 103 1.219 10
/ / N / m 2 3.103 103 2.465 103
解: 描出散点图, 在命令窗口输入: t=[0:1:16] y=[30.0 29.1 28.4 28.1 28.0 27.7 27.5 27.2 27.0 26.8 26.5 26.3 26.1 25.7 25.3 24.8 24.0] plot(t,y,'*')
a=polyfit(t,y,1) a= -0.3012 29.3804 hold on
beta
= 3.0022 4.0304 0.9404
(完整版)Matlab实验5选择结构程序结构
实验五、选择与循环结构一、实验目的:1、 掌握建立和执行M 文件的方法。
2、 掌握利用if 语句实现选择结构的方法。
3、 掌握利用switch 语句实现多分支选择结构的方法。
4、 掌握try 语句的使用。
5、 掌握利用for 语句实现循环结构的方法。
6、 掌握利用while 语句实现循环结构的方法。
7、 熟悉利用向量运算来代替循环的操作方法。
二、实验内容:1、 列分段函数的值。
⎪⎩⎪⎨⎧--≠≠<≤+--≠<-+=其他且且,632,100,6530,6222x x x x x x x x x x x y要求:(1) 用if 语句实现,分别输出x =-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。
提示:x 的值从键盘输入,可以是向量。
%homework_5_1_1.mx=input('请输入x 的值:x=');if (x<0 & x~=-3)y= x.*x + x - 6elseif (x>=0 & x<10 & x~=2 & x~=3)y=x.*x-5.*x+6elsey=x.*x-x-6end>> homework_5_1请输入x 的值:x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]y =-5.2500 6.0000 -6.0000 -4.0000 -2.2500 0 14.0000(2) 用逻辑表达式实现上述函数。
%homework_5_1_2.mx=input('请输入x 的值:x=')y=(x<0 & x~=-3).*(x.*x+x-6)...+(x>=0 & x<10 &x~=2 &x~=3).*(x.*x-5.*x+6)...+(x>=10 | x==-3 | x==3 | x==2).*(x.*x-x-6)>> homework_5_1_2请输入x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]x =-0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y =-6.2500 6.0000 2.0000 -4.0000 -0.2500 0 6.00002、输入一个百分制成绩,要求输出成绩的等级为A,B,C,D,E。
MATLAB教程课后实验报告题目及解答[第一至第五章]
MATLAB教程实验报告实验项目名称实验一 Matlab基本操作学生姓名汪德旺专业班级 09数教(1)班学号 0301090131实验成绩日期一. 实验目的和要求1、了解MATLAB 的开发环境。
2、熟悉Matlab的基本操作。
3、掌握建立矩阵的方法。
4、掌握MATLAB各种表达式的书写规则以及常用函数的使用。
5、填写实验报告,实验报告文件取名为report1.doc。
6、于邮件附件形式将实验报告文件report1.doc 发到邮箱*******************,邮件主题为班级学号姓名,如:09数教1班15号张三。
二、实验内容1、先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。
(1)0 122sin851ze =+(2)2212 1ln(0.4552i z x x+⎡⎤==⎢⎥-⎣⎦其中(3)0.30.330.3sin(0.3)ln,22a ae e az a--+=++a=-3.0,-2.9,-2.8,…, 2.8, 2.9,3.0(4)2242,011,12,0:0.5:2.521,23t tz t tt t t⎧≤<⎪=-≤<=⎨⎪-+≤<⎩其中t2.已知:1234413134787,2033657327 A B--⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求下列表达式的值:(1)A+6*B和A-B+I(其中I为单位矩阵) (2)A*B和A.*B(3)A^3和A.^3(4)A/B和B\A(5)[A,B]和[A([1,3],:);B^2]3、设有矩阵A 和B123453016678910A=,B=17-691112131415023-41617181920970212223242541311⎡⎤⎢⎥⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎢⎥⎢⎥⎣⎦(1)求它们的乘积C 。
(2)将矩阵C 的右下角3*2子矩阵赋给D 。
(3)查看MATLAB 工作空间的使用情况。
MATLAB实验五
实验报告一.实验题目:题目五:DTMF 信号的生成是通过将两个有限长数字序列相加而实现;而对DTMF 信号的检测是通过计算DTMF 信号的DFT ;然后测量在给定8个频率上的能量而实现。
已知采样频率为8KHz ,DTMF 信号点数N =205,对DTMF 信号进行205点DFT 。
右表为DTMF 数字。
要求:① 通过键盘任意输入16个键之一,生成DTMF 信号。
② 试实现对该输入信号的检测,并在屏幕上显示。
③试从计算量角度考虑为什么采用DFT 而不用FFT 进行DTMF 信号检测。
④ 判断出每个频率对应的DFT 的频率采样点。
提示:各键对应的ASCII 码为0—9对应48—57,A—D对应65—68,#对应35,*对应42。
二. 实验目的(1) 用DFT 对DTMF 信号的指标值进行变换,实现对输入信号的检测。
(2) 了解DTMF 信号的生成和检测原理三. 实验原理DTMF 信号是由两个不同频率对应的正弦信号叠加后形成的,它是一种应用甚广的信号。
对DTMF 信号采样后再进行傅立叶变换,判断出频率采样点。
四. 实验步骤简述(1)输入字符。
(2)从相应的ASCII 码中找出输入的字符。
(3)然后确定其对应的两个不同频率。
(4)利用两个频率生成DTMF 信号。
(5)对生成的DTMF 信号做DFT ,求出其频谱分布。
(6) 通过能量来检测输入信号。
五.实验程序框图:六.源程序:clear alla=input(' 1290HZ 1336HZ 1447HZ 1663HZ\n 697Hz 1 2 3 A\n 770Hz 4 5 6 B\n 852Hz 78 9 C\n 941Hz * 0 # D\n输入数字=','s');%a=input('输入数字=','s');sm=abs(a);pm=[49 50 51 65;52 53 54 66;55 56 57 67;42 48 35 68];for p=1:4;for q=1:4;if pm(p,q)==a;break,endendif pm(p,q)==a;break,endendfprintf('ASCII码值AM=%0.f\n',pm(p,q))f1=[697 770 852 941];f2=[1209 1336 1447 1663];n=0:204;figure(1);x1=sin(2*pi*n*f1(p)/8000);x2=sin(2*pi*n*f2(q)/8000);subplot(211);plot(x1);subplot(212);plot(x2);x=x1+x2;figure(2)subplot(211);plot(x);xlabel('n');ylabel('x');title('DTMF信号');va=zeros(1,8);f=[18 20 22 24 31 34 38 43];for k=1:60Fx=0;for m=0:204Fx=x(1,m+1)*exp(-j*2*pi*m*(k)/205)+Fx;endY(1,k)=Fx;endYk=abs(Y);subplot(212);stem(Yk);xlabel('k');ylabel('|X(k)|');o=floor(f1(p)*205/8000);i=floor(f2(q)*205/8000);fprintf('采样点k=%d',o+1);fprintf(' %d',i);七.程序结果及图表:两个不同频率的正弦函数DTMF信号和其DFT变换题目八. 实验总结:通过这个题,我熟悉了对输入DTMF信号的检测过程,了解了DFT变换在实际中的应用。
MATLAB实验五 函数文件
MATLAB实验报告学院:光电学院班级:073-1姓名:***学号:************实验五 函数文件1.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。
程序设计:function [e ln s c]=num(x) e=exp(x) ln=log(x) s=sin(x) c=cos(x) end运行结果: >> num(5i) e =0.2837 - 0.9589i ln =1.6094 + 1.5708i s =0 +74.2032i c =74.2099 ans =0.2837 - 0.9589i2.一物理系统可用下列方程组来表示: ⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡----g g m m N N a a m m m m 2121212111001cos 000sin 00cos 0sin 0sin cos θθθθθθ从键盘输入m1、m2和θ的值,求N a a 121、、和N2的值。
其中g 取9.8,输入θ时以角度为单位。
程序设计: 函数文件in.m:function [a1,a2,N1,N2]=in(m1,m2,t) g=9.8;A=[m1*cos(t) -m1 -sin(t) 0;m1*sin(t) 0 cos(t) 0;0 m2 -sin(t) 0;0 0 -cos(t) 1]; C=[0;m1*g;0;m2*g]; B=inv(A)*C;a1=B(1);a2=B(2); N1=B(3); N2=B(4); end调用in.m 的命令文件: >> m1=1;m2=2;t=30*pi/180; >> [a1,a2,N1,N2]=in(m1,m2,t) 运行结果: a1 =6.5333 a2 =1.8860 N1 =7.5440 N2 =26.1333 4.设 f(x)=01.011.01)3()2(42+++--x x ,编写一个MATLAB 函数文件fx.m ,使得调用f(x)时,x 可用矩阵代入,得出的f(x)为同阶矩阵。
MATLAB_实验5
实验5 MATLAB在信号与系统的应用【实验目的】1、了解并熟悉MATLAB实现常用连续时间信号的产生方法;连续系统的时域和频域分析方法。
2、掌握MATLAB程序的编程方法。
3、了解MATLAB信号处理工具箱函数的调用方法。
【实验内容】1、对书上例题的总结例1 绘制了单位冲激函数、单位阶跃函数与复指数函数的图形,用到的关键语句单位冲激函数:x1=zeros(1,length(t)); %对所有信号初始化,t为时间x1(n1)=1/dt; %给出t1时刻脉冲信号,dt为时间间隔单位阶跃函数:x2 = [zeros(1,n1),ones(1,length(t)-n1)];%产生阶跃信号,n1为t1对应的样本序号例2 求解了LTI系统的零输入响应,用到了经典法求解,关键语句如下:p=roots(a); %求系统的极点V=rot90(vander(p));c= V\Y0'; % 用范德蒙特矩阵求对应于各极点的系数for k=1:n y= y+c(k)*exp(p(k)*t);end例3 求解n阶LTI系统的冲激响应,用到了residue函数求解极点和留数,还用到了for语句叠加各根分量。
例4 主要是卷积的计算。
用到的函数有conv函数计算卷积,input函数等待用户输入数值,fliplr(h)函数将h左右翻转。
例5 求LTI系统的零状态响应,和求解零输入同样用到留数residue函数来求解冲激响应函数,并且绘制冲激响应函数的图形,然后将其与输入信号的卷积求出,即输出函数,最后绘制输出函数的图形。
例7 将周期方波分解为多次正弦波之和,用程序演示谐波合成情况。
用到的新函数是line([0,pi+0.5],[pi/4,pi/4]) % 加上方波幅度线及标注halft=ceil(length(t)/2);mesh(t(1:halft),[1:10],y(:,1:halft)) %绘制三维图形例10 比较调幅信号通过带通滤波器后与原波形的区别。
MATLAB实验5(学号姓名)
实验五MATLAB函数及其调用
一、实验目的
(1)熟练掌握M文件的编写。
(2)掌握MATLAB程序的调试方法。
(3)掌握MATLAB函数文件的编写。
二、实验内容
(1)编写函数文件。
(2)对自己编写的程序进行调试。
三、程序设计
实验1:实验题6,教材51页。
实验2:编写函数rootresult.m求解一元二次方程ax2+bx+c=0的根。
输入参数a、b、c,调用用户编写的求根的函数,得到方程的根。
实验3:写一个MATLAB 函数piFun01.m 来计算下列级数:f(n) = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...) 其中n为函数的输入,代表上述级数的项数,f(n) 则是函数的输出。
(选做,附加分)
四、实验结果
实验1:
程序代码:
运行结果:
实验2:
程序代码:
运行结果:
实验3:
程序代码:
运行结果:。
MATLAB程序设计与应用课后实验答案
实验一MATLAB 运算基础1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1) 0122sin851z e =+(2)21ln(2z x =,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=-- (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.52. 已知:求下列表达式的值:(1) A+6*B和A-B+I(其中I为单位矩阵)(2) A*B和A.*B(3) A^3和A.^3(4) A/B及B\A(5) [A,B]和[A([1,3],:);B^2]解:运算结果:3. 设有矩阵A和B(1) 求它们的乘积C。
(2) 将矩阵C的右下角3×2子矩阵赋给D。
(3) 查看MATLAB工作空间的使用情况。
解:. 运算结果:4. 完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。
(2) 建立一个字符串向量,删除其中的大写字母。
解:(1) 结果:(2). 建立一个字符串向量 例如:ch='ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A O S +⎡⎤=⎢⎥⎣⎦。
解: M 文件如下;输出结果:由ans,所以22E R RS A OS +⎡⎤=⎢⎥⎣⎦ 2. 产生5阶希尔伯特矩阵H 和5阶帕斯卡矩阵P ,且求其行列式的值Hh 和Hp 以及它们的条件数Th 和Tp ,判断哪个矩阵性能更好。
为什么?解:M 文件如下:3. 建立一个5×5矩阵,求它的行列式值、迹、秩和范数。
matlab实验五
实验五曲面绘图【实验目的】1.了解二元函数图形的制作。
2.空间曲面等高线的制作。
3.学习掌握MATLAB软件有关的命令。
【实验内容】画出函数22y=的图形,并画出其等高线。
xz+【实验准备】1.曲线绘图的MATLAB命令MATLAB中主要用mesh,surf命令绘制二元函数图形。
可以用help mesh, help surf查阅有关这些命令的详细信息【实验方法与步骤】练习1画出函数22y=的图形,不妨将区域限制在z+x⨯-x。
用MATLAB作图的程序代码为:(-y∈)]3,3,[]3,3[>>clear;>>x=-3:0.1:3; %x的范围为[-3,3]>>y=-3:0.1:3; %y的范围为[-3,3]>>[X,Y]=meshgrid(x,y); %将向量x,y指定的区域转化为矩阵X,Y>>Z=sqrt(X.^2+Y.^2); %产生函数值Z>>mesh(X,Y,Z)结果如图5.1。
图5.1是网格线图,如果要画完整的曲面图,只需将上述的MATLAB 代码mesh(X,Y,Z)改为surf(X,Y,Z), 结果如图5.2图5.1 锥面图5.2 锥面要画等高线,需用contour,contour3命令.其中contour为二维等高线, contour3为三维等高线,如画图5.1的三维等高线, MATLAB代码为:>>clear;>>x=-3:0.1:3;>>y=-3:0.1:3;>>[X,Y]=meshgrid(x,y);>>Z=sqrt(X.^2+Y.^2);>>contour3(X,Y,Z,10) %画10条等高线>>xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis') %三个坐标轴的标记>>title('Contour3 of Surface') %标题>>grid on %画网格线结果如图5.3.图5.3 等高线如画图5.1的二维等高线, MATLAB代码为:>>clear; x=-3:0.1:3; y=-3:0.1:3;>>[X,Y]=meshgrid(x,y); Z=sqrt(X.^2+Y.^2);>> contour(X,Y,Z,10)>>xlabel('X-axis'),ylabel('Y-axis')>>title('Contour of Surface')>>grid on结果如图5.4.图5.4 等高线如果要画1=z 的等高线,则用命令>>clear; x=-3:0.1:3; y=-3:0.1:3;>>[X,Y]=meshgrid(x,y); Z=sqrt(X.^2+Y.^2);>> contour(X,Y,Z,[1 1])结果如图5.5。
(完整版)MATLAB)课后实验答案[1]
实验一 MATLAB 运算基础1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1) 0122sin 851z e =+(2) 21ln(2z x =,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--L (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.5 解:4. 完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。
(2) 建立一个字符串向量,删除其中的大写字母。
解:(1) 结果:(2). 建立一个字符串向量例如:ch='ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A O S +⎡⎤=⎢⎥⎣⎦。
解: M 文件如下;5. 下面是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦(1) 求方程的解。
(2) 将方程右边向量元素b 3改为0.53再求解,并比较b 3的变化和解的相对变化。
(3) 计算系数矩阵A 的条件数并分析结论。
解: M 文件如下: 123d4e56g9实验三 选择结构程序设计1. 求分段函数的值。
2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。
控制系统计算机仿真(matlab)实验五实验报告
实验五 控制系统计算机辅助设计一、实验目的学习借助MATLAB 软件进行控制系统计算机辅助设计的基本方法,具体包括超前校正器的设计,滞后校正器的设计、滞后-超前校正器的设计方法。
二、实验学时:4 学时 三、实验原理1、PID 控制器的设计PID 控制器的数学模型如公式(5-1)、(5-2)所示,它的三个特征参数是比例系数、积分时间常数(或积分系数)、微分时间常数(或微分系数),因此PID 控制器的设计就是确定PID 控制器的三个参数:比例系数、积分时间常数、微分时间常数。
Ziegler (齐格勒)和Nichols (尼克尔斯)于1942提出了PID 参数的经验整定公式。
其适用对象为带纯延迟的一节惯性环节,即:s e Ts Ks G τ-+=1)( 5-1式中,K 为比例系数、T 为惯性时间常数、τ为纯延迟时间常数。
在实际的工业过程中,大多数被控对象数学模型可近似为式(5-1)所示的带纯延迟的一阶惯性环节。
在获得被控对象的近似数学模型后,可通过时域或频域数据,根据表5-1所示的Ziegler-Nichols 经验整定公式计算PID 参数。
表控制器的参数。
假定某被控对象的单位阶跃响应如图5-4所示。
如果单位阶跃响应曲线看起来近似一条S 形曲线,则可用Ziegler-Nichols 经验整定公式,否则,该公式不适用。
由S 形曲线可获取被控对象数学模型(如公式5-1所示)的比例系数K 、时间常数T 、纯延迟时间τ。
通过表5-1所示的Ziegler-Nichols 经验整定公式进行整定。
如果被控对象不含有纯延迟环节,就不能够通过Ziegler-Nichols 时域整定公式进行PID 参数的整定,此时可求取被控对象的频域响应数据,通过表5-1 所示的Ziegler-Nichols 频域整定公式设计PID 参数。
如果被控对象含有纯延迟环节,可通过pade 命令将纯延迟环节近似为一个四阶传递函数模型,然后求取被控对象的频域响应数据,应用表5-1求取PID 控制器的参数。
实验五__用matlab求解常微分方程
实验五 用matlab 求解常微分方程1.微分方程的概念未知的函数以及它的某些阶的导数连同自变量都由一已知方程联系在一起的方程称为微分方程。
如果未知函数是一元函数,称为常微分方程。
常微分方程的一般形式为0),,",',,()(=n y y y y t F如果未知函数是多元函数,成为偏微分方程。
联系一些未知函数的一组微分方程组称为微分方程组。
微分方程中出现的未知函数的导数的最高阶解数称为微分方程的阶。
若方程中未知函数及其各阶导数都是一次的,称为线性常微分方程,一般表示为)()(')()(1)1(1)(t b y t a y t a y t a y n n n n =++++--若上式中的系数ni t a i ,,2,1),( =均与t 无关,称之为常系数。
2.常微分方程的解析解有些微分方程可直接通过积分求解.例如,一解常系数常微分方程1+=y dt dy可化为dt y dy=+1,两边积分可得通解为1-=tce y .其中c 为任意常数.有些常微分方程可用一些技巧,如分离变量法,积分因子法,常数变异法,降阶法等可化为可积分的方程而求得解析解.线性常微分方程的解满足叠加原理,从而他们的求解可归结为求一个特解和相应齐次微分方程的通解.一阶变系数线性微分方程总可用这一思路求得显式解。
高阶线性常系数微分方程可用特征根法求得相应齐次微分方程的基本解,再用常数变异法求特解。
一阶常微分方程与高阶微分方程可以互化,已给一个n 阶方程),,",',()1()(-=n n y y y t f y设)1(21,,',-===n n y y y y y y ,可将上式化为一阶方程组⎪⎪⎪⎩⎪⎪⎪⎨⎧====-),,,,(''''2113221n n nn y y y t f y yy y y y y反过来,在许多情况下,一阶微分方程组也可化为高阶方程。
实验五-MATLAB的程序设计
实验五MATLAB的程序设计一、实验目的1.熟悉MATLAB 的编程环境;2.熟悉和掌握脚本文件和函数文件建立与使用方法;3.掌握MATLAB程序设计的流程控制语句;4.掌握函数调用和参数传递;5.熟悉MATLAB 程序调试方法。
二、实验仪器1.计算机2.MATLAB 软件环境三、实验指导1. M 文本文件介绍一个M 文件通常包含五个部分,函数定义语句、H1 帮助行、帮助文本、函数体或者脚本文件语句和注释语句。
一个完整的M 文件的结构为:function f = fact(n) 函数定义语句% Compute a factorial value. H1 行% FACT(N) returns the factorial of N, 帮助文本% usually denoted by N!% Put simply, FACT(N) is PROD(1:N). 注释语句f = prod(1:n); 函数体函数定义语句只在函数文件中存在,定义函数名称、输入输出参数的数量和顺序。
函数定义语句的格式为:function y = fact(x)2. 函数流程控制顺序结构顺序结构是最简单的程序结构,系统在编译程序时,按照程序的物理位置顺序执行。
这种程序容易编制,但是结构单一,能够实现的功能有限。
判断语句(if…else…end)if…endif…else…endif…elseif…else…end1)if…end此时的程序结构如下:if 表达式执行代码块end这是最简单的判断语句,只有一个判断语句,其中的表达式为逻辑表达式,当表达式为真时,执行相应的语句,否则,直接跳到下一段语句。
2)if…else…end当程序有两个选择时,可以选择if…else…end 结构,此时程序结构为:if 表达式执行代码块1else执行代码块2end当判断表达式为真时,执行代码块1,否则执行代码块2。
3)if…elseif…else…end上面的两种形式中,分别包含一个选择和两个选择,当判断包含多个选择时,可以采用elseif 语句,结构为:if 表达式1执行代码块1elseif 表达式2执行代码块2elseif ..................else执行代码块end其中可以包含任意多个elseif 语句。
MATLAB)课后实验答案[1]
实验一 MATLAB 运算基础1。
先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1) 0122sin 851z e =+(2) 21ln(2z x =,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e az a a --+=++=--(4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.5 解:4. 完成下列操作:(1)求[100,999]之间能被21整除的数的个数. (2) 建立一个字符串向量,删除其中的大写字母。
解:(1) 结果:(2)。
建立一个字符串向量例如:ch=’ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A OS +⎡⎤=⎢⎥⎣⎦。
解: M 文件如下;5。
下面是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦ch =123d4e56g9(1) 求方程的解。
(2) 将方程右边向量元素b 3改为0。
53再求解,并比较b 3的变化和解的相对变化。
(3) 计算系数矩阵A 的条件数并分析结论。
解: M 文件如下:实验三 选择结构程序设计1. 求分段函数的值.2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=-5.0,—3.0,1.0,2。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB实验报告
学院:光电学院
班级:073-1
姓名:***
学号:************
实验五 函数文件
1.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。
程序设计:
function [e ln s c]=num(x) e=exp(x) ln=log(x) s=sin(x) c=cos(x) end
运行结果: >> num(5i) e =
0.2837 - 0.9589i ln =
1.6094 + 1.5708i s =
0 +74.2032i c =
74.2099 ans =
0.2837 - 0.9589i
2.一物理系统可用下列方程组来表示: ⎥⎥⎥
⎥
⎥⎦⎤
⎢⎢⎢⎢⎢⎣⎡=
⎥⎥⎥⎥⎥⎦
⎤⎢⎢
⎢⎢⎢
⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢
⎣⎡----g g m m N N a a m m m m 2121212111001cos 00
0sin 00cos 0sin 0sin cos θ
θθθθθ
从键盘输入
m
1
、
m
2
和θ的值,求
N a a 121、、和
N
2
的值。
其中g 取9.8,输入θ时以角度为单位。
程序设计: 函数文件in.m:
function [a1,a2,N1,N2]=in(m1,m2,t) g=9.8;
A=[m1*cos(t) -m1 -sin(t) 0;m1*sin(t) 0 cos(t) 0;0 m2 -sin(t) 0;0 0 -cos(t) 1]; C=[0;m1*g;0;m2*g]; B=inv(A)*C;
a1=B(1);
a2=B(2); N1=B(3); N2=B(4); end
调用in.m 的命令文件: >> m1=1;m2=2;t=30*pi/180; >> [a1,a2,N1,N2]=in(m1,m2,t) 运行结果: a1 =
6.5333 a2 =
1.8860 N1 =
7.5440 N2 =
26.1333 4.设 f(x)=
01
.01
1
.01
)
3()
2(4
2
+++--x x ,
编写一个MATLAB 函数文件fx.m ,使得调用f(x)时,x 可用矩阵代入,得出的f(x)为同阶矩阵。
程序设计: 函数文件fx.m:
function A=fx(x)
A=1./((x-2).^2+0.1)+1./(((x-3).^4)+0.01) end
调用fx.m 的命令文件:
>> A=fx([1 2;2 3;4 3]) 运行结果: A =
0.9716 10.9901 10.9901 100.9091 1.2340 100.9091 5.已知y=
)
20()30()
40(f f f +
(1)当f(n)=n+10ln(n 2+5)时,求y 的值。
程序设计:
函数文件fn.m:
function x=fn(n)
x=n+10*log(n^2+5)
end
调用fn.m的命令文件:
y=fn(40)/(fn(30)+fn(20)) 运行结果:
y =
0.6390
(2)当f(n)=1⨯2+2⨯3+3⨯4+…+n⨯(n+1)时,求y的值。
程序设计:
函数文件fn.m:
function x=fn(n)
if n<=0
x=0;
else
x=n*(n+1)+fn(n-1);
end
end
调用fn.m的命令文件:
y=fn(40)/(fn(30)+fn(20)) 运行结果:
y =
1.7662。