第一篇:matlab习题
1.输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。a=rand(1,20);
max1=max(a)%用max函数求最大值
min1=min(a)%用max函数求最大值
%以下用循环方法求解:
max2=a(1);min2=a(1);for i=2:20 if a(i)>max2 max2=a(i);end
if a(i) end max2 min2 调用MATLAB的max函数、min函数来实现: >> a=rand(1,20)zuidazhi=max(a)zuixiaozhi=min(a) a = Columns 1 through 8 0.7513 0.2551 0.5060 0.6991 Columns 9 through 16 0.1493 0.2575 0.8407 0.2543 Columns 17 through 20 0.1966 0.2511 0.6160 0.4733 zuidazhi = 0.9593 zuixiaozhi = 0.8909 0.9593 0.8143 0.2435 0.5472 0.1386 0.9293 0.3500 0.1386 2.求Fibonacci数列 (1)大于4000的最小项。 (2)5000之内的项数。(1)function t=fibonacc1 f=[1,1];n=2;while 1 f=[f,f(n-1)+f(n)];n=length(f);if f(n)>4000 break;end end t=f(n);return (2)function n=fibonacc2 f=[1,1];n=2;while 1 f=[f,f(n-1)+f(n)];n=length(f);if f(n)>4000 break;end end n=n-1;return 3.写出下列程序的输出结果: s=0; a=[12,13,14;15,16,17;18,19,20;21,22,23]; for k=a for j=1:4 if rem(k(j),2)~=0 s=s+k(j); end end end 21A0 S Ans=108 1、解方程组Ax=b,分别用求逆解法与直接解法求其解。 121000121000,10b0 0 012100 00120A=[2-1 0 0 0;-1 2-1 0 0;0-1 2-1 0;0 0-1 2-1;0 0 0-1 2];b=[1;0;0;0;0];x=inv(A)*b 2、编一个m程序,求N阶方阵A的行列式的值 function s=mydet(A)n=size(A); if(n(1)~=n(2)) return;end n=n(1);if(n==1)s=A; return;end s=0; for i=1:n s=s-(-1)^i*A(1,i)*mydet(A(2:n,[1:i-1 i+1:n]));end 3.今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值。p1=[1.0 0.0 0.0-2.0 1.0];p2=[0.0 0.0 1.0 4.0-0.5];p1x=poly2sym(p1);p2x=poly2sym(p2);p=p1x+p2x 4.试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。如N=5,原来x为: x=[ 1 ] 而经过颠倒处理后x中数据的次序应该为: x=[ 9 ] x=[ 1 3 5 7 9 ] xx=rot90(rot90(x)) 1.在[0 2π]范围内绘制二维曲线图y=sin(x)*cos(5x)。x = 0:pi/10:2*pi;y = sin(x).*cos(5*x)plot(x,y) 2.在[0 2π]范围内绘制以Y轴为对数的二维曲线图。 y=|1000sin(4x)|+1 x=linspace(0,2*pi,100);y=abs(1000*sin(4*x))+1;semilogy(x,y) 3.把自己姓名中的各个拼音字母(小写)所对应的ASCII值转换为二进制序列,并用二进制脉冲绘图表示出来 mingzi='shaopengpeng';% b=dec2bin(int8(s))b=double(mingzi)c=dec2bin(b)c=c' stem(str2num(c(:)))Matlab介绍 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB应用非常之广泛! MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户直接进行下载就可以用。 优势特点: 1)高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来; 2)具有完备的图形处理功能,实现计算结果和编程的可视化; 3)友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握; 4)功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等),为用户提供了大量方便实用的处理工具。 习题 第三讲 1.输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。 用循环结构的程序: >> a=[1 3 5-1 20 23-8 39-3 7-4-11 34-31 12 13 33-43-50 45] c=a(1);d=a(1);for n=1:20;if a(n)>c b=a(n);c=a(n);else b=c;end;end;for n=1:20;if a(n) 5-1 20 23-8 39-3 7-4-11 34-31 12 13 33 Columns 18 through 20 -43-50 45 结果 b = c = 调用MATLAB的max函数、min函数来实现:的程序 >> a=[1 3 5-1 20 23-8 39-3 7-4-11 34-31 12 13 33-43-50 45] b=max(a);d=min(a);b d 运行结果: a = Columns 1 through 17 5-1 20 23-8 39-3 7-4-11 34-31 12 13 33 Columns 18 through 20 -43-50 45 结果 b = d = 2.求Fibonacci数列 (1)大于4000的最小项。 (2)5000之内的项数。 3、写出下列程序的输出结果: s=0; a=[12,13,14;15,16,17;18,19,20;21,22,23]; for k=a for j=1:4 if rem(k(j),2)~=0 s=s+k(j); end end end s 运行结果: s= 108 第四章习题 1、解方程组Ax=b,分别用求逆解法与直接解法求其解。 21000 121001A 01210b0 00121, 0 0001200 2、编一个m程序,求N阶方阵A的行列式的值。 3、今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值。 4.试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。如N=5,原来x为: x=[ 1 ] 而经过颠倒处理后x中数据的次序应该为: x=[ 9 ] 第五章习题 1.在[0 2π]范围内绘制二维曲线图y=sin(x)*cos(5x)。 x=0:pi/100:2*pi;y=sin(x).*cos(5*x);plot(x,y)10.80.60.40.20-0.2-0.4-0.6-0.8-101234567 2.在[0 2π]范围内绘制以Y轴为对数的二维曲线图。 y=|1000sin(4x)|+1 x=(0:0.01:2*pi); y=abs(1000*sin(4*x))+1;semilogy(x,y); ***00200001234567 3、把自己姓名中的各个拼音字母(小写)所对应的ASCII值转换为二进制序列,并用二进制脉冲绘图表示出来 a='shaopengpeng';b=dec2bin(a);stem(str2num(b(:))) 心得体会 Matlab是一个强大的数学工具,它的应用广泛,涉及到各个领域.它使用起来十分方便,不用麻烦去定义变量.它的绘图能力很强,甚至可以模拟出三维视图.矩阵是它应用的核心,许多工程繁琐的运算都需要靠矩阵来化简,这正是它的生命力所在.但是,他的函数很多,开始学时记的比较痛苦,我已经深深感觉到了.不过看多了也就熟了,感觉和学五笔差不多.它的语法简单,像我学过C语言的学起来还是蛮容易的.它的数组定义十分符合自然,是从1开始的,数组元素的调用也很接近数学的表达.此外,函数的名字也很符合英文规则,反正我用得很开心就是了.9 通过学习matlab,我又一次锻炼了自己的思维.它学起来得心应手也让我明白了学习一门语言(c语言)对学习其他语言的帮助指导作用.同时,它也加强了我理论联系实际的能力.这是一个专业课的基础工具,学好它是必要的 汽车理论课后习题Matlab程序 1.3 确定一轻型货车的动力性能(货车可装用4挡或5挡变速器,任选 其中的一种进行整车性能计算): 1)绘制汽车驱动力与行驶阻力平衡图。 2)求汽车最高车速,最大爬坡度及克服该坡度时相应的附着率。 3)绘制汽车行驶加速度倒数曲线,用图解积分法求汽车用2档起步加速行驶至70km/h的车速-时间曲线,或者用计算机求汽车用2档起步加速行驶至70km/h的加速时间。 轻型货车的有关数据: 汽油发动机使用外特性的Tq-n曲线的拟合公式为 式中,Tq为发动机转矩(N•m);n为发动机转速(r/min)。 发动机的最低转速nmin=600r/min,最高转速nmax=4000r/min。 装载质量 2000kg 整车整备质量 1800kg 总质量 3880kg 车轮半径 0.367m 传动系机械效率 ηt=0.85 滚动阻力系数 f=0.013 空气阻力系数×迎风面积 CDA=2.77m2 主减速器传动比 i0=5.83 飞轮转动惯量 If=0.218kg•m2 二前轮转动惯量 Iw1=1.798kg•m2 四后轮转动惯量 Iw2=3.598kg•m2 变速器传动比 ig(数据如下表) Ⅰ档 Ⅱ档 Ⅲ档 Ⅳ档 Ⅴ档 四档变速器 6.09 3.09 1.71 1.00 五档变速器 5.56 2.769 1.644 1.00 0.793 轴距 L=3.2m 质心至前轴距离(满载) a=1.974m 质心高(满载) hg=0.9m 解:Matlab程序: (1) 求汽车驱动力与行驶阻力平衡图和汽车最高车速程序: n=[600:10:4000]; Tq=-19.313+295.27*(n/1000)-165.44*(n/1000).^2+40.874*(n/1000).^3-3.8445*(n/1000).^4; m=3880;g=9.8;nmin=600;nmax=4000; G=m*g; ig=[5.56 2.769 1.644 1.00 0.793];nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83; L=3.2;a=1.947;hg=0.9;If=0.218;Iw1=1.798;Iw2=3.598; Ft1=Tq*ig(1)*i0*nT/r; Ft2=Tq*ig(2)*i0*nT/r; Ft3=Tq*ig(3)*i0*nT/r; Ft4=Tq*ig(4)*i0*nT/r; Ft5=Tq*ig(5)*i0*nT/r; ua1=0.377*r*n/ig(1)/i0; ua2=0.377*r*n/ig(2)/i0; ua3=0.377*r*n/ig(3)/i0; ua4=0.377*r*n/ig(4)/i0; ua5=0.377*r*n/ig(5)/i0; ua=[0:5:120]; Ff=G*f; Fw=CDA*ua.^2/21.15; Fz=Ff+Fw; plot(ua1,Ft1,ua2,Ft2,ua3,Ft3,ua4,Ft4,ua5,Ft5,ua,Fz); title('驱动力-行驶阻力平衡图'); xlabel('ua(km/s)'); ylabel('Ft(N)'); gtext('Ft1'),gtext('Ft2'),gtext('Ft3'),gtext('Ft4'),gtext('Ft5'),gtext('Ff+Fw'); zoom on; [x,y]=ginput(1); zoom off; disp('汽车最高车速=');disp(x);disp('km/h'); 汽车最高车速= 99.3006 km/h (2)求汽车最大爬坡度程序: n=[600:10:4000]; Tq=-19.313+295.27*(n/1000)-165.44*(n/1000).^2+40.874*(n/1000).^3-3.8445*(n/1000).^4; m=3880;g=9.8;nmin=600;nmax=4000; G=m*g; ig=[5.56 2.769 1.644 1.00 0.793];nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83; L=3.2;a=1.947;hg=0.9;If=0.218;Iw1=1.798;Iw2=3.598; Ft1=Tq*ig(1)*i0*nT/r; ua1=0.377*r*n/ig(1)/i0; Ff=G*f; Fw1=CDA*ua1.^2/21.15; Fz1=Ff+Fw1; Fi1=Ft1-Fz1; Zoom on; imax=100*tan(asin(max(Fi1/G))); disp('汽车最大爬坡度='); disp(imax); disp('%'); 汽车最大爬坡度= 35.2197% (3)求最大爬坡度相应的附着率和求汽车行驶加速度倒数曲线程序: clear n=[600:10:4000]; Tq=-19.313+295.27*(n/1000)-165.44*(n/1000).^2+40.874*(n/1000).^3-3.8445*(n/1000).^4; m=3880;g=9.8;nmin=600;nmax=4000; G=m*g; ig=[5.56 2.769 1.644 1.00 0.793];nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83; L=3.2;a=1.947;hg=0.9;If=0.218;Iw1=1.798;Iw2=3.598; Ft1=Tq*ig(1)*i0*nT/r; Ft2=Tq*ig(2)*i0*nT/r; Ft3=Tq*ig(3)*i0*nT/r; Ft4=Tq*ig(4)*i0*nT/r; Ft5=Tq*ig(5)*i0*nT/r; ua1=0.377*r*n/ig(1)/i0; ua2=0.377*r*n/ig(2)/i0; ua3=0.377*r*n/ig(3)/i0; ua4=0.377*r*n/ig(4)/i0; ua5=0.377*r*n/ig(5)/i0; Fw1=CDA*ua1.^2/21.15; Fw2=CDA*ua2.^2/21.15; Fw3=CDA*ua3.^2/21.15; Fw4=CDA*ua4.^2/21.15; Fw5=CDA*ua5.^2/21.15; Ff=G*f; deta1=1+(Iw1+Iw2)/(m*r^2)+(If*ig(1)^2*i0^2*nT)/(m*r^2); deta2=1+(Iw1+Iw2)/(m*r^2)+(If*ig(2)^2*i0^2*nT)/(m*r^2); deta3=1+(Iw1+Iw2)/(m*r^2)+(If*ig(3)^2*i0^2*nT)/(m*r^2); deta4=1+(Iw1+Iw2)/(m*r^2)+(If*ig(4)^2*i0^2*nT)/(m*r^2); deta5=1+(Iw1+Iw2)/(m*r^2)+(If*ig(5)^2*i0^2*nT)/(m*r^2); a1=(Ft1-Ff-Fw1)/(deta1*m);ad1=1./a1; a2=(Ft2-Ff-Fw2)/(deta2*m);ad2=1./a2; a3=(Ft3-Ff-Fw3)/(deta3*m);ad3=1./a3; a4=(Ft4-Ff-Fw4)/(deta4*m);ad4=1./a4; a5=(Ft5-Ff-Fw5)/(deta5*m);ad5=1./a5; plot(ua1,ad1,ua2,ad2,ua3,ad3,ua4,ad4,ua5,ad5); axis([0 0 10]); title('汽车的加速度倒数曲线'); xlabel('ua(km/h)'); ylabel('1/a'); gtext('1/a1');gtext('1/a2');gtext('1/a3');gtext('1/a4');gtext('1/a5'); a=max(a1); af=asin(max(Ft1-Ff-Fw1)/G); C=tan(af)/(a/L+hg*tan(af)/L); disp('假设后轮驱动,最大爬坡度相应的附着率='); disp(C); 假设后轮驱动,最大爬坡度相应的附着率= 0.4219 (4) >>clear nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83;If=0.218; Iw1=1.798;Iw2=3.598;L=3.2;a=1.947;hg=0.9;m=3880;g=9.8; G=m*g; ig=[5.56 2.769 1.644 1.00 0.793]; nmin=600;nmax=4000; u1=0.377*r*nmin./ig/i0; u2=0.377*r*nmax./ig/i0; deta=0*ig; for i=1:5 deta(i)=1+(Iw1+Iw2)/(m*r^2)+(If*(ig(i))^2*i0^2*nT)/(m*r^2); end ua=[6:0.01:99];N=length(ua);n=0;Tq=0;Ft=0;inv_a=0*ua;delta=0*ua; Ff=G*f; Fw=CDA*ua.^2/21.15; for i=1:N k=i; if ua(i)<=u2(2) n=ua(i)*(ig(2)*i0/r)/0.377; Tq=-19.313+295.27*(n/1000)-165.44*(n/1000)^2+40.874*(n/1000)^3-3.8445*(n/1000)^4; Ft=Tq*ig(2)*i0*nT/r; inv_a(i)=(deta(2)*m)/(Ft-Ff-Fw(i)); delta(i)=0.01*inv_a(i)/3.6; elseif ua(i)<=u2(3) n=ua(i)*(ig(3)*i0/r)/0.377; Tq=-19.313+295.27*(n/1000)-165.44*(n/1000)^2+40.874*(n/1000)^3-3.8445*(n/1000)^4; Ft=Tq*ig(3)*i0*nT/r; inv_a(i)=(deta(3)*m)/(Ft-Ff-Fw(i)); delta(i)=0.01*inv_a(i)/3.6; elseif ua(i)<=u2(4) n=ua(i)*(ig(4)*i0/r)/0.377; Tq=-19.313+295.27*(n/1000)-165.44*(n/1000)^2+40.874*(n/1000)^3-3.8445*(n/1000)^4; Ft=Tq*ig(4)*i0*nT/r; inv_a(i)=(deta(4)*m)/(Ft-Ff-Fw(i)); delta(i)=0.01*inv_a(i)/3.6; else n=ua(i)*(ig(5)*i0/r)/0.377; Tq=-19.313+295.27*(n/1000)-165.44*(n/1000)^2+40.874*(n/1000)^3-3.8445*(n/1000)^4; Ft=Tq*ig(5)*i0*nT/r; inv_a(i)=(deta(5)*m)/(Ft-Ff-Fw(i)); delta(i)=0.01*inv_a(i)/3.6; end a=delta(1:k); t(i)=sum(a); end plot(t,ua); axis([0 0 100]); title('汽车2档原地起步换挡加速时间曲线'); xlabel('时间t(s)'); ylabel('速度ua(km/h)'); >> ginput ans = 25.8223 70.0737 25.7467 70.0737 所以汽车2档原地起步换挡加速行驶至70km/h的加速时间约为25.8s 2.7已知货车装用汽油发动机的负荷特性与万有特性。负荷特性曲线的拟合公式为: 其中,b为燃油消耗率[g/(kW•h)];Pe为发动机净功率(kW);拟合式中的系数随转速n变化。怠速油耗(怠速转速400r/min)。 计算与绘制题1.3中货车的1)汽车功率平衡图。 2)最高档与次高档的等速百公里油耗曲线。或利用计算机求货车按JB3352-83规定的六工况循环行驶的百公里油耗。计算中确定燃油消耗值b时,若发动机转速与负荷特性中给定的转速不相等,可由相邻转速的两根曲线用插值法求得。 解:Matlab程序: (1) 汽车功率平衡图程序: clear n=[600:10:4000]; Tq=-19.313+295.27*(n/1000)-165.44*(n/1000).^2+40.874*(n/1000).^3-3.8445*(n/1000).^4; m=3880;g=9.8; G=m*g; ig=[5.56 2.769 1.644 1.00 0.793]; nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83; L=3.2;a=1.947;hg=0.9;If=0.218;Iw1=1.798;Iw2=3.598; ua1=0.377*r*n/ig(1)/i0; ua2=0.377*r*n/ig(2)/i0; ua3=0.377*r*n/ig(3)/i0; ua4=0.377*r*n/ig(4)/i0; ua5=0.377*r*n/ig(5)/i0; Pe1=Tq.*ig(1)*i0.*ua1./(3600*r); Pe2=Tq.*ig(2)*i0.*ua2./(3600*r); Pe3=Tq.*ig(3)*i0.*ua3./(3600*r); Pe4=Tq.*ig(4)*i0.*ua4./(3600*r); Pe5=Tq.*ig(5)*i0.*ua5./(3600*r); ua=[0:0.35:119]; Ff=G*f; Fw=CDA*ua.^2/21.15; Pf=Ff*ua/3600; Pw=Fw.*ua/3600; Pe0=(Pf+Pw)./nT; Pe=max(Pe1); plot(ua1,Pe1,ua2,Pe2,ua3,Pe3,ua4,Pe4,ua5,Pe5,ua,Pe0,ua,Pe); axis([0 119 0 100]); title('汽车功率平衡图'); xlabel('ua(km/h)'); ylabel('Pe(kw)'); gtext('1'),gtext('2'),gtext('3'),gtext('4'),gtext('5'),gtext('(Pf+Pw)/et'),gtext('Pe'); (2)最高档与次高档的等速百公里油耗曲线程序: clear n=600:1:4000; m=3880;g=9.8; G=m*g; ig=[5.56 2.769 1.644 1.00 0.793]; nT=0.85;r=0.367;f=0.013;CDA=2.77;i0=5.83; L=3.2;a=1.947;hg=0.9;If=0.218;Iw1=1.798;Iw2=3.598; n0=[815 1207 1614 2012 2603 3006 3403 3804]; B00=[1326.8 1354.7 1284.4 1122.9 1141.0 1051.2 1233.9 1129.7]; B10=[-416.46 -303.98 -189.75 -121.59 -98.893 -73.714 -84.478 -45.291]; B20=[72.379 36.657 14.524 7.0035 4.4763 2.8593 2.9788 0.71113]; B30=[-5.8629 -2.0553 -0.51184 -0.18517 -0.091077 -0.05138 -0.047449 -0.00075215]; B40=[0.17768 0.043072 0.0068164 0.0018555 0.00068906 0.00035032 0.00028230 -0.000038568]; B0=spline(n0,B00,n); B1=spline(n0,B10,n); B2=spline(n0,B20,n); B3=spline(n0,B30,n); B4=spline(n0,B40,n); Ff=G*f; ua4=0.377*r*n/ig(4)/i0; ua5=0.377*r*n/ig(5)/i0; Fz4=Ff+CDA*(ua4.^2)/21.15; Fz5=Ff+CDA*(ua5.^2)/21.15; Pe4=Fz4.*ua4./(nT*3.6*1000); Pe5=Fz5.*ua5./(nT*3.6*1000); for i=1:1:3401 b4(i)=B0(i)+B1(i)*Pe4(i)+B2(i)*Pe4(i).^2+B3(i)*Pe4(i).^3+B4(i)*Pe4(i).^4; b5(i)=B0(i)+B1(i)*Pe5(i)+B2(i)*Pe5(i).^2+B3(i)*Pe5(i).^3+B4(i)*Pe5(i).^4; end pg=7.0; Q4=Pe4.*b4./(1.02.*ua4.*pg); Q5=Pe5.*b5./(1.02.*ua5.*pg); plot(ua4,Q4,ua5,Q5); axis([0 30]); title('最高档与次高档等速百公里油耗曲线'); xlabel('ua(km/h)'); ylabel('百公里油耗(L/100km)'); gtext('4'),gtext('5'); 3.1改变1.3题中轻型货车的主减速器传动比,做出为5.17、5.43、5.83、6.17、6.33时的燃油经济性—加速时间曲线,讨论不同值对汽车性能的影响。 解:Matlab程序: 主程序: i0=[5.17,5.43,5.83,6.17,6.33]; %输入主传动比的数据 for i=1:1:5 y(i)=jiasushijian(i0(i)); %求加速时间 end y; for i=1:1:5 b(i)=youhao(i0(i)); %求对应i0的六工况百公里油耗 end b; plot(b,y,'+r') hold on b1=linspace(b(1),b(5),100); y1=spline(b,y,b1); %三次样条插值 plot(b1,y1); %绘制燃油经济性-加速时间曲线 title('燃油经济性—加速时间曲线'); xlabel('百公里油耗(L/100km)'); ylabel('加速时间s'); gtext('i0=5.17'),gtext('i0=5.43'),gtext('i0=5.83'),gtext('i0=6.17'),gtext('i0=6.33'); 子程序: (1) function y=jiasushijian(i0) %求加速时间的处理函数 n1=linspace(0,5000); %先求各个档位的驱动力 nmax=4000;nmin=600;r=0.367;yita=0.85;CDA=2.77;f=0.013;G=(3880)*9.8;ig=[6.09,3.09,1.71,1.00];%i0=5.83 for i=1:1:4 %i为档数 uamax(i)=chesu(nmax,r,ig(i),i0); %计算各个档位的最大速度与最小速度 uamin(i)=chesu(nmin,r,ig(i),i0); ua(i,:)=linspace(uamin(i),uamax(i),100); n(i,:)=zhuansu(ua(i,:),r,ig(i),i0); %计算各个档位的转速范围 Ttq(i,:)=zhuanju(n(i,:)); %求出各档位的转矩范围 Ft(i,:)=qudongli(Ttq(i,:),ig(i),i0,yita,r); %求出驱动力 F(i,:)=f*G+CDA*(ua(i,:).^2)/21.15; %求出滚动阻力和空气阻力的和 delta(i,:)=1+(1.798+3.598+0.218*(ig(i)^2)*(i0^2)*yita)/(3880*r^2); %求转动质量换算系数 a(i,:)=1./(delta(i,:).*3880./(Ft(i,:)-F(i,:))); %求出加速度 F2(i,:)=Ft(i,:)-F(i,:); end %下面分各个档位进行积分,求出加速时间 temp1(1,:)=ua(2,:)/3.6; temp1(2,:)=1./a(2,:); n1=1; for j1=1:1:100 if ua(3,j1)>max(ua(2,:))&&ua(3,j1)<=70 temp2(1,n1)=ua(3,j1)/3.6; temp2(2,n1)=1./a(3,j1); n1=n1+1; end end n2=1; for j1=1:1:100 if ua(4,j1)>max(ua(3,:))&&ua(4,j1)<=70; temp3(1,n2)=ua(4,j1)/3.6; temp3(2,n2)=1./a(4,j1); n2=n2+1; end end y=temp1(1,1)*temp1(2,1)+qiuji(temp1(1,:),temp1(2,:))+qiuji(temp2(1,:),temp2(2,:))+qiuji(temp3(1,:),temp3(2,:)); end (2) function ua=chesu(n,r,ig,i0); %由转速计算车速 ua=0.377*r.*n/(ig*i0); (3) function n=zhuansu(ua,r,ig,i0); %求转速 n=ig*i0.*ua./(0.377*r); end (4) function y=zhuanju(n); %求转矩函数 y=-19.313+295.27.*(n./1000)-165.44.*(n./1000).^2+40.874.*(n./1000).^3-3.8445.*(n./1000).^4; (5) function y=qudongli(Ttq,ig,i0,yita,r); %求驱动力函数 y=(ig*i0*yita.*Ttq)/r; end (6) function p=qiuji(x0,y0) %求积分函数 n0=size(x0); n=n0(2); x=linspace(x0(1),x0(n),200) ; y=spline(x0,y0,x); %插值 % figure;plot(x,y); p=trapz(x,y) ; end (7) %求不同i0下的六工况油耗 function b=youhao(i0); global f G CDA yita m r If Iw1 Iw2 pg B0 B1 B2 B3 B4 n %声明全局变量 ig=[6.09,3.09,1.71,1.00];r=0.367; yita=0.85;CDA=2.77;f=0.013;%i0=5.83; G=(3880)*9.8;If=0.218;Iw1=1.798;Iw2=3.598;m=3880; %汽车的基本参数设定 n0=[815 1207 1614 2012 2603 3006 3403 3804]; B00=[1326.8 1354.7 1284.4 1122.9 1141.0 1051.2 1233.9 1129.7]; B10=[-416.46 -303.98 -189.75 -121.59 -98.893 -73.714 -84.478 -45.291]; B20=[72.379 36.657 14.524 7.0035 4.4763 2.8593 2.9788 0.71113]; B30=[-5.8629 -2.0553 -0.51184 -0.18517 -0.091077 -0.05138 -0.047449 -0.00075215]; B40=[0.17768 0.043072 0.0068164 0.0018555 0.00068906 0.00035032 0.00028230 -0.000038568]; n=600:1:4000; B0=spline(n0,B00,n); B1=spline(n0,B10,n); B2=spline(n0,B20,n); %使用三次样条插值,保证曲线的光滑连续 B3=spline(n0,B30,n); B4=spline(n0,B40,n); ua4=0.377*r.*n./(i0*ig(4)); %求出发动机转速范围内对应的III、IV档车速 F4=f*G+CDA*(ua4.^2)/21.15; %求出滚动阻力和空气阻力的和 P_fw4=F4.*ua4./(yita*3.6*1000); %求出阻力功率 for i=1:1:3401 %用拟合公式求出各个燃油消耗率 b4(i)=B0(i)+B1(i)*P_fw4(i)+B2(i)*(P_fw4(i))^2+B3(i)*(P_fw4(i))^3+B4(i)*(P_fw4(i))^4; end pg=7.06; %汽油的重度取7.06N/L ua4_m=[25,40,50]; %匀速阶段的车速 s_m=[50,250,250]; %每段匀速走过的距离 b4_m=spline(ua4,b4,ua4_m); %插值得出对应速度的燃油消耗率 F4_m=f*G+CDA*(ua4_m.^2)/21.15; %车速对应的阻力 P_fw4_m=F4_m.*ua4_m./(yita*3.6*1000); %发动机功率 Q4_m=P_fw4_m.*b4_m.*s_m./(102.*ua4_m.*pg) ; Q4_a1=jiasu(40,25,ig(4),0.25,ua4,i0); Q4_a2=jiasu(50,40,ig(4),0.2,ua4,i0); Qid=0.299;tid=19.3;s=1075; Q_i=Qid*tid; %求出减速阶段的燃油消耗量 Q4all=(sum(Q4_m)+Q4_a1+Q4_a2+Q_i)*100/s; %IV档六工况百公里燃油消耗量 b=Q4all; (8)加速阶段处理函数 function q=jiasu(umax,umin,ig,a,ua0,i0); global f G CDA yita m r If Iw1 Iw2 pg B0 B1 B2 B3 B4 n; %i0 ; ua1=umin:1:umax; %把速度范围以1km/h为间隔进行划分 delta=1+(Iw1+Iw2)/(m*r^2)+(If*ig^2*i0^2*yita)/(m*r^2); P0=(G*f.*ua0./3600+CDA.*ua0.^3/76140+(delta*m.*ua0/3600)*a)/yita; P=(G*f.*ua1/3600+CDA.*ua1.^3/76140+(delta*m.*ua1/3600)*a)/yita; dt=1/(3.6*a) ; %速度每增加1km/h所需要的时间 for i=1:1:3401 %重新利用拟合公式求出b与ua的关系 b0(i)=B0(i)+B1(i)*P0(i)+B2(i)*(P0(i))^2+B3(i)*(P0(i))^3+B4(i)*(P0(i))^4; end b1=interp1(ua0,b0,ua1); %插值出各个速度节点的燃油消耗率 Qt=P.*b1./(367.1.*pg); %求出各个速度节点的燃油消耗率 i1=size(Qt); i=i1(2); Qt1=Qt(2:i-1); q=(Qt(1)+Qt(i))*dt./2+sum(Qt1)*dt; %求该加速阶段的燃油消耗量 4.3一中型货车装有前后制动器分开的双管路制动系,其有关参数如下: 载荷 质量(kg) 质心高hg/m 轴距L/m 质心至前轴距离a/m 制动力分配系数β 空载 4080 0.845 3.950 2.100 0.38 满载 9290 1.170 3.950 2.950 0.38 1) 计算并绘制利用附着系数曲线和制动效率曲线 2) 求行驶车速Ua=30km/h,在=0.80路面上车轮不抱死的制动距离。计算时取制动系反应时间=0.02s,制动减速度上升时间=0.02s。 3) 求制动系前部管路损坏时汽车的制动距离s,制动系后部管路损坏时汽车的制动距离。 解:Matlab程序: (1) 求利用附着系数曲线和制动效率曲线程序: clear k=4080;hgk=0.845;Lk=3.950;ak=2.10;betak=0.38;bk=Lk-ak;%空载时的参数 mm=9290;hgm=1.170;Lm=3.950;am=2.950;betam=0.38;bm=Lm-am;%满载时的参数 z=0:0.01:1.0; figure(1); fai=z; fai_fk=betak*z*Lk./(bk+z*hgk);%空载时前轴的φf fai_fm=betam*z*Lm./(bm+z*hgm);%满载时前轴的φf fai_rk=(1-betak)*z*Lk./(ak-z*hgk);%空载时后轴的φr fai_rm=(1-betam)*z*Lm./(am-z*hgm);%满载时后轴的φr plot(z,fai_fk,'b--',z,fai_fm,'r',z,fai_rk,'b--',z,fai_rm,'r',z,fai,'k'); title('利用附着系数与制动强度的关系曲线'); xlabel('制动强度(z/g)'); ylabel('利用附着系数φ'); gtext('φr(空载)'),gtext('φr(满载)'),gtext('φ=z'),gtext('φf(空载)'),gtext('φf(满载)'); figure(2); Efk=z./fai_fk*100;%空载时前轴的制动效率 Efm=z./fai_fm*100; Erk=z./fai_rk*100; Erm=z./fai_rm*100; plot(fai_fk,Efk,'b',fai_fm,Efm,'r',fai_rk,Erk,'b',fai_rm,Erm,'r'); axis([0 0 100]); title('前.后制动效率曲线'); xlabel('附着系数φ'); ylabel('制动效率%'); gtext('Ef'),gtext('Er'),gtext('Er'),gtext('满载'),gtext('空载'); (2) 问和(3)问程序: clear mk=4080;hgk=0.845;Lk=3.950;ak=2.10;betak=0.38;bk=Lk-ak;%空载时的参数 mm=9290;hgm=1.170;Lm=3.950;am=2.950;betam=0.38;bm=Lm-am;%满载时的参数 z=0:0.01:1; fai_fk=betak*z*Lk./(bk+z*hgk);%空载时前轴的φf fai_fm=betam*z*Lm./(bm+z*hgm);%满载时前轴的φf fai_rk=(1-betak)*z*Lk./(ak-z*hgk);%空载时后轴的φr fai_rm=(1-betam)*z*Lm./(am-z*hgm);%满载时后轴的φr Efk=z./fai_fk*100;%空载时前轴的制动效率 Efm=z./fai_fm*100; Erk=z./fai_rk*100; Erm=z./fai_rm*100; t1=0.02;t2=0.02;ua0=30;fai=0.80;g=9.8; ak1=Erk(81)*g*fai/100; am1=Erm(81)*g*fai/100; Sk1=(t1+t2/2)*ua0/3.6+ua0^2/(25.92*ak1);%制动距离 Sm1=(t1+t2/2)*ua0/3.6+ua0^2/(25.92*am1); disp('空载时,汽车制动距离Sk1='); disp(Sk1); disp('满载时,汽车制动距离Sm1='); disp(Sm1); ak2=fai*g*ak/(Lk+fai*hgk); am2=fai*g*am/(Lm+fai*hgm); ak3=fai*g*bk/(Lk-fai*hgk); am3=fai*g*bm/(Lk-fai*hgm); Sk2=(t1+t2/2)*ua0/3.6+ua0^2/(25.92*ak2);%制动距离 Sm2=(t1+t2/2)*ua0/3.6+ua0^2/(25.92*am2); Sk3=(t1+t2/2)*ua0/3.6+ua0^2/(25.92*ak3); Sm3=(t1+t2/2)*ua0/3.6+ua0^2/(25.92*am3); disp('空载时,前制动器损坏,汽车制动距离Sk2='); disp(Sk2); disp('满载时,前制动器损坏,汽车制动距离Sm2='); disp(Sm2); disp('空载时,后制动器损坏,汽车制动距离Sk3='); disp(Sk3); disp('满载时,后制动器损坏,汽车制动距离Sm3='); disp(Sm3); 空载时,汽车制动距离Sk1= 7.8668 满载时,汽车制动距离Sm1= 5.6354 空载时,前制动器损坏,汽车制动距离Sk2= 10.0061 满载时,前制动器损坏,汽车制动距离Sm2= 7.5854 空载时,后制动器损坏,汽车制动距离Sk3= 8.0879 满载时,后制动器损坏,汽车制动距离Sm3= 13.5986 5.11二自由度轿车模型的有关参数如下: 总质量 m=1818.2kg 绕Oz轴转动惯量 轴距 L=3.048m 质心至前轴距离 a=1.463m 质心至后轴距离 b=1.585m 前轮总侧偏刚度 k1=-62618N/rad 后轮总侧偏刚度 k2=-110185N/rad 转向系总传动比 i=20 试求: 1) 稳定性因数K、特征车速uch。 2) 稳态横摆角速度增益曲线、车速u=22.35m/s时的转向灵敏度。 3) 静态储备系数S.M.,侧向加速度为0.4g时的前、后轮侧偏角绝对值之差与转弯半径的比值R/R0(R0=15m)。 4) 车速u=30.56m/s时,瞬态响应的横摆角速度波动的固有(圆)频率、阻尼比、反应时间与峰值反应时间 解:Matlab程序: m=1818.2;Iz=3885;L=3.048;a=1.463;b=1.585;k1=-62618;k2=-110185; i=20;g=9.8;R0=15;u1=30.56; K=m*(a/k2-b/k1)/L^2; Uch=(1/K)^(1/2);%特征车速 disp('稳定性因数(s^2/m^2)K='); disp(K); disp('特征车速(m/s)Uch='); disp(Uch); u=0:0.05:30; S=u./(L*(1+K*u.^2));%稳态横摆角速度增益 plot(u,S); title('汽车稳态横摆角速度增益曲线'); xlabel('车速u(m/s)'); ylabel('稳态横摆角速度增益'); disp('u=22.35m/s时,转向灵敏度为'); disp(S(448)); SM=k2/(k1+k2)-a/L; ay=0.4*g; A=K*ay*L; B=L/R0; R=L/(B-A); C=R/R0;%转弯半径比 disp('静态储备系数S.M.='); disp(SM); disp('侧向加速度为0.4g时前、后轮侧偏角绝对值之差(rad) a1-a2='); disp(A); disp('侧向加速度为0.4g时转弯半径比值R/R0='); disp(C); W0=L/u1*(k1*k2/(m*Iz)*(1+K*u1^2))^(1/2);%固有(圆)频率 D=(-m*(k1*a^2+k2*b^2)-Iz*(k1+k2))/(2*L*(m*Iz*k1*k2*(1+K*u1^2))^(1/2));%阻尼比 t=atan((1-D^2)^(1/2)/(-m*u1*a*W0/(L*k2)-D))/(W0*(1-D^2)^(1/2));%反应时间 E=atan((1-D^2)^(1/2)/D)/(W0*(1-D^2)^(1/2))+t;%峰值反应时间 disp('车速u=30.56m/s时的瞬态响应参数分别为:'); disp('横摆角速度波动的固有(圆)频率(rad)为 '); disp(W0); disp('阻尼比为'); disp(D); disp('反应时间(s)为'); disp(t); disp('峰值反应时间(s)为'); disp(E); 稳定性因数(s^2/m^2)K= 0.0024 特征车速(m/s)Uch= 20.6053 u=22.35m/s时,转向灵敏度为 3.3690 静态储备系数S.M.= 0.1576 侧向加速度为0.4g时前、后轮侧偏角绝对值之差(rad) a1-a2= 0.0281 侧向加速度为0.4g时转弯半径比值R/R0= 1.1608 车速u=30.56m/s时的瞬态响应参数分别为: 横摆角速度波动的固有(圆)频率(rad)为 5.5758 阻尼比为 0.5892 反应时间(s)为 0.1811 峰值反应时间(s)为 0.3899 6.5车身-车轮双质量系统参数:。 “人体-座椅”系统参数:。车速,路面不平度系数,参考空间频率n0=0.1m-1。 计算时频率步长,计算频率点数。 1) 计算并画出幅频特性、、和均方根值谱、、谱图。进一步计算值 2) 改变“人体-座椅”系统参数:。分析值随的变化。 3) 分别改变车身-车轮双质量系统参数:。绘制三个响应量均方根值随以上四个系统参数变化的曲线。 解:Matlab程序 (1)问 yps=0.25;%阻尼比ζ gama=9;%刚度比γ mu=10;%质量比μ fs=3;ypss=0.25;g=9.8;a0=10^(-6);f0=1.5; ua=20;Gqn0=2.56*10^(-8);n0=0.1;detaf=0.2;N=180; f=detaf*[0:N];lamta=f/f0;lamtas=f/fs;Wf=0*f; deta=((1-lamta.^2).*(1+gama-1/mu*lamta.^2)-1).^2+4*yps^2*lamta.^2.*(gama-(1/mu+1)*lamta.^2).^2; z1_q=gama*sqrt(((1-lamta.^2).^2+4*yps^2*lamta.^2)./deta); z2_z1=sqrt((1+4*yps^2*lamta.^2)./((1-lamta.^2).^2+4*yps^2*lamta.^2)); p_z2=sqrt((1+(2*ypss*lamtas).^2)./((1-lamtas.^2).^2+(2*ypss*lamtas).^2)); z2_q=gama*sqrt((1+4*yps^2*lamta.^2)./deta); p_q=p_z2.*z2_q; jfg_Gqddf=4*pi^2*sqrt(Gqn0*n0^2*ua)*f; jfg_Gzdd1f=z1_q.*jfg_Gqddf; jfg_Gzdd2f=z2_q.*jfg_Gqddf; jfg_Gaf=p_q.*jfg_Gqddf; sigmaqdd=sqrt(trapz(f,jfg_Gqddf.^2));%路面不平度加速度均方根值 sigmazdd1=sqrt(trapz(f,jfg_Gzdd1f.^2));%车轮加速度均方根值 sigmazdd2=sqrt(trapz(f,jfg_Gzdd2f.^2));%车身加速度均方根值 sigmaa=sqrt(trapz(f,jfg_Gaf.^2));%人体加速度均方根值 for i=1:(N+1) if f(i)<=2 Wf(i)=0.5; elseif f(i)<=4 Wf(i)=f(i)/4; elseif f(i)<=12.5 Wf(i)=1; else Wf(i)=12.5/f(i); end end kk=Wf.^2.*jfg_Gaf.^2; aw=sqrt(trapz(f,kk));%加权加速度均方根值 Law=20*log10(aw/a0);%加权振级 disp('路面不平度加速度均方根值为');disp(sigmaqdd); disp('车轮加速度均方根值为');disp(sigmazdd1); disp('车身加速度均方根值为');disp(sigmazdd2); disp('人体加速度均方根值为');disp(sigmaa); disp('加权加速度均方根值为');disp(aw); disp('加权振级');disp(Law); figure(1) plot(f,z1_q),title('幅频特性|z1/q|,(f=1.5Hz,ζ=0.25,γ=9,μ=10)'),xlabel('激振频率f/Hz'),ylabel('|z1/q|'); figure(2) plot(f,z2_z1),title('幅频特性|z2/z1|,(f=1.5Hz,ζ=0.25,γ=9,μ=10)'),xlabel('激振频率f/Hz'),ylabel('|z2/z1|'); figure(3) plot(f,p_z2),title('幅频特性|p/z2|,(fs=1.5Hz,ζs=0.25)'),xlabel('激振频率f/Hz'),ylabel('|p/z2|'); figure(4) plot(f,jfg_Gzdd1f),title('车轮加速度均方根值√Gz1(f)谱图'),xlabel('激振频率f/Hz'),ylabel('√Gz1(f)'); figure(5) plot(f,jfg_Gzdd2f),title('车身加速度均方根值√Gz2(f)谱图'),xlabel('激振频率f/Hz'),ylabel('√Gz2(f)'); figure(6) plot(f,jfg_Gaf),title('人体加速度均方根值√Ga(f)谱图'),xlabel('激振频率f/Hz'),ylabel('√Ga(f)'); 路面不平度加速度均方根值为 0.3523 车轮加速度均方根值为 0.2391 车身加速度均方根值为 0.0168 人体加速度均方根值为 0.0161 加权加速度均方根值为 0.0100 加权振级 80.0291 (2)问 程序1: clear gama=9;%刚度比γ mu=10;%质量比μ f0=1.5;g=9.8;a0=10^(-6);ua=20; Gqn0=2.56*10^(-8);n0=0.1;detaf=0.2;N=180; f=detaf*[0:N];lamta=f/f0;Wf=0*f; for i=1:(N+1) if f(i)<=2 Wf(i)=0.5; elseif f(i)<=4 Wf(i)=f(i)/4; elseif f(i)<=12.5 Wf(i)=1; else Wf(i)=12.5/f(i); end end fs=3;ypss=0.25; ypss0=[0.125:0.005:0.5];a=0*ypss0;La=0*ypss0; M=length(ypss0); for i=1:M yps=ypss0(i); lamtas=f/fs; deta=((1-lamta.^2).*(1+gama-1/mu*lamta.^2)-1).^2+4*yps^2*lamta.^2.*(gama-(1/mu+1)*lamta.^2).^2; p_z2=sqrt((1+(2*ypss*lamtas).^2)./((1-lamtas.^2).^2+(2*ypss*lamtas).^2)); z2_q=gama*sqrt((1+4*yps^2*lamta.^2)./deta); p_q=p_z2.*z2_q; jfg_Gqddf=4*pi^2*sqrt(Gqn0*n0^2*ua)*f; jfg_Gaf=p_q.*jfg_Gqddf; kk=Wf.^2.*jfg_Gaf.^2; aw(i)=sqrt(trapz(f,kk)); end Law=20*log10(aw/a0); figure(1) plot(ypss0,aw);title('aw随ζs的变化'),xlabel('“人体—座椅”系统的阻尼比ζs'),ylabel('aw/m*s^-2'); figure(2) plot(ypss0,Law);title('Law随ζs的变化'),xlabel('“人体—座椅”系统的阻尼比ζs'),ylabel('Law/dB'); 程序2: clear yps=0.25;%阻尼比ζ gama=9;%刚度比γ mu=10;%质量比μ f0=1.5;g=9.8;a0=10^(-6);ua=20; Gqn0=2.56*10^(-8);n0=0.1;detaf=0.2;N=180; f=detaf*[0:N];lamta=f/f0;Wf=0*f; for i=1:(N+1) if f(i)<=2 Wf(i)=0.5; elseif f(i)<=4 Wf(i)=f(i)/4; elseif f(i)<=12.5 Wf(i)=1; else Wf(i)=12.5/f(i); end end ypss=0.25; fs=[1.5:0.025:6]; M=length(fs); for i=1:M fs0=fs(i); lamtas=f/fs0; deta=((1-lamta.^2).*(1+gama-1/mu*lamta.^2)-1).^2+4*yps^2*lamta.^2.*(gama-(1/mu+1)*lamta.^2).^2; p_z2=sqrt((1+(2*ypss*lamtas).^2)./((1-lamtas.^2).^2+(2*ypss*lamtas).^2)); z2_q=gama*sqrt((1+4*yps^2*lamta.^2)./deta); p_q=p_z2.*z2_q; jfg_Gqddf=4*pi^2*sqrt(Gqn0*n0^2*ua)*f; jfg_Gaf=p_q.*jfg_Gqddf; kk=Wf.^2.*jfg_Gaf.^2; aw(i)=sqrt(trapz(f,kk)); end Law=20*log10(aw/a0); figure(3) plot(fs,aw);title('aw随fs的变化'),xlabel('“人体—座椅”系统的固有频率fs'),ylabel('aw/m*s^-2'); figure(4) plot(fs,Law);title('Law随fs的变化'),xlabel('“人体—座椅”系统的固有频率fs'),ylabel('Law/dB'); (3)问 程序1: clear figure(1) fs=3;yps_s=0.25;g=9.8; ua=20;Gqn0=2.56*10^(-8);n0=0.1;detaf=0.2;N=180; f0=1.5;yps=0.25;gama=9;mu=10; ff0=[0.25:0.05:3];sigmaz2=0*ff0;sigmafd=0*ff0;sigmaFd_G=0*ff0; M=length(ff0); for i=1:M f0=ff0(i); f=detaf*[0:N];lamta=f/f0;lamtas=f/fs; deta=((1-lamta.^2).*(1+gama-1/mu*lamta.^2)-1).^2+4*yps^2*lamta.^2.*(gama-(1/mu+1)*lamta.^2).^2; z2_qdot=2*pi*f*gama.*sqrt((1+4*yps^2*lamta.^2)./deta); fd_qdot=gama*lamta.^2./(2*pi*f+eps)./sqrt(deta); Fd_Gqdot=2*pi*f*gama/g.*sqrt(((lamta.^2/(mu+1)-1).^2+4*yps^2*lamta.^2)./deta); Gq_dotf=4*pi^2*Gqn0*n0^2*ua; Gz2f=(z2_qdot).^2*Gq_dotf; Gfd_qf=(fd_qdot).^2*Gq_dotf; GFd_Gf=(Fd_Gqdot).^2*Gq_dotf; sigmaz2(i)=sqrt(trapz(f,Gz2f)); sigmafd(i)=sqrt(trapz(f,Gfd_qf)); sigmaFd_G(i)=sqrt(trapz(f,GFd_Gf)); if f0==1.5 sgmz2=sigmaz2(i); sgmfd=sigmafd(i); sgmFd_G=sigmaFd_G(i); end end sz2=20*log10(sigmaz2/sgmz2); sfd=20*log10(sigmafd/sgmfd); sFd_G=20*log10(sigmaFd_G/sgmFd_G); plot(ff0,sz2,'r-',ff0,sfd,'b-.',ff0,sFd_G,'k--'); axis([0.25 15]); title('三个响应量均方根值随f0变化的曲线'),xlabel('车身部分固有频率f0/Hz'),ylabel('σz2/dB,σfd/dB,σFd/G/dB'); 程序2: clear figure(2) fs=3;yps_s=0.25;g=9.8; ua=20;Gqn0=2.56*10^(-8);n0=0.1;detaf=0.2;N=180; f0=1.5;yps=0.25;gama=9;mu=10; c=(0.5-0.125)/180; yps0=[0.125:c:0.5];sigmaz2=0*yps0;sigmafd=0*yps0;sigmaFd_G=0*yps0; M=length(yps0); for i=1:M yps=yps0(i); f=detaf*[0:N];lamta=f/f0;lamtas=f/fs; deta=((1-lamta.^2).*(1+gama-1/mu*lamta.^2)-1).^2+4*yps^2*lamta.^2.*(gama-(1/mu+1)*lamta.^2).^2; z2_qdot=2*pi*f*gama.*sqrt((1+4*yps^2*lamta.^2)./deta); fd_qdot=gama*lamta.^2./(2*pi*f+eps)./sqrt(deta); Fd_Gqdot=2*pi*f*gama/g.*sqrt(((lamta.^2/(mu+1)-1).^2+4*yps^2*lamta.^2)./deta); Gq_dotf=4*pi^2*Gqn0*n0^2*ua; Gz2f=(z2_qdot).^2*Gq_dotf; Gfd_qf=(fd_qdot).^2*Gq_dotf; GFd_Gf=(Fd_Gqdot).^2*Gq_dotf; sigmaz2(i)=sqrt(trapz(f,Gz2f)); sigmafd(i)=sqrt(trapz(f,Gfd_qf)); sigmaFd_G(i)=sqrt(trapz(f,GFd_Gf)); if yps==0.25 sgmz2=sigmaz2(i); sgmfd=sigmafd(i); sgmFd_G=sigmaFd_G(i); end end sz2=20*log10(sigmaz2/sgmz2); sfd=20*log10(sigmafd/sgmfd); sFd_G=20*log10(sigmaFd_G/sgmFd_G); plot(yps0,sz2,'r-',yps0,sfd,'b-.',yps0,sFd_G,'k--'); axis([0.125 0.5 4]); title('三个响应量均方根值随ζ变化的曲线'),xlabel('车身部分阻尼比ζ'),ylabel('σz2/dB,σfd/dB,σFd/G/dB'); 程序3: clear figure(3) fs=3;yps_s=0.25;g=9.8; ua=20;Gqn0=2.56*10^(-8);n0=0.1;detaf=0.2;N=180; f0=1.5;yps=0.25;mu=10; gama0=[4:0.1:19];sigmaz2=0*gama0;sigmafd=0*gama0;sigmaFd_G=0*gama0; M=length(gama0); for i=1:M gama=gama0(i); f=detaf*[0:N];lamta=f/f0;lamtas=f/fs; deta=((1-lamta.^2).*(1+gama-1/mu*lamta.^2)-1).^2+4*yps^2*lamta.^2.*(gama-(1/mu+1)*lamta.^2).^2; z2_qdot=2*pi*f*gama.*sqrt((1+4*yps^2*lamta.^2)./deta); fd_qdot=gama*lamta.^2./(2*pi*f+eps)./sqrt(deta); Fd_Gqdot=2*pi*f*gama/g.*sqrt(((lamta.^2/(mu+1)-1).^2+4*yps^2*lamta.^2)./deta); Gq_dotf=4*pi^2*Gqn0*n0^2*ua; Gz2f=(z2_qdot).^2*Gq_dotf; Gfd_qf=(fd_qdot).^2*Gq_dotf; GFd_Gf=(Fd_Gqdot).^2*Gq_dotf; sigmaz2(i)=sqrt(trapz(f,Gz2f)); sigmafd(i)=sqrt(trapz(f,Gfd_qf)); sigmaFd_G(i)=sqrt(trapz(f,GFd_Gf)); if gama==9 sgmz2=sigmaz2(i); sgmfd=sigmafd(i); sgmFd_G=sigmaFd_G(i); end end sz2=20*log10(sigmaz2/sgmz2); sfd=20*log10(sigmafd/sgmfd); sFd_G=20*log10(sigmaFd_G/sgmFd_G); plot(gama0,sz2,'r-',gama0,sfd,'b-.',gama0,sFd_G,'k--'); axis([4 6]); title('三个响应量均方根值随γ变化的曲线'),xlabel('悬架与轮胎的刚度比γ'),ylabel('σz2/dB,σfd/dB,σFd/G/dB'); 程序4: clear figure(4) fs=3;yps_s=0.25;g=9.8; ua=20;Gqn0=2.56*10^(-8);n0=0.1;detaf=0.2;N=180; f0=1.5;yps=0.25;gama=9; mu0=[5:0.1:20];sigmaz2=0*mu0;sigmafd=0*mu0;sigmaFd_G=0*mu0; M=length(mu0); for i=1:M mu=mu0(i); f=detaf*[0:N];lamta=f/f0;lamtas=f/fs; deta=((1-lamta.^2).*(1+gama-1/mu*lamta.^2)-1).^2+4*yps^2*lamta.^2.*(gama-(1/mu+1)*lamta.^2).^2; z2_qdot=2*pi*f*gama.*sqrt((1+4*yps^2*lamta.^2)./deta); fd_qdot=gama*lamta.^2./(2*pi*f+eps)./sqrt(deta); Fd_Gqdot=2*pi*f*gama/g.*sqrt(((lamta.^2/(mu+1)-1).^2+4*yps^2*lamta.^2)./deta); Gq_dotf=4*pi^2*Gqn0*n0^2*ua; Gz2f=(z2_qdot).^2*Gq_dotf; Gfd_qf=(fd_qdot).^2*Gq_dotf; GFd_Gf=(Fd_Gqdot).^2*Gq_dotf; sigmaz2(i)=sqrt(trapz(f,Gz2f)); sigmafd(i)=sqrt(trapz(f,Gfd_qf)); sigmaFd_G(i)=sqrt(trapz(f,GFd_Gf)); if mu==10 sgmz2=sigmaz2(i); sgmfd=sigmafd(i); sgmFd_G=sigmaFd_G(i); end end sz2=20*log10(sigmaz2/sgmz2); sfd=20*log10(sigmafd/sgmfd); sFd_G=20*log10(sigmaFd_G/sgmFd_G); plot(mu0,sz2,'r-',mu0,sfd,'b-.',mu0,sFd_G,'k--'); axis([5 2]); title('三个响应量均方根值随μ变化的曲线'),xlabel('车身与车轮部分质量比μ'),ylabel('σz2/dB,σfd/dB,σFd/G/dB'); 数字信号处理MATLAB 第1页 习题数字信号处理MATLAB习题 M1-1 已知g1(t)cos(6t),g2(t)cos(14t),g3(t)cos(26t),以抽样频率fsam10Hz对上述三个信号进行抽样。在同一张图上画出g1(t),g2(t)和g3(t)及抽样点,对所得结果进行讨论。 解: 第2页 从以上两幅图中均可看出,三个余弦函数的周期虽然不同,但它们抽样后相应抽样点所对应的值都相同。那么这样还原回原先的函数就变成相同的,实际上是不一样的。这是抽样频率太小的原因,我们应该增大抽样频率才能真实还原。如下图:f=50Hz 第3页 程序代码 f=10; t=-0.2:0.001:0.2;g1=cos(6.*pi.*t);g2=cos(14.*pi.*t);g3=cos(26.*pi.*t);k=-0.2:1/f:0.2;h1=cos(6.*pi.*k);h2=cos(14.*pi.*k);h3=cos(26.*pi.*k);% subplot(3,1,1); % plot(k,h1,'r.',t,g1,'r');% xlabel('t');% ylabel('g1(t)');% subplot(3,1,2); % plot(k,h2,'g.',t,g2,'g');% xlabel('t');% ylabel('g2(t)');% subplot(3,1,3); % plot(k,h3,'b.',t,g3,'b');% xlabel('t');% ylabel('g3(t)'); plot(t,g1,'r',t,g2,'g',t,g3,'b',k,h1,'r.',k,h2,'g.',k,h3,'b.') 第4页 xlabel('t');ylabel('g(t)'); legend('g1(t)','g2(t)','g3(t)'); M2-1 利用DFT的性质,编写一MATLAB程序,计算下列序列的循环卷积。 (1)g[k]={1,-3,4,2,0,-2,},h[k]={3,0,1,-1,2,1};(2)x[k]=cos(k/2),y[k]=3k,k=0,1,2,3,4,5。解:(1)循环卷积结果 6.0000-3.0000 17.0000-2.0000 7.0000-13.0000 程序代码 第5页 g=[1-3 4 2 0-2];h=[3 0 1-1 2 1];l=length(g);L=2*l-1;GE=fft(g,L);HE=fft(h,L);y1=ifft(GE.*HE);for n=1:l if n+l<=L y2(n)=y1(n)+y1(n+l);else y2(n)=y1(n); end end y2 stem(0:l-1,y2)xlabel('k')ylabel('y(k)')title('循环卷积') (2)循环卷积结果 -71.0000-213.0000 89.0000 267.0000 73.0000 219.0000 第6页 程序代码 k=0:5; x=cos(pi.*k./2);y=3.^k;l=length(x);L=2*l-1;GE=fft(x,L);HE=fft(y,L);y1=ifft(GE.*HE);for n=1:l if n+l<=L y2(n)=y1(n)+y1(n+l); else y2(n)=y1(n); end end y2 stem(0:l-1,y2)xlabel('k')ylabel('y’(k)')title('循环卷积') 第7页 M2-2 已知序列x[k]cos(k/2N),|k|N 0,其他(1)计算序列DTFT的表达式X(ej),并画出N=10时,X(ej)的曲线。 (2)编写一MATLAB程序,利用fft函数,计算N=10时,序列x[k]的DTFT在m2m/N的抽样值。利用hold函数,将抽样点画在X(ej)的曲线上。 解: (1)X(e)DTFT{x[k]}jkx[k]ejkkNcos(k/2N)eNjk 程序代码 N=10;k=-N:N; x=cos(k.*pi./(2*N));W=linspace(-pi,pi,512); 第8页 X=zeros(1,length(W));for k=-N:N X1=x(k+N+1).*exp(-j.*W.*k);X=X+X1;end plot(W,abs(X))xlabel('W');ylabel('abs(X)'); (2) 程序代码 N=10;k=-N:N; x=cos(k.*pi./(2*N));X_21=fft(x,21);L=-10:10; W=linspace(-pi,pi,1024);X=zeros(1,length(W));for k=-N:N X1=x(k+N+1).*exp(-j.*W.*k);X=X+X1;end 第9页 plot(W,abs(X));hold on; plot(2*pi*L/21,fftshift(abs(X_21)),'o');xlabel('W');ylabel('abs(X)'); M2-3 已知一离散序列为x[k]Acos0kBcos[(0)k]。用长度N=64的Hamming窗对信号截短后近似计算其频谱。试用不同的A和B的取值,确定用Hamming窗能分辨的最小的谱峰间隔wc的值。 解:f1=100Hz f2=120Hz时 2中cN f2=140Hz时 第10页 f2=160Hz时 第11页 由以上三幅图可见 f2=140Hz时,各谱峰可分辨。则f又 wc2N 40Hz 且 wT2fT2401 800所以c=3.2(近似值) 程序代码 N=64;L=1024; f1=100;f2=160;;fs=800; A=1;B1=1;B2=0.5;B3=0.25;B4=0.05;T=1/fs;ws=2*pi*fs;k=0:N-1; x1=A*cos(2*pi*f1*T*k)+B1*cos(2*pi*f2*T*k);x2=A*cos(2*pi*f1*T*k)+B2*cos(2*pi*f2*T*k);x3=A*cos(2*pi*f1*T*k)+B3*cos(2*pi*f2*T*k);x4=A*cos(2*pi*f1*T*k)+B4*cos(2*pi*f2*T*k);hf=(hamming(N))';x1=x1.*hf;x2=x2.*hf;x3=x3.*hf;x4=x4.*hf; X1=fftshift(fft(x1,L));X2=fftshift(fft(x2,L));X3=fftshift(fft(x3,L));X4=fftshift(fft(x4,L)); W=T*(-ws/2+(0:L-1)*ws/L)/(2*pi);subplot(2,2,1);plot(W,abs(X1));title('A=1,B=1');xlabel('W');ylabel('X1');subplot(2,2,2); 第12页 plot(W,abs(X2));title('A=1,B=0.5');xlabel('W');ylabel('X2');subplot(2,2,3);plot(W,abs(X3));title('A=1,B=0.25');xlabel('W');ylabel('X3');subplot(2,2,4);plot(W,abs(X4));title('A=1,B=0.05');xlabel('W');ylabel('X4'); M2-4 已知一离散序列为x[k]cos0k0.75cos1k,0k63。其中, 02/15,12.3/15。 (1)对x[k]做64点FFT, 画出此时信号的谱。 (2)如果(1)中显示的谱不能分辨两个谱峰,是否可对(1)中的64点信号补0而分辨出两个谱峰。通过编程进行证实,并解释其原因。 解:(1) 第13页 程序代码 W0=2*pi/15;W1=2.3*pi/15;N=64;k=0:N-1; x=cos(W0*k)+0.75*cos(W1*k);X=fft(x); plot(k/N,abs(X));grid on; title('64点FFT'); (2) 第14页 第15页 由以上三幅图看出:不能对(1)中的64点信号补零而分辨出两个谱峰,这样的方法只能改变屏幕分辨率,但可以通过加hamming窗来实现对谱峰的分辨。程序代码 W0=2*pi/15;W1=2.3*pi/15;N=64;L=1024;k=0:N-1; x=cos(W0*k)+0.75*cos(W1*k);X=fft(x,L); plot((0:L-1)/N,abs(X));grid on; title('1024点FFT'); M2-5 已知一连续信号为x(t)=exp(-3t)u(t),试利用DFT近似分析 第16页 其频谱。若要求频率分辨率为1Hz,试确定抽样频率fsam、抽样点数N以及持续时间Tp。 解: 本题使用矩形窗,则Nfsamfsam1fsam,Tp1 f1f 第17页 由以上三幅图可以看出当fsam越来越大时,近似值越来越接近 第18页 于实际值。即fsam越大拟合效果越好,造成的混叠也是在可以允许的范围内。程序代码 fs=100;ws=2*pi*fs;Ts=1/fs;N=fs; x=exp(-3*Ts*(0:N-1));y=fft(x,N);l=length(y); k=linspace(-ws/2,ws/2,l); plot(k,Ts*fftshift(abs(y)),'b:');hold on; w=linspace(-ws/2,ws/2,1024);y1=sqrt(1./(9+w.^2));plot(w,y1,'r') title('fs=100Hz时的频谱')legend('近似值','实际值); M2-6 试用DFT近似计算高斯信号g(t)exp(dt2)的频谱抽样值。 π2通过和频谱的理论值G(j)exp()比较,讨论如何根据时域的信 d4d号来恰当地选取截短长度和抽样频率使计算误差能满足精度要求。 解: 第19页 第20页 由以上三幅图可以看出: 当时域截取长度相同时,抽样间隔越小时误差越小,当抽样间隔一定时,时域截取长度越长,误差越小。当取抽样间隔为1S,时域截取长度为2S时,误差较大,绝对误差在0.5左右;当抽样间隔为0,5S,时域截取长度为2S时,误差比间隔为1S时小,绝对误差不大于0.2;当抽样间隔为0.5S时域截取长度为4S时,误差更小,绝对误差不大于0.04。因为时域截取长度越长,保留下来的原信号中的信息越多,抽样间隔越小,频谱越不容易发生混叠,所以所得频谱与理论值相比,误差更小。 程序代码 Ts=0.5;N=4;N0=64; k=(-N/2:(N/2))*Ts; 第21页 x=exp(-pi*(k).^2);X=Ts*fftshift(fft(x,N0)); w=-pi/Ts:2*pi/N0/Ts:(pi-2*pi/N0)/Ts;XT=(pi/pi)^0.5*exp(-w.^2/4/pi);subplot(2,1,1) plot(w/pi,abs(X),'-o',w/pi,XT);xlabel('omega/pi');ylabel('X(jomega)'); legend('试验值','理论值'); title(['Ts=',num2str(Ts)subplot(2,1,2)plot(w/pi,abs(X)-XT)ylabel('实验误差') xlabel('omega/pi'); 'N=',num2str(N)]);第22页 ' ' 第一章 MATLAB环境 1、MATLAB通用操作界面窗口包括哪些?命令窗口、历史命令窗口、当前目录窗口、工作空间窗口各有哪些功能? 答:MATLAB通用操作界面窗口包括:命令窗口、历史命令窗口、当前目录浏览器窗口、工作空间窗口、变量编辑器窗口、M文件编辑/调试器窗口、程序性能剖析窗口、MATLAB帮助。 命令窗口是MATLAB命令操作的最主要窗口,可以把命令窗口当做高级的“草稿纸”。在命令窗口中可以输入各种MATLAB的命令、函数和表达式,并显示除图形外的所有运算结果。 历史命令窗口用来记录并显示已经运行过的命令、函数和表达式,并允许用户对它们进行选择、复制和重运行,用户可以方便地输入和修改命令,选择多行命令以产生M文件。 当前目录窗口用来设置当前目录,可以随时显示当前目录下的M、MKL等文件的信息,扬文件类型、文件名、最后个修改时间和文件的说明信息等,并可以复制、编辑和运行M文件及装载MAT数据文件。 工作空间窗口用来显示所有MATLAB工作空间中的变量名、数据结构、类型、大小和字节数。 2、熟悉课本中表格1.4、1.5、1.6、1.7、1.8的内容。 3、如何生成数据文件?如何把数据文件中的相关内容输入到工作空间中,用实例进行操作。 4、在工作空间中可以通过哪些命令管理变量,写出每种语法的具体操作过程。答:(1)把工作空间中的数据存放到MAT数据文件。 语法:save filename 变量1 变量2 „„参数。 (2)从数据文件中取出变量存放到工作空间。 语法: load filename 变量1 变量2 „„。 (3)查阅MATLAB内存变量名。 语法:who(4)、查阅MATLAB内存变量变量名、大小、类型和字节数。 语法:whos(5)、删除工作空间中的变量。 语法:clear(6)查询工作空间中是否存在某个变量。 语法:i=exist(‘X’) 5、MATLAB用户文件格式有几哪种?扩展名各是什么? 答:MATLAB的用户文件格式通常有以下几种:(1)程序文件,扩展名为.m。(2)数据文件,扩展名为.mat。(3)可执行文件,扩展名为.mex。(4)图形文件,扩展名为.fig。(5)模型文件,扩展名为.mdl。 6、熟悉文件管理命令的语法,特别是命令type 作用。 7、详细操作课本26页例题1.3。 第二章 MATLAB数值计算 1、变量名的命名规则是什么?写出几个合理的变量。 答:MATLAB的变量命名规则: (1)变量名区分字母的大、小写。例 如,“a”和“A”是不同的变量。(2)变量名不能超过63个字符,第63个字符后的字符被忽略。 (3)变量名必须以字母开头,变量名的组成可以是任意字母,数字或者下画线,但不能含有空格和标点符号。 (4)关键字不能作为变量名。 2、产生矩阵有哪几种方法?分别举例说明。 答:(1)通过显示元素列表输入矩阵。 例如:d=[2;3,4;5,6] (2)通过语句生成矩阵。 例如:y=1:1:7 (3)由函数产生特殊矩阵。 例如:a=eye(4) 3、在excel表格中输入2行10列的数据,通过数据加载,输入到工作空间中,用矩阵元素的操作分别提取第1行和第2行的数据。 4、矩阵和数组的算术运算包括哪些运算?各有哪些不同点? 答:(1)矩阵和数组的加,减运算。 矩阵的加,减法运算规则与数组的完全相同,运算符也完全相同。(2)矩阵和数组的乘法运算。 矩阵的乘法运算表达式为“A*B”,表示矩阵的相乘。矩阵A的列数必须等于矩阵B的行数,除非其中有1个标量。 数组的乘法运算表达式为“A*B”,运算符为“*”,表示数组A和B中的对应元素相乘。 5、多项式如何表示?多项式求值、求根和多项式拟合的语法各是什么? 答:在MATLAB中多项式可以用长度为n+1的行向量表示为:P=[an,an-1„„a1,a0],即把多项式的各项系数烽按降幂次序排放成为行向量,如果多项式中缺某幂次项,则用0代替该幂次项的系数。 多项式求值语法:y=polyval(p,x)多项式求根语法:r=roots(p)多项式拟合语法:p=polyfit(x,y,n) 6、多项式一维插值有哪些类型? 答:多项式一维插值是指对一个自变量的插值,interep1函数是用来进行一维插值的,其语法为:yi=interp1(x,y,xi,“method”)。 Method是插值函数的类型,“linear”为线性插值(默认)。“nearest”为用最接近的相邻点插值。“spline”为三次样条插值。“cubic”为三次插值。 7、在M文件中完整地写出语句,使其产生课本中图2.5 一阶、二阶和三阶拟合曲线,并在适当位置添加图例。 解:随机产生一个一元三次多项式y=5x^3+2x^2+x+1; 拟合结果如图: x1=1:10;p=[2 3 4 5]; y0=polyval(p,x1);p1=polyfit(x1,y0,1);p2=polyfit(x1,y0,2);p3=polyfit(x1,y0,3);y1=polyval(p1,x1);y2=polyval(p2,x1);y3=polyval(p3,x1);plot(x1,y0,'r',x1,y1,'g',x1,y2,'-.',x1,y3,'*')legend('y1,一阶拟合','y2,二阶拟合','y3,三阶拟合',4) 8、元胞数组和结构数组有哪些创建方法? 答:元胞数组的创建方法:(1)直接使用{}创建。(2)由各元胞创建。(3)由各元朡内容创建。结构数组的创建方法:(1)直接创建。 (2)利用struct函数创建。 9、元胞数组和结构数组的内容如何获取? 答:元胞数组的内容获取:(1)取元胞数组的元素内容。(2)取元胞数组的元素。结构数组的获取: (1)使用点号(.)获取。 (2)使用getfield获取结构数组的数据。(3)使用setfield设置结构数组的数据。 10、矢量积、数量积和混合积的语法各是什么? 答:矢量积的语法:cross(a,b)数量积的语法:dot(a,b)混合积的语法:dot(a,cross(b,c)) 第四章 MATLAB图形处理 1、用plot(x,y)命令绘制混合式曲线时有几种情况?分别举例说明。 答:(1)如果x是向量,而y是矩阵,则x的长度必须等于矩阵y的行数或列数必须相等。如果x的长度与y的行数相等,则向量x与矩阵y的每列向量对应画一条曲线;如果x的长度与y的列数相等,则向量x与矩阵y的每行向量对应画一条曲线;如果y是方阵,则x和y的行数列数都相等,将向量x与矩阵y的每列向量画1条曲线。 (2)如果x是矩阵,y是向量,则y的长度必须等于x的行数或列数,绘制方法与前一种相似。 (3)如果x和y都是矩阵,则大小必须相同,将矩阵x的每列和y的每列画一条曲线。 2、熟悉本章表4.1、4.2、4.3、4.4、4.5、4.6中的内容。 3、能熟练操作课本124页中例题4.10。 x=0:0.1:2*pi;>> plot(x,sin(x))>> hold on >> plot(x,cos(x),'ro')>> title('y1=sin(x),y2=cos(x)')>> xlabel('x')>> legend('sin(x)','cos(x)',4)>> text(pi,sin(pi),'x=pi') 第五章 MATLAB程序设计 1、指出脚本文件和函数文件的不同点? :脚本文件 (1)多条命令的综合体 (2)没有输入、输出变量 (3使用MATLAB基本工作空间 (4.没有函数声明行 函数文件 (1).常用于扩充MATLAB函数库(2).可以包含输入、输出变量 (3).运算中生成的所有变量都存放在函数工作空间(4).包含函数声明行 脚本文件可以理解为简单的M文件,脚本文件中的变量都是全局变量。 函数文件是在脚本文件的基础之上多添加了一行函数定义行,其代码组织结构 和调用方式与对应的脚本文件截然不同。函数文件是以函数声明行“function...”作为开始的,其实质就是用户往MATLAB函数库里边添加了子函数,函数文件中的变量都是局部变量,除非使用了特别声明。函数运行完毕之后,其定义的变量将从工作区间中清除。而脚本文件只是将一系列相关的代码结合封装,没有输入参数和输出参数,即不自带参数,也不一定要返回结果。而多数函数文件一般都有输入和输出变量,并见有返回结果。 2、分别用for 循环、while循环和函数调用编写。 1sum=∑()! i=12i+1 i=10 n=10;sum=0;f=1;>> for i=1:10 f=f/(2*i*(2*i+1));sum=sum+f;end >> sum sum = 0.1752 >> sum=0;f=1;i=1;>> while i<=10 f=f/(2*i*(2*i+1));sum=sum+f;i=i+1;end >> sum sum = 0.1752 8 Matlab心得体会 10金融3 吕淼 2010241125 在为学习这门课前就听说了他的强大,因为现在的经济模型都是需要这些分析软件的,也曾听说金融的未来方向是需要数学等等作为依托的。曾经旁听过学校数学建模的课程,当时老师用的是lingo。对那个只需要U盘携带就可以安装的小东西记忆深刻。等到学习matlab时觉得这才是真正的王道啊。 它不仅有强大的运算功能,还有强大的绘图功能,虽然学习了有一个学习,但是我对他的了解额仅仅是一点点,或许连入门都谈不上。因为我学习时了解到一个现实。就是matlab的学习依赖有比较好的数学功底,其中我看最经常运用到的就是矩阵。我从网上了解到matlab是一门高等数学和计算机技术结合的东西,学习它必须具有相应的数学和计算机知识。然而很可惜,我的书写不是很好。每次讲到这个部分的时候就觉得听说理解无能了。特别是我今年还是大二,有一次老师讲课时用到协方差。无可避免的我笑了,因为协方差是我们下节课概率论数理统计老师要讲的内容。大一的时候还不觉得,但是大二,越是学习以后的内容越是感觉到时间不够用。或许时间是够用的,但是无法放弃那些占用自己时间表的无用项目。虽然这学期的学习的时间短暂,就算时间足够,老师也不能把所有的都讲解给我们,因为一个软件的功能需要我们自己不断的去摸索,老师也不可能知道所有。老师只是个指路人,最终的学习还是要靠自己。而且在摸索的过程中,我们能够发现和体会学习的快乐。痛并快乐着是种常态了吧。 自我感觉学习matlab与其说是学习一门软件,更不如说是学习一门语言。用一种数理的语言描述现象,揭示表象下的规律。此外,我认为matlab中的作图功能很强大,不仅简单的函数现象可以明确画出,而且一些点状物,甚至立体图也可以画出。大一上微积分的时候,老师曾经多次在课件中加入用matlab画出的图来。不论是一维二维三维等等,都能很好的画出来。只要能编写出函数式,在短短的几秒之内,他就会呈现在你眼前。另外就是图形的直观性,这是由阴影的制作的。而且可以根据需要,坐标图上加标题,坐标轴标记,文本注释级栅格等,也可以指定图线形式,比如是虚线。颜色也可以自己来定。可以在同一张图上画,也可以单个显示。 今年选择金融matlab一方面出于希望能够提前修完大三时期的课程,能够空出更多的时间去考研或者为就业做准备。另一个考虑就是希望明年能够参加数学建模大赛,今年种种纠结放弃了,觉得万分可惜。明年也就是大三下学期的话我就会再来一次,而且还会更加坚定些。那么学习matlab的话对明年的计划也是有帮助的。在学习的过程中,因为以前学过access中的select语言,觉得就编写这方面是有共性的,但是matlab的编程语言似乎更多更复杂一点,这是由于涉及的数学模型,数学公式更多的原因。老师在讲解的过程中是通过一个个具体的金融例子来讲解的,而不是就matlab这个具体的软件工具进行讲解。这个给我带来相当大的打击,因为我发现我不仅仅是工具不能够熟练,涉及到的专业知识也是一知半解。这更加坚定了我要好好学习专业知识的决心,大学四年有几个人是希望荒度过去的呢?可是今年的这门课真的是让我感到没学到什么,估计也是因为我抱着看一看的随意态度来的吧,也没有那种遇到不懂的就一定要弄懂它的决心和毅力。说什么都是借口了,无法掩饰我没有学好它的事实。事实上,我觉得今年这门课的重点并不是让我们掌握这种软件的具体用法,而是主要向我们展示如何用它去解决一些金融问题,数学问题。这点让我很郁闷,因为我不懂得原理,听起来这门课倍感吃力啊。可是嘛,年轻没有什么不可以,又有谁可以断言我接下来的生活中不能好好学习这个东西为自己的工作,学习,生活,研究兴趣带来方便呢。 从大学开学的见闻到现在学习MATLAB,感觉这是一个很好的软件,语言简便,实用性强。作为一个做新手,想要学习好这门语言,可以说还是比较难的。在我接触这门语言的这些天,除了会画几个简单的图形,其他的还是有待提高。从另一个方面也对我们大学生提出了两个要求——充实的课外基础和良好的英语基础。在现代,几乎所有好的软件都是来自国外,假如不会外语,想学好是非常难的。其实想要学习好一们语言,不能只靠老师,关键是自己。每个人内心深处都是有抵触意识的,不可能把老师的所有都学到。学习这门语言,不光是学习一种语言,更重要的事学习一种方法,一种学习软件的方法,还有学习的态度。 总结一下,学习任何一门语言:态度决定一切。不论是英语还是计算机语言。其实以前上高中的时候接触过这种编程语言,当时记得最头疼的就是循环语句,但是在matlab中这种东西用的就比较少了。语言语句都是很简洁利落的,都是一枪瞄死靶心的那种,很直接,这也让我减轻不少心理负担。 其实学习这种事,与其说学习什么具体的东西,更不如说是学习一种态度,从种种波折中认识到自己的局限性,不足。心情会沮丧,也会豁然开朗。光想不练假把式,不论想的再多,不实际运用还是没有用的。书山有路勤为径,学海无涯苦作舟。华山再高,顶有过路。这就是我今年学习金融matlab的心得体会。第二篇:汽车理论课后习题Matlab程序
第三篇:数字信号处理课后习题Matlab作业
第四篇:matlab作业题
第五篇:Matlab心得体会