您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 山东理工大学Matlab培训习题2013暑假
Matlabd试题1、设)1(sin35.0cos2xxxy,把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的曲线。x=0:2*pi/100:2*pi;y=cos(x).*(0.5+3.*sin(x)/(1+x.^2));plot(x,y)2、产生8×6阶的正态分布随机数矩阵R1,求其各列的平均值和均方差。并求该矩阵全体数的平均值和均方差。a=randn(8,6)b1=mean(a)b2=std(a)u=reshape(a,48,1)c1=mean(u)c2=std(u)3、设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=0~10区间生成的x~y曲线。t=0:0.01:10;x1=2*cos(t)+3*t;y1=2*sin(t)+3;x2=3*cos(t)+3*t;y2=3*sin(t)+3;x3=4*cos(t)+3*t;y3=4*sin(t)+3;plot(x1,y1,'c.--',x2,y2,'r*--',x3,y3,'bo--')4、设f(x)=x5-4x4+3x2-2x+6(1)在x=[-2,8]之间取100个点,画出曲线,看它有几个过零点。(提示:用polyval函数)x=linspace(-2,8,100);p=[1-403-26];y=polyval(p,x);plot(x,y,'b')(2)用roots函数求此多项式的根。p=[1-403-26];roots(p)5、建立一个字符串向量,然后对该向量做如下处理:(1)取第1~5个字符组成的子字符串。A=’dgfayuggaugdauye’subch=A(1:5)(2)将字符串倒过来重新排列。revch=A(end:-1:1)(3)统计字符串中小写字母的个数。x=find(A='a'&A='z')6、设x=sint,y=sin(nt+a),(1)若a=1,令n=1,2,3,4,在四个子图中分别画出其曲线。t=0:0.1:2*pi;x=sin(t);y1=sin(t+1);y2=sin(2.*t+1);y3=sin(3.*t+1);y4=sin(4.*t+1);subplot(2,2,1);plot(x,y1,’b*-.’);subplot(2,2,2);plot(x,y2,’b*-.’);subplot(2,2,3);plot(x,y3,’b*-.’);subplot(2,2,4);plot(x,y4,’b*-.’)(2)若n=2,取a=0,π/3,π/2,及π,在四个子图中分别画出其曲线。t=0:0.1:2*pi;x=sin(t);y1=sin(2.*t);y2=sin(2.*t+pi./3);y3=sin(2.*t+pi./2);y4=sin(2.*t+pi);subplot(2,2,1);plot(x,y1,'b*-.');subplot(2,2,2);plot(x,y2,'b*-.');subplot(2,2,3);plot(x,y3,'b*-.');subplot(2,2,4);plot(x,y4,'b*-.')7、绘制)(222yxexz在定义域x=[-2,2],y=[-2,2]内的曲面。[x,y]=meshgrid([-2:0.1:2]);z=x.^2.*exp(-x.^2-y.^2);surf(x,y,z)8、312/)34(111132/)34(222xxxxxxxxy,画出在3,3上的曲线x1=-3:0.1:-1;y1=(-x.^2-4.*x-3)./2;x2=-1:0.1:1;y2=-x.^2+1;x3=1:0.1:3;y3=(-x.^2-4.*x-3)./2;plot(x1,y1,’b-’,x2,y2,’b-’,x3,y3,’b-’)9、(1)设,求Symsx;y=x*exp(2*x);diff(y,20)(2)设,求Symsx;y=sin(x)^4+cos(x)^4;diff(y,10)(3)设,求Symsxy;z=y^4*sin(x)^4+x^4*cos(y)^4;diff(z,x,1)(4)dxxxx))(1(122Symsx;z=1/((x^2+1)*(x^2+x));Int(z)(5)dxxx632)9(Symsx;z=sqrt((9-x^2)^3)/(x^6);int(z,x)(6)213xxdxSymsx;y=1/(x+x^3);int(y,x,1,2)(7)求级数的和:122nnnsymsn;symsum((n+2)/2^n,n,1,inf)(8)利用函数int计算二重不定积分Symsxy;Z=(x+y)*exp(-x*y);int(int(z,x),y)10、编制m文件,输入n(正整数),显示所有小于n的质数。N=input(‘N=’);forx=2:Nif(isprime(x)==1&xN)disp(x);endend或者functionprimelessn(n)form=1:nk=0;forb=1:ma=rem(m,b);ifa==0k=k+1;endendifk==2disp(m)endend或者functiony=iszhishu(n)y=1;fori=2:sqrt(n)ifrem(n,i)==0y=0;break;endendfunctionzhishu(n)a=[];fori=2:nifiszhishu(i)==1a=[a,i];endenda11、从键盘输入若干个数,当输入0时结束输入,求这些数的平均值以及平方和。functionpingfang1l=0;total1=0;total2=0;a=input('inputa:\n');while(a~=0)l=l+1;total1=total1+a;total2=total2+a^2;a=input('');endavg=total1/ltotal212、利用rand产生10个随机数,利用for循环对其进行排序(从大到小)。a=rand(10,1)*2-1;fori=1:length(a)forj=1:length(a)-1ifa(j)a(j+1)t=a(j);a(j)=a(j+1);a(j+1)=t;endendenda13、将一个整型数组的元素按逆序重新存放(如原序为:8,6,5,4改为:4,5,6,8)。x=input('输入数组');s=length(x);a=fix(s/2);fori=1:aj=s-i+1;c=x(i);x(i)=x(j);x(j)=c;enddisp(x)14、输入一个整数,写一程序输出它是几位数。i=0;x=input('请输入一个整数');whilex=1x=x/10;i=i+1;enddisp(i)或:a=input(‘请输入一个整数’);floor(log10(a))+115、从键盘上输入a与n的值,计算sum=a+aa+aaa+aaaa+…(共n项)的和。例a=2,n=4,则sum=2+22+222+2222.i=0;sum=0;x=input('请输入a');y=input('请输入n');whileiym=x+10*y*i;sum=sum+m;i=i+1;enddisp(sum)16、设计一个用于计算个人所有税的程序。假设个人所得税的缴纳标准为:月收入少于等于800元者不纳税;超出800元的部分,纳税5%;超出2000元的部分,纳税10%;超出5000元的部分,纳税20%;超出10000元的部分,纳税30%;超出100000元的部分,纳税40%。x=input('请输入');ifx=800sum=0;elseifx800&x=2000sum=(x-800)*0.05;elseifx2000&x=5000sum=(x-2000)*0.1+1200*0.05;elseifx5000&x=10000sum=(x-5000)*0.2+3000*0.1+1200*0.05;elseifx10000&x=100000sum=(x-10000)*0.3+5000*0.2+3000*0.1+1200*0.05;elseifx=100000sum=(x-100000)*0.4+90000*0.3+5000*0.2+3000*0.1+1200*0.05;enddisp(sum)或者functiong=t10(x)b=90000*0.3;c=5000*0.2;d=3000*0.1;e=1200*0.05;ifx=100000a=(x-100000)*0.4;g=a+b+c+d+e;elseifx=10000a=(x-10000)*0.3;g=a+c+d+e;elseifx=5000a=(x-5000)*0.2;g=a+d+e;elseifx=2000a=(x-2000)*0.1;g=a+e;elseifx=800g=(x-800)*0.05;elseg=0;endelseifx=5000a=(x-5000)*0.2;g=a+d+e;elseifx=2000a=(x-2000)*0.1;g=a+e;elseifx=800g=(x-800)*0.05;elseg=0;end17、求爱因斯坦数学题。有一条长阶,若每步跨2阶,则最后剩余1阶;若每步跨3阶,则最后剩2阶;若每步跨5阶,则最后剩4阶;若每步跨6阶,则最后剩5阶;若每步跨7步,最后正好一阶不剩。%首先在MATLAB编辑器中建立如下程序并保存在文件名为t17中%然后在命令窗口直接输入t17(x)x为台阶数functiont17(x)s=[];fori=7:xifmod(i,2)==1ifmod(i,3)==2ifmod(i,5)==4ifmod(i,6)==5ifmod(i,7)==0s=[s,i];endendendendendenddisp(s)N=input('请输入上线');form=1:Nifrem(m,2)==1&rem(m,3)==2&rem(m,5)==4&rem(m,6)==5&rem(m,7)==0disp(m);endend18、将一个正整数n输出成“千分位”形式,即从个位数起,每三位之间加一个逗号,例如,将7654321输出成7,654,321.functionhx=input('请输入一个整数','s');a=numel(x);x=str2num(x);b=ceil(a/3);fori=1:ba(i)=rem(x,1000);x=fix(x/1000);endforj=b:-1:2fprintf('%d,',a(j));endfprintf('%d',a(1));fprintf('\n');19、求出矩阵a中每行元素的平均值和平均最大的行号。%首先在MATLAB编辑器中建立如下程序并保存在文件名为t25中%然后在命令窗口定义矩阵a为需要输入的矩阵,再输入t25(a)functiont25(a)m=[];n=[];max=0;k=0;p=[];c=numel(a);m=a(1,:);b=numel(m);d=c/b;fori=1:dn(i)=sum(a(i,:));endfori=1:dp(i)=n(i)/b;ifn(i)maxmax=n(i);k=i;endendfprintf('每行元素的平均值为:\n');fori=1:dfprintf('%d',p(i));endfprintf('\n');fprintf('平均值最大的行号为:%d\n',k);20、(使用函数csapi和spapi及其相关函数)Symsx;f=(sqrt(1+x)-sqrt(x-1))./(sqrt(2+x)+sqrt(x-1));ezplot(diff(f,2),[3,8]),holdonx=3:0.4:8;y=(sqrt(1+x)-sqrt(x-1))./(sqrt(2+x)+sqrt(x-1));sp1=csapi(x,y);dsp1=fnder(sp1,2);fnplt(ds
本文标题:山东理工大学Matlab培训习题2013暑假
链接地址:https://www.777doc.com/doc-4384155 .html