关于matlab的两个小程序的解释说明

关于matlab的两个小程序的解释说明,第1张

好久没做过这类地解答了,希望我说的还算明白

_________________________

function pr1()

%11差分方程

a=[1,-1,09]; %通过a,b构造了一个滤波器,传递函数为H(z)=1/(1-z^(-1)+09z^(-2)),a构造分母,b构造分子

b=1;

x=impseq(0,-20,120) %impseq是用来构造单位冲击函数,时间t的范围为[-20,120],当且仅当t=0处为1,即x(21)=1,其余均为零

n=-20:120;

h=filter(b,a,x); %以a,b构造的的滤波器,当输入为x时,输出为h,因为x是单位冲击函数,所以h就是该滤波器的单位冲击响应了

figure(1)

stem(n,h); %以n为横轴,h为纵轴画出火柴杆图

title('冲激响应');

xlabel('n');

ylabel('h(n)');

%

figure(2)

[z,p,g]=tf2zp(b,a) % [Z,P,K] = TF2ZP(NUM,DEN) finds the zeros, poles, and gains:

% z为零点,p为极点,g为增益,如下:

% (z-z1)(z-z2)(z-zn)

% H(z) = K ------------------------

% (z-p1)(z-p2)(z-pn)

zplane(z,p) %画出极零图

function [x,n]=impseq(n0,n1,n2)

n=[n1:n2];

x=[(n-n0)==0];

function pr2()

%12 experiment

__________________________________________

b=[00181,00543,00543,00181]; %其实虚线框中的这部分的作用和上面函数中的FILTER函数的作用一样,就是构造一个滤波器,H(z)还是b为分母,a为分子

a=[1000,-176,11829,-02781];

m=0:length(b)-1;

l=0:length(a)-1;

K=500;

k=1:K;

w=pik/K;

H=(bexp(-jm'w))/(aexp(-jl'w)); %求出单位冲击响应函数

__________________________________________________________________________________

magH=abs(H); %求出单位冲击响应函数的幅值

angH=angle(H); %求出单位冲击响应函数的相位

figure(1)

subplot(2,1,1); %做出子图

plot(w/pi,magH);

grid; %添加栅格

axis([0,1,0,1]); %调节坐标轴范围

xlabel('w(pi)');

ylabel('|H|');

title('幅度,相位响应');

subplot(2,1,2);

plot(w/pi,angH);

grid;

xlabel('w(pi)');

ylabel('angle(H)');

1、在电脑桌面上打开MATLAB。

2、当你没有把你编辑好的子函数放入正确的文件夹时,不管你输入的程序是否有错,当你执行时,系统都会提示“没有定义”,这个时候就是没有子函数文件放到主函数库文件夹中。

3、首先,输入“editconv”这个“conv”是我准备编辑的子函数的主函数名,每个人所需的主函数名都不一样,这里可以不要那么在意。然后就可以打开相应的主函数,这是可以看到主函数所在文件夹位置。如图所示,※记住这个位置。

4、然后进行子函数的编辑,首先新建一个新的m文件,然后在编辑框中输入所要的子函数,例如我就是输入了convnem的函数,这是conv的子函数。然后点击保存。

5、接下来,在“conv”所在文件位置,将位置记录下来,将子函数的文件保存到主函数所在的文件夹即可,然后在重新的将你所需的程序(含有子函数的)输入并且执行,这时你会发现原来提示的错误没有了,那么这时调用自己添加的子函数成功了。以后有相应的子函数都可以通过这样的方法进行添加子函数。

是这样的,如果你再程序开始添加holdon这个的画,表示这之后的每一次作图都保留以前的图,这样就可以连续画图了

反之holdoff,表示打开这个之后,每次画图,删除以前的图,

%假设将租金定在x元

%根据题意:减少的间数为(x-1000)/50取整

%于是可得利润=(50-(x-1000)/50))(x-100)

%整理可得:max=-002x^2+72x-7000;st:x>=1000,x<=3500

%程序(问题等价于求以上二次函数在[1000 3500]的最大值)

f = inline('-(-002x^2+72x-7000)');

[xmax,fval] = fminbnd(f,1000,3500);% 求f最小值

dingjia=xmax%最优定价

fmax=-fval%取反得最大值

% 结果:最优定价:dingjia = 18000e+003=1800 最大利润:fmax = 57800e+004=57800

以上就是关于关于matlab的两个小程序的解释说明全部的内容,包括:关于matlab的两个小程序的解释说明、怎么实现matlab子程序的放置以及调用、matlab程序画图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10101006.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存