111.bart=[0:pi/360:2*pi*22/3];x=93*cos(t)+36*cos(4.15*t);y=93*sin(t)+36*sin(4.15*t);plot(x,y);title('picture');xlabel('time');ylabel('road');grid;bar(x)212.stairsx=linspace(-2*pi,2*pi,40);stairs(x,sin(x))313.contourA=[1,2,3;2,3,4;2,1,1];contour(A)4三、实验举例1.t=[0:pi/360:2*pi*22/3];x=93*cos(t)+36*cos(t*4.15);y=93*sin(t)+36*sin(t*4.15);plot(y,x),grid;52.t=0:0.05:100;x=t;y=2*t;z=sin(2*t);plot3(x,y,z,'b:')63.t=0:pi/20:2*pi;y=sin(x);stairs(x,y)74.th=[pi/200:pi/200:2*pi]';r=cos(2*th);polar(th,r),grid85.th=[0:pi/10:2*pi];x=exp(j*th);plot(real(x),imag(x),'r*');grid;9课堂探索思考题:subplot分屏函数的用法;(2,2,3)这个图没有则怎么样?%程序subplot(2,2,1);t=[0:pi/200:2*pi];y=sin(t);plot(t,y);subplot(2,2,2);t=[0:pi/200:2*pi];y=cos(t);plot(t,y);subplot(2,2,3);subplot(2,2,4);t=[0:pi/200:2*pi];y=t.*t;plot(t,y);由此可知,(2,2,3)这个图没有则为空。10实验三MATLAB程序设计一、实验任务1.熟悉MATLAB程序设计的方法和思路;2.掌握循环、分支语句的编写,学会使用lookfor、help命令。二、程序举例1.计算1~1000之内的斐波那契亚数列f=[1,1];i=1;whilef(i)+f(i+1)1000f(i+2)=f(i)+f(i+1);i=i+1;endf,i改动程序中的参数和输入量,验证输出结果:f=[1,1,2,3];i=1;whilef(i)+f(i+1)1000f(i+2)=f(i)+f(i+1);i=i+1;endf,if=1123581321345589144233377610987i=15112.m=3;n=4;fori=1:mforj=1:na(i,j)=1/(i+j-1);endendformatrata改动程序中的参数和输入量,验证输出结果:m=1;n=5;fori=1:mforj=1:na(i,j)=1/(i+j-1);endendformatrataa=11/21/31/41/5123.m=3;n=4;fori=1:mforj=1:na(i,j)=1/(i+j-1);endenda请比较程序2与程序3的区别clearallm=4;n=3;fori=1:mforj=1:na(i,j)=1/(i+j-1);endendformatrataa=11/21/31/21/31/41/31/41/51/41/51/6由此可以发现:之前是三行四列;此时是四行三列。这是内循环和外循环的范围不同导致的。4.x=input('请输入x的值:');ifx==10y=cos(x+1)+sqrt(x*x+1);elsey=x*sqrt(x+sqrt(x));endy改动程序中的参数和输入量,验证输出结果:13x=input('请输入x的值:');formatlong;%结果以小数的形式输出ifx==10y=cos(x+1)+sqrt(x*x+1);elsey=x*sqrt(x+sqrt(x));endy请输入x的值:10y=10.054301319108945.去掉多项式或数列开头的零项p=[0001302009];fori=1:length(p),ifp(1)==0,p=p(2:length(p));end;end;p改动程序中的参数和输入量,验证输出结果:p=1302009146.建立MATLAB的函数文件,程序代码如下,以文件名ex2_4.m存盘functionf=ffibno(n)%ffibno计算斐波那契亚数列的函数文件%n可取任意自然数%程序如下f=[1,1];i=1;whilef(i)+f(i+1)nf(i+2)=f(i)+f(i+1);i=i+1;end在editor中编辑好函数源程序后,F5,addtopath,保存。在commandwindow中键入ex2_4(200)则可以得到输出结果:(输入完毕后在MATLAB的命令窗口输入ex2_4(200),得到运行结果。)ex2_4(200)ans=Columns1through8112358132115Columns9through12345589144在MATLAB的命令窗口输入lookforffibno,得到结果:ex2_4.m:%ffibno计算斐波那契亚数列的函数文件lookforffibnoex2_4-ffibno计算斐波那契亚数列的函数文件在MATLAB的命令窗口输入helpex2_4,得到结果:ffibno计算斐波那契亚数列的函数文件n可取任意自然数程序如下16三、程序设计题用一个MATLAB语言编写一个程序:输入一个自然数,判断它是否是素数,如果是,输出“Itisoneprime”,如果不是,输出“Itisnotoneprime.”。要求通过调用子函数实现。最好能具有如下功能:①设计较好的人机对话界面,程序中含有提示性的输入输出语句。②能实现循环操作,由操作者输入相关命令来控制是否继续进行素数的判断。如果操作者希望停止这种判断,则可以退出程序。③如果所输入的自然数是一个合数,除了给出其不是素数的结论外,还应给出至少一种其因数分解形式。例:输入6,因为6不是素数。则程序中除了有“Itisnotoneprime”的结论外,还应有:“6=2*3”的说明。此题详细解答过程如下:①首先,编辑一个子函数,实现功能:判断输入的数是否为素数。程序代码:function[i]=prime_number(x)k=2;i=1;if(x==0)|(x==1)i=0;elseif(x==2)i=1;endwhilekxifmod(x,k)==0i=0;endk=k+1;end②然后,使用循环结构调用子函数,实现功能:连续判断输入的数是否为素数。程序代码:n=1;whilen==1x=input('\n请输入自然数x的值:');ifprime_number(x)==0%此为编写的子程序:如果返回1则为素数,0则相反;或者直接调用库函数t=isprime(x)S=fprintf('\nItisnotoneprime(这不是素数)\n');if(x==0)|(x==1)continue;17endk=x/2;display(['',num2str(x),'','=2*','',num2str(k)])elseS=fprintf('\nItisoneprime(这是一个素数)\n');endn=input('\n是否要继续判断素数,如果继续请输入1;如果终止请输入0:');ifn==0break;%函数退出程序elseifn==1continue;elsefprintf('您的输入有误,请重新输入');n=input('\n是否要继续判断素数,如果继续请输入1;如果终止请输入0:');endend③程序运行结果:18实验四MATLAB的符号计算与SIMULINK的使用一、实验任务1.掌握MATLAB符号计算的特点和常用基本命令;2.掌握SIMULINK的使用。二、程序举例1.求矩阵对应的行列式和特征根a=sym('[a11a12;a21a22]');da=det(a)ea=eig(a)2.求方程的解(包括精确解和一定精度的解)r1=solve('x^2-x-1')rv=vpa(r1)rv4=vpa(r1,4)rv20=vpa(r1,20)193.a=sym('a');b=sym('b');c=sym('c');d=sym('d');%定义4个符号变量w=10;x=5;y=-8;z=11;%定义4个数值变量A=[a,b;c,d]%建立符号矩阵AB=[w,x;y,z]%建立数值矩阵Bdet(A)%计算符号矩阵A的行列式det(B)%计算数值矩阵B的行列式204.symsxy;s=(-7*x^2-8*y^2)*(-x^2+3*y^2);expand(s)%对s展开collect(s,x)%对s按变量x合并同类项(无同类项)factor(ans)5.对方程AX=b求解A=[34,8,4;3,34,3;3,6,8];b=[4;6;2];X=linsolve(A,b)%调用linsolve函数求解A\b%用另一种方法求解