您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > matlab实验指导答案详解(非常详细正确)
实验一MATLAB工作环境熟悉及简单命令的执行一、实验目的:熟悉MATLAB的工作环境,学会使用MATLAB进行一些简单的运算。二、实验内容:MATLAB的启动和退出,熟悉MATLAB的桌面(Desktop),包括菜单(Menu)、工具条(Toolbar)、命令窗口(CommandWindow)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。三、实验步骤:1、启动MATLAB,熟悉MATLAB的桌面。2、在命令窗口执行命令完成以下运算,观察workspace的变化,记录运算结果。(1)(365-522-70)3(365-52*2-70)/3ans=63.6667(2)area=pi*2.5^2area=19.6350(3)已知x=3,y=4,在MATLAB中求z:232yxyxzx=3y=4z=x^2*y^3/(x-y)^2z=576(4)将下面的矩阵赋值给变量m1,在workspace中察看m1在内存中占用的字节数。m1=11514412679810115133216执行以下命令m1=[162313;511108;97612;414151]m1(2,3)ans=10m1(11)ans=6m1(:,3)ans=310615m1(2:3,1:3)ans=51110976m1(1,4)+m1(2,3)+m1(3,2)+m1(4,1)ans=34(5)执行命令helpabs查看函数abs的用法及用途,计算abs(3+4i)(6)执行命令x=0:0.1:6*pi;y=5*sin(x);plot(x,y)(6)运行MATLAB的演示程序,demo,以便对MATLAB有一个总体了解。四、思考题1、以下变量名是否合法?为什么?(1)x2合法(2)3col不合法,首字符是数字(3)_row不合法,首字符必须是字母(4)for不合法,for为MATLAB的保留关键字2、求以下变量的值,并在MATLAB中验证。(1)a=1:2:5;a=135(2)b=[a'a'a'];b=111333555(3)c=a+b(2,:)c=468实验二MATLAB语言矩阵运算一、实验目的:掌握基本的矩阵运算及常用的函数。二、实验内容:654321a531142b201c063258741d1、下列运算是否合法,为什么?如合法,结果是多少?(1)result1=a'(2)result2=a*b不合法,两矩阵的内阶不相等。(3)result3=a+b(4)result4=b*d(5)result5=[b;c']*d(6)result6=a.*b(7)result7=a./b(8)result8=a.*c不合法,两矩阵的维数不相等,点乘相求两矩阵的维数相同。(9)result9=a.\b(10)result10=a.^2(11)result11=a^2不合法,a矩阵不是方阵,方阵才能取平方。(12)result12=2.^a以上运算的关键不是结果是多少,而是结果怎么得来的,比如result5=[b;c']*d,要学会将其分解后去理解,可在命令窗口输入以下语句:c't=[b;c']r5=t*d2、用MATLAB求下面的的方程组。(1)017413231511222315921274321xxxxA=[7,2,1,-2;9,15,3,-2;-2,-2,11,5;1,3,2,13]b=[4;7;-1;0]x=A\bx=0.49790.14450.0629-0.0813(2)56533332821wzyxwyxwzyxzyxA=[1,1,1,0;1,2,1,-1;2,-1,0,-3;3,3,5,-6]b=[1;8;3;5]xyzw=inv(A)*bxyzw=1.00005.0000-5.0000-2.00003、已知1323151122231592127AA=[7,2,1,-2;9,15,3,-2;-2,-2,11,5;1,3,2,13](1)求矩阵A的秩(rank)rank(A)(2)求矩阵A的行列式(determinant)det(A)(3)求矩阵A的逆(inverse)inv(A)(4)求矩阵A的特征值及特征向量(eigenvalueandeigenvector)[v,d]=eig(A)该题目要求大家学会使用MATLAT的帮助系统,一是知道函数名,怎样查函数用法,二是不知道函数名,怎样查函数名及其用法。4、关系运算与逻辑运算已知a=20,b=-2,c=0,d=1(1)r1=ab(2)r2=ab&cd(3)r3=a==b*(-10)(4)r4=~b|cr1=1,r2=0,r3=1,r4=0三、思考题109910101022222nny,求y=?(用formatlongg查看y的值)方法一:n=-10:1:10formatlonggx=2.^ny=sum(x)方法二:y=0;fort=-10:10y=y+2^t;endy方法三y=0;t=-10whilet=10y=y+2^t;t=t+1;endy实验三选择结构程序设计及调试一、实验目的:掌握利用if、switch语句编写选择结构程序,学会MATLAB程序编辑、运行及调试方法。二、实验内容:1、求分段函数的值。51506506222xxxxxxxxxy用if语句实现,算出下列表中x对应的y值。X-50258y14601955clcclearx=-5%x=input('请输入x的值')ifx0y=x^2+x-6;elseifx=0&x5y=x^2-5*x+6;elsey=x^2-x-1;endy2、分别用if和swith语句实现,将百分制成绩转换为成绩等级A、B、C、D、E。其中[90~100]分为A,[80~90)分为B,[70~80)分为C,[60~70)分为D,60分以下为E。对超出百分制范围的成绩,给出错误提示信息。clcclears=input('请输入百分制成绩:');ifs0|s100g='ERROR';elseifs=90&s=100g='A';elseifs=80&s90g='B';elseifs=70&s80g='C';elseifs=60&s70g='D';elseg='E';endgclcclears=input('请输入百分制成绩:');switchfloor(s/10)case9g='A';case8g='B';case7g='C';case6g='D';casenum2cell(0:5)g='E';otherwiseifs==100g='A';elseg='ERROR';endendg3、程序的调试(参考P77):在以上编写的程序中设置断点,控制程序单步运行,观察程序的执行及变量值的变化情况。三、思考题设计程序,产生两个两位随机整数,再输入一个运算符号,完成成两位数的加、减、乘、除四则运算,并显示相应的结果。clcclearx1=10+floor(90*rand(1))x2=10+floor(90*rand(1))p=input('输入+-*/运算符:','s');switchpcase'+'y=x1+x2;case'-'y=x1-x2;case'*'y=x1*x2;case'/'y=x1/x2;otherwisey='error';endy实验四循环结构程序设计及调试一、实验目的:掌握MATLAB程序编辑、运行及调试方法。二、实验内容:1、启动MATLAB后,点击File|New|M-File,启动MATLAB的程序编辑及调试器(Editor/Debugger),编辑以下程序,点击File|Save保存程序,注意文件名最好用英文字符。点击Debug|Run运行程序,在命令窗口查看运行结果,程序如有错误则改正。注:数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如:21310516842163105168421运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。%classic3n+1problemfromnumbertheory.n=1%n等于1,2,3,5,7等数a=n;whilen1ifrem(n,2)==0n=n/2;elsen=3*n+1;enda=[a,n];enda2、根据2222213121116nx,当n分别取100、1000、10000时,求x的值分别是多少?clccleary=0;n=100fork=1:ny=y+1/k^2;endx=sqrt(6*y)3、编程求满足mii1100002的最小m值。以下是三种方法及结果验证方法。clcclearsum_x=0;n=0;whilesum_x=1e4n=n+1;x=2^n;sum_x=sum_x+x;endre1=nsum_x=0;n=1;whilesum_x=1e4x=2^n;sum_x=sum_x+x;n=n+1;endre2=n-1sum_x=0;n=1;while1x=2^n;sum_x=sum_x+x;ifsum_x1e4break;endn=n+1;endre3=nechoonsum(2.^[1:12])sum(2.^[1:13])echooff三、思考题已知y和t的函数关系:!20/...!3/!2/1)(2032ttttty求下面表格中与t对应的y值t0.20.40.60.81.0yclccleary=1t=1;f=1;forn=1:20f=f*n;y=y+t^n/fendy实验五函数的编写及调试一、实验目的:掌握MATLAB函数的编写及调试方法。二、实验内容:1、编写一个函数,计算下面函数的值,给出x的值,调用该函数后,返回y的值。function[y]=myfun1(x)3,630,0,sin)(xxxxxxxy选择一些数据测试你编写的函数。function[y]=myfun1(x)ifx=0y=sin(x);elseifx=3y=x;elsey=-x+6;end2、编写一个函数求向量中元素的平均值、最大值、最小值、均方根值。function[m_x,max_x,min_x,rms_x]=myfun2(x)方均根值(RootMeanSquare)的计算公式为:NiixNrms121用下面数据测试你写的函数:(1)x=sin(0:0.01:6*pi)(2)x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。function[m_x,max_x,min_x,rms_x]=myfun2(x)%m_x=mean(x);%max_x=max(x);%min_x=min(x);%rms_x=sqrt(sum(x.^2)/length(x));N=length(x);sum_x=0;sum_x2=0;max_x=x(1);min_x=x(1);fork=1:Nsum_x=sum_x+x(k);sum_x2=sum_x2+x(k)^2;ifx(k)max_xmax_x=x(k);endifx(k)min_xmin_x=x(k);endendm_x=sum_x/N;rms_x=sqrt(sum_x2/N);3、编写一个函数,给出一个向量],,[21nxxxx,生成如下范德蒙矩阵。function[v]=myvander(x)112112222121111n
本文标题:matlab实验指导答案详解(非常详细正确)
链接地址:https://www.777doc.com/doc-5801410 .html