MATLAB程序设计基础平时作业专业班级电科1401学号3140504022姓名谢言琴1《MATLAB程序设计基础》平时作业说明:1-17题为必做题,须分别提交纸质文档及与纸质文档对应的电子文档.doc版。1.对于每输入的一个百分制成绩,要求输出对应的成绩等级A、B、C、D、E。其中A的分值在区间[90,100)内;B的分值在区间[80,90)内;C的分值在区间[70,80)内;D的分值在区间[60,70)内;E的分值在区间[0,60)内;要求:1)要有对输入成绩是否合理的判断:①输入成绩如果含有小数,只能是“x.5”的形式,其实x为合理的整数。②成绩必须在百分制范围内。③如果输入的成绩不合理,应向命令窗口输出报错信息“输入的成绩不合理”2)用if语句实现题目要求MATLAB程序代码如下:x=input('pleaseimportresults:');%输入分数ifx0|x100disp('Error:wrongdata')%显示数据错误elseifx=100&x=90bank='A'%输出等级为Aelseifx=89&x=80bank='B'%输出等级为Belseifx=79&x70bank='C'%输出等级为Celseifx=69&x60bank='D'%输出等级为Delsebank='E'%输出等级为Eend运行结果如下:Untitledpleaseimportresults:123Error:wrongdataUntitledpleaseimportresults:96bank=AUntitledpleaseimportresults:85bank=BUntitledpleaseimportresults:72bank=CUntitledpleaseimportresults:632bank=CUntitledpleaseimportresults:6bank=E(3)用switch语句实现题目要求MATLAB程序代码如下:c=input('pleaseimportresults:');%输入分数switchfloor(c/10)%用switch语句实现对分数的求商case{9}bank='A';case{8}bank='B';case{7}bank='C';case{6}bank='D';casenum2cell(0:5)%表示取整后是0到5bank='E';otherwisebank='输入出错';enddisp(bank);运行结果如下:pleaseimportresults:123输入出错Untitledpleaseimportresults:95AUntitledpleaseimportresults:86BUntitledpleaseimportresults:75CUntitledpleaseimportresults:65DUntitledpleaseimportresults:3EUntitledpleaseimportresults:-13输入出错2.设计程序,完成[10,99]之间两位整数的加、减、乘、除四则运算。要求:1)随机产生区间[10,99]之内的两位随机整数2)在产生符合要求的随机数后,输入一个运算符号,做相应的运算3)运算结果显示在命令窗口,其显示类似于“a=x+y=68”的形式。MATLAB程序代码如下:y=10+(99-10)*rand%产生10到99之间的随机数a=round(rand*90)+10;disp(a)%产生10到99之间的随机数ab=round(rand*90+10);disp(b)%产生10到99之间的随机数bc=input('请输入一个四则运算符号,用单引号括起来');switchccase'+'d=a+b;%做加法运算case'-'d=a-b;%做减法运算case'*'d=a*b;%做乘法运算case'/';d=a/b;%做除法运算endd运行结果如下:Untitledy=91.29056719请输入一个四则运算符号,用单引号括起来'+'d=86Untitledy=34.78635996请输入一个四则运算符号,用单引号括起来'-'d=-37Untitledy=95.875124497请输入一个四则运算符号,用单引号括起来'*'d=2328Untitledy=95.18795482请输入一个四则运算符号,用单引号括起来'/'d=0.65853.求下列分段函数的值并绘制函数曲线。2226,056,1,xxxxyxxxxxxx且-3010,2且3其他要求:1)x的值以向量的形式从键盘输入。2)用if语句实现,分别输出x=﹣5.0,﹣3.0,1.0,2.0,2.5,3.0,5.0时的y值。3)自行拟定自变量的取值,绘制该分段函数的二维曲线。MATLAB程序代码如下:functiony=myfun(x)%间;建立功能函数myfun,,以便下面调用该函数ifx==2||abs(x)==3||x=5y=x.^2-x-1;elseifx0y=x.^2+x-6;elsey=x.^2-5*x+6;endx=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];l=length(x);y=zeros(1,1);fork=1:1y(k)=myfun(x(k));调用功能函数myfunend[x;y]plot(x,y;运行结果如下:ans=-0.5000-3.00001.00002.00002.50003.00005.0000-6.250011.00002.00001.0000-0.25005.00006.0000结果截图如下:5图14.分别使用for循环语句和while循环语句找出最小的n值,使得n!10100,并求出n!。MATLAB程序代码如下:s=1;forn=1:100ifs10100;n=n-1;break;elses=s*n;endendfprintf('n=%d\n',n,s)运行结果如下:Untitledn=8n=40320MATLAB程序代码如下:s=1;n=1;whiles=10100;n=n+1;s=s*n;endfprintf('n=%d\n',n,s)运行结果如下:Untitledn=8n=403205.已知f1=1,n=1f2=0,n=2f3=1,n=3fn=fn-1-2fn-2+fn-3,n3求f1~f50中:1)最大值和最小值及它们的位置、各数之和(最大值给变量MAX,其位置给变量x,6最小值给变量MIN,其位置给变量y,各数之和给变量SUM)。2)正数、零、负数的个数(依次赋值给变量N_positive,N_zero,N_negative)。MATLAB程序代码如下:f(1)=1;f(2)=0;f(3)=1;forn=4:50f(n)=f(n-1)-2*f(n-2)+f(n-3)end[MAX,X]=max(f)%将最大值赋值给MAX,位置给x[MIN,Y]=min(f)%将最大值赋值给MIN,位置给ySUM=sum(f)%和赋值给SUMN_positive=length(find(f0))%找到正数的个数和位置,赋值给N_positiveN_zero=length(find(f==0))%找到零的个数和位置赋值给N_zeroN_negative=length(find(f0))%找到负数的个数和位置赋值给N_negative运行结果如下:MAX=406631X=49MIN=-403795Y=50SUM=76861N_positive=25N_zero=2N_negative=236.Fibonacci数组的元素满足Fibonacci规则:ak+2=ak+ak+1,(k=1,2,3,…);且a1=a2=1。请设计一段程序,求出该数组中第一个大于10000的元素对应的k值以及该元素值。MATLAB程序代码如下:a1=1;a2=1;i=3;a3=a1+a2;whilea310000;%实现循环求出数组中大于10000的k值和对应的该值a1=a2;a2=a3;a3=a1+a2;i=i+1;endfprintf('i=%d\na(i)=%d\n',i,a3)fprintf('a(%d)=%d\n',i,a3)%输出i和a3运行结果如下:Untitledi=21a(i)=109467a(21)=109467.定义自变量x的取值区间为[﹣5,5],编写一个函数文件,实现绘制函数y=ax3+bx2+cx+d的曲线,其中给定各系数值分别为①a=﹣1,b=2,c=﹣5,d=3;②a=3,b=﹣7,c=1,d=4;③a=0,b=4,c=0,d=﹣5要另外编写调用该函数文件的m文件,实现调用。MATLAB程序代码如下:functionmydraw(a,b,c,d)%建立函数mydrawx=-5:0.1:5;y=a*x.^3+b*x.^2+c*x+d;plot(x,y);mydraw(-1,2,-5,3)mydraw(3,-7,1,4)mydraw(0,4,0,-5)结果截图如下:图2系数取第①组的曲图3系数取第②组的曲线图4系数取第③组的曲线8.设计程序,在一个图形窗体中画出函数y=ex和y=logx的特性曲线。其中y=ex中x取值区间为(﹣2,2),y=logx中x取值区间为(0.1,5)。要求:1)要有图例、标题('二维图')、坐标轴标签('x轴数据'和'y轴数据');2)每条曲线的属性自己设置,但不能全用默认值。MATLAB程序代码如下:x1=-2:0.1:2;8y1=exp(x1);x2=0.1:0.1:5;y2=log(x2);plot(x1,y1,'r--',x2,y2,'k-d');title('二维图');xlabel('x轴数据');ylabel('y轴数据');legend('e^x曲线','log(x)曲线');%设置图例结果截图如下:图5函数y=ex和y=logx的特性曲线9.采用2行2列子图的方式进行二维图形绘制,要求:1)自变量x的取值区间为[0,2π]2)三个函数分别为:y1=sin(x),y2=cos(x),y3=sin(x)+cos(x)3)在第1幅子图绘制y1的曲线;在第2幅子图绘制y2的曲线;在第3幅子图绘制y3的曲线;在第4幅子图中绘制所有3条曲线4)对每一幅子图,都要有图例、坐标轴标签;曲线的属性自己设置,不能全用默认值。MATLAB程序代码如下:x=0:0.1:2.*pi;y1=sin(x);y2=cos(x);y3=sin(x)+cos(x);subplot(221);plot(x,y1,'r-p');legend('sin(x)');xlabel('横坐标1');ylabel('纵坐标1');subplot(222);plot(x,y2,'go--');legend('cos(x)');xlabel('横坐标2');ylabel('纵坐标2');subplot(223);plot(x,y3,'k-d');legend('sin+cos');9xlabel('横坐标3');ylabel('纵坐标3');subplot(224);plot(x,y1,x,y2,x,y3,'ro-');legend('所有');xlabel('横坐标4');ylabel('纵坐标4');结果截图如下:图6四种二维图10.采用1行2列子图的方式进行二维图形绘制,要求:1)在第1幅子图绘制三维曲线:x∈[0,20]y=sin(x)z=cos(x)2)在第2幅子图绘制三维曲面:x∈[﹣20,20]y∈[﹣10,10]4y9xz223)对每一幅子图,都要有标题、坐标轴标签;曲线的属性自己设置,不能全用默认值。MATLAB程序代码如下:x1=0:0.1:20;y1=sin(x1);z1=cos(x1);x2=(-20:0.1:20);y2=(-10:0.1:10);[X,Y]=m