您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 中南大学系统仿真实验报告
..实验一MATLAB中矩阵与多项式的基本运算实验任务1.了解MATLAB命令窗口和程序文件的调用。2.熟悉如下MATLAB的基本运算:①矩阵的产生、数据的输入、相关元素的显示;②矩阵的加法、乘法、左除、右除;③特殊矩阵:单位矩阵、“1”矩阵、“0”矩阵、对角阵、随机矩阵的产生和运算;④多项式的运算:多项式求根、多项式之间的乘除。基本命令训练1、eye(2)ans=1001eye(4)ans=10000100001000012、ones(2)ans=1111ones(4)ans=1111111111111111ones(2,2)ans=1111ones(2,3)..ans=111111ones(4,3)ans=1111111111113、zeros(2)ans=0000zeros(4)ans=0000000000000000zeros(2,2)ans=0000zeros(2,3)ans=000000zeros(3,2)ans=0000004、随机阵rand(2,3)ans=0.27850.95750.15760.54690.96490.9706rand(2,3)ans=0.95720.80030.42180.48540.14190.91575、diag(5)ans=5..diag(5,5)ans=000005000000000000000000000000000000diag(2,3)ans=00020000000000006、(inv(A)为求A的逆矩阵)B=[531;238;111],inv(B)B=531238111ans=0.62500.2500-2.6250-0.7500-0.50004.75000.12500.2500-1.1250A=[23;44],B=[53;38],inv(A),inv(B);A\B,A/B,inv(A)*B,B*inv(A)A=2344B=5338ans=-1.00000.75001.0000-0.5000ans=-2.75003.00003.5000-1.0000ans=0.22580.29030.64520.2581ans=-2.75003.00003.5000-1.0000..ans=-2.00002.25005.0000-1.75007、p=[1,-6,-72,-27],roots(p)p=1-6-72-27ans=12.1229-5.7345-0.3884p=[2,3,6],roots(p)p=236ans=-0.7500+1.5612i-0.7500-1.5612i8、(A为n*n的方阵)A=[010;-440;-212],poly(A),B=sym(A),poly(B)A=010-440-212ans=1-612-8B=[0,1,0][-4,4,0][-2,1,2]ans=x^3-6*x^2+12*x-89,、(conv是多项式相乘.deconv是多项式相除)u=[1246],v=[500-67],conv(u,v)u=1246v=500-67ans=5102024-5-10-842v=[1246],u=[500-67],deconv(u,v)v=1246u=500-67..ans=5-1010、(点乘是数组的运算.没有点的乘是矩阵运算)a=[25;34],b=[31;47],a.*b,a*ba=2534b=3147ans=651228ans=26372531a=[23];b=[47];a.*b=[821];a*b%错误a*b'=29;11、(who可以看到你用过的一些变量.whos是把该变量及所存储的大小等信息都显示出来了)whoYourvariablesare:ABaansbpuvwhosNameSizeBytesClassAttributesA2x232doubleB2x232doublea1x216doubleans1x216doubleb1x216doublep1x324doubleu1x540doublev1x432double12、A=[253;654],disp(A),size(A),length(A)A=253654253654..ans=23ans=3实验二MATLAB绘图命令实验任务熟悉MATLAB基本绘图命令.掌握如下绘图方法:1.坐标系的选择、图形的绘制;2.图形注解(题目、标号、说明、分格线)的加入;3.图形线型、符号、颜色的选取。基本命令训练1、t=[0:pi/360:2*pi];x=cos(t)+cos(t*4);y=sin(t)+sin(t*4);xlabel('x轴');ylabel('y轴');plot(y,x),grid;2、t=0:0.1:100;x=3*t;y=4*t;z=sin(2*t);plot3(x,y,z,'g:')..3、x=linspace(-2*pi,2*pi,40);y=sin(x);stairs(x,y)4、t=[0:pi/360:2*pi];x=cos(t)+cos(t*4)+sin(t*4);y=sin(t)+sin(t*4);plot(y,x,'r:');xlabel('x轴');ylabel('y轴');5、th=[0:pi/1000:2*pi]';r=cos(2*th);polar(th,r);title('四叶草图')..6、th=[0:pi/20:2*pi];x=exp(j*th);plot(real(x),imag(x),'r-.');grid;text(0,0,'中心');7、x=-2:0.01:2;8、y=-2:0.01:2;9、[X,Y]=meshgrid(x,y);Z=Y.*exp(-X.^2-Y.^2);[C,h]=contour(X,Y,Z);set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)8、x=0:0.2:10;y=2*x+3;subplot(411);plot(x,y);grid;title('y的原函数');subplot(412);semilogy(x,y);grid;title('对y取对数');subplot(413);semilogx(x,y);grid;title('对x取对数');subplot(414);loglog(x,y);grid;title('对xy均取对数');..9、x=-3:0.3:3;bar(x,exp(-x.*x),'g')实验三MATLAB程序设计实验任务1.熟悉MATLAB程序设计的方法和思路;2.掌握循环、分支语句的编写.学会使用lookfor、help命令。程序举例1、f=[1,1];i=1;whilef(i)+f(i+1)1000f(i+2)=f(i)+f(i+1);i=i+1;endf,if=Columns1through141123581321345589144233377Columns15through16610987i=152、m=3;n=4;fori=1:mforj=1:na(i,j)=1/(i+j-1);..endendformatrataa=11/21/31/41/21/31/41/51/31/41/51/6(分数格式形式。用有理数逼近显示数据)m=5;n=4;fori=1:mforj=1:na(i,j)=1/(i+j-1);endendformatrataa=11/21/31/41/21/31/41/51/31/41/51/61/41/51/61/71/51/61/71/83、程序中没有formatrat命令时.如果上次运行结果没有清除.输出的结果就是上次运行的结果!但是运用clear命令清楚之前的运行结果之后就会正常运行。4、x=input('请输入x的值:');ifx==10y=cos(x+1)+sqrt(x*x+1);elsey=x*sqrt(x+sqrt(x));endy请输入x的值:2y=2391/647x=input('请输入x的值:');ifx==10y=fprintf('不在定义域内.请重新输入:');returnelse..y=1/(x-10);endy请输入x的值:2y=-1/85、p=[0001302009];fori=1:length(p),ifp(1)==0,p=p(2:length(p));end;end;pp=Columns1through513020Columns6through709p=[0001302009];p(p==0)=[];pp=13296、e2(500)ans=1123581321345589144233377lookforffibnoe2-ffibno计算斐波那契亚数列的函数文件helpe2ffibno计算斐波那契亚数列的函数文件n可取任意自然数程序如下(用法:lookfor关键词在所有M文件中找“关键词”.比如:lookformax(即寻找关键词“max”)其实就和我们平时用CTRL+F来查找“关键词”是一样的而help是显示matlab内置的帮助信息用法:help命令.比如helpinv.作用就是调用inv这个命令的帮助)程序设计题..用一个MATLAB语言编写一个程序:输入一个自然数.判断它是否是素数.如果是.输出“Itisoneprime”.如果不是.输出“Itisnotoneprime.”。要求通过调用子函数实现。最好能具有如下功能:①设计较好的人机对话界面.程序中含有提示性的输入输出语句。②能实现循环操作.由操作者输入相关命令来控制是否继续进行素数的判断。如果操作者希望停止这种判断.则可以退出程序。③如果所输入的自然数是一个合数.除了给出其不是素数的结论外.还应给出至少一种其因数分解形式。例:输入6.因为6不是素数。则程序中除了有“Itisnotoneprime”的结论外.还应有:“6=2*3”的说明。functionsushuwhile1x=input('请输入一个自然数');ifx2disp('既不是质数又不是合数');Elseifisprime(x)==1disp('这是一个素数');Elsedisp('这是一个合数.可以因式分解为:')forn=2:sqrt(x)ifrem(x,n)==0num3=x;num1=n;num2=x/n;disp([num2str(num3),'=',num2str(num1),'x',num2str(num2)])EndEndEndendy=input('是否继续判断?继续请按1.按任意键退出:');ify~=1breakendend..实验四MATLAB的符号计算与SIMULINK的使用实验任务1.掌握MATLAB符号计算的特点和常用基本命令;2.掌握SIMULINK的使用。程序举例1.求矩阵对应的行列式和特征根a=sym('[a11a12;a21a22]');da=det(a)ea=eig(a)da=a11*a22-a12*a21ea=1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)a=sym('[23;15]');da=det(a)ea=eig(a)da=7ea=7/2+1/2*21^(1/2)7/2-1/2*21^(1/2)2.求方程的解(包括精确解和一定精度的解)r1=solve('x^2+x-1')rv=vpa(r1)rv4=vpa(r1,4)rv20=vpa(r1,20)..r1=1/2*5^(1/2)-1/2-1/2*5^(1/2)-1/2rv=.61803398874989484820458683436560-1.6180339887498948482
本文标题:中南大学系统仿真实验报告
链接地址:https://www.777doc.com/doc-5924375 .html