Matlab实验五分支结构程序设计答案
MATLAB原理及应用实验报告第五章答案
《MATLAB 原理及应用》实验报告三.练习题1、编写程序绘制如下图形(时间间隔自己设定)图中曲线标注:sin(t)标注在(1.7*pi,-0.3),cos(t)标注在(1.6*pi,0.8) 2、使用subplot指令在不同区域画出下列曲线y=sinAx;y=cosAx;y=Ae x ,y=x^2。
x 的取值范围是]15,0[,A 为自己的学号。
3、画出衰减振荡曲线t e y t 3sin 3-=及其它的包络线30t e y -=。
t 的取值范围是]4,0[π,图的标题字体大小(fontsize)为10号,字体(fontname)宋体,字体风格(fontangle )为斜体字体,并选择合适的位置在图上标注自己的学号,姓名,以及作图日期,字体大小、字体风格自己指定。
四.实验程序及结程序为1:t=0:0.1:4*pi;y=sin(t);y1=cos(t);plot(t,y,'r',t,y1,'--b') text(1.7*pi,-0.3,'sint') text(1.6*pi,0.8,'cost')2468101214-1-0.8-0.6-0.4-0.200.20.40.60.812:x=0:0.1:15; y1=sin(1*x); subplot(2,2,1); plot(x,y1); y2=cos(1*x); subplot(2,2,2); plot(x,y2);y3=(1*exp(x)); subplot(2,2,3); plot(x,y3); y4=x.^2; subplot(2,2,4); plot(x,y4);051015-1-0.500.51051015-1-0.500.510510151234x 1060510151002003003 程序为:t=0:0.01:4*pi;y0=exp(-t/3);y1=-exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y0,'--b',t,y,'r',t,y1,'--b');title('y=e^(-t/3)sin(3t)及它的包络线','fontsize',10','fontweigh','bold','fontangle','italic');text(9,-0.4,['学号:'],'fontsize',10','fontweigh','bold','fontangle','italic');text(9.5,-0.6,['姓名:某某某'],'fontsize',10','fontweigh','bold','fontangle','italic');text(10,-0.8,['2013.12.01']);。
matlab实验指导答案详解(非常详细正确)
实验一 MATLAB 工作环境熟悉及简单命令的执行一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。
二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单(Menu )、工具条 (Toolbar )、命令窗口(Command Window)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。
三、实验步骤:1、启动MATLAB ,熟悉MATLAB 的桌面。
2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。
(1)(365-52⨯2-70)÷3 >>(365-52*2-70)/3 ans = 63.6667(2)>>area=pi*2.5^2 area = 19.6350(3)已知x=3,y=4,在MATLAB 中求z :()232y x y x z -= >>x=3 >>y=4>>z = x ^2 * y ^3 / (x - y) ^2 z = 576(4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。
m1=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡11514412679810115133216 执行以下命令>>m1 =[16 2 3 13 ; 5 11 10 8 ; 9 7 6 12 ; 4 14 15 1 ] >>m1( 2 , 3 ) ans = 10 >>m1( 11 ) ans = 6>>m1( : , 3 ) ans =3 10 6 15>>m1( 2 : 3 , 1 : 3 ) ans =5 11 10 9 7 6>>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) ans = 34(5)执行命令>>help abs查看函数abs 的用法及用途,计算abs( 3 + 4i ) (6)执行命令>>x=0:0.1:6*pi; >>y=5*sin(x); >>plot(x,y)(6)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。
(完整版)Matlab实验5选择结构程序结构
(完整版)Matlab实验5选择结构程序结构实验五、选择与循环结构一、实验目的:1、掌握建立和执行M 文件的方法。
2、掌握利用if 语句实现选择结构的方法。
3、掌握利用switch 语句实现多分支选择结构的方法。
4、掌握try 语句的使用。
5、掌握利用for 语句实现循环结构的方法。
6、掌握利用while 语句实现循环结构的方法。
7、熟悉利用向量运算来代替循环的操作方法。
二、实验内容:1、列分段函数的值。
--≠≠<≤+--≠<-+=其他且且,632,100,6530,6222x x x x x x x x x x x y要求:(1) 用if 语句实现,分别输出x =-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。
提示:x 的值从键盘输入,可以是向量。
%homework_5_1_1.mx=input('请输入x 的值:x=');if (x<0 & x~=-3)y= x.*x + x - 6elseif (x>=0 & x<10 & x~=2 & x~=3)y=x.*x-5.*x+6elsey=x.*x-x-6end>> homework_5_1请输入x 的值:x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]y =-5.2500 6.0000 -6.0000 -4.0000 -2.2500 0 14.0000(2) 用逻辑表达式实现上述函数。
%homework_5_1_2.mx=input('请输入x 的值:x=')y=(x<0 & x~=-3).*(x.*x+x-6)...+(x>=0 & x<10 &x~=2 &x~=3).*(x.*x-5.*x+6)...+(x>=10 | x==-3 | x==3 | x==2).*(x.*x-x-6)>> homework_5_1_2请输入x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]x =-0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y =-6.2500 6.0000 2.0000 -4.0000 -0.2500 0 6.00002、输入一个百分制成绩,要求输出成绩的等级为A,B,C,D,E。
实验5
实验五第3章MATLAB程序设计第二节程序控制结构程序控制结构有三种:顺序结构、旋择结构、循环结构.任何复杂的程序都可以由这三种基本结构构成.Matlab提供了实现控制结构的语句,利用这些语句可以编写解决实际问题的程序.一、顺序结构顺序结构是指按照程序中语句的排列顺序从上到下依次执行,直到程序的最后一个语句如例1的qiu文件和例2的dd1文件.这是最简单的一种程序结构.一般涉及数据的输入、计算或处理、数据的输出等内容.1. 数据的输入通过input命令来接收从终端输入的内容,它也可以显示文本和提示.命令集14 输入命令input(out ,in)在屏幕上显示出字符串out的文本并等待终端的输入.如果变量in是's',则输入的内容以字符串的形式进行保存,通常MATL AB在保存前要尽可能地求出表达式的值.如果使用格式控制符号如'\n',字符串out可以是若干行.2. 数据的输出可以通过简单地输入变量的名字来显示数字矩阵或者字符串向量的内容,结果将显示出变量的名字和内容.另一种显示变量的值就是使用命令disp.使用它只显示出变量的内容,这是有用的,特别是在字符串的应用中.命令集15显示命令disp(A)显示矩阵A的内容,如果A是字符串,则显示出它的文本.二、循环结构循环结构是按照给定的条件,重复执行指定的语句.Matlab用于实现循环结构的语句有for — end语句和while — end语句.1.for —end语句for-end语句的格式为:for 循环变量=表达式1 : 表达式2 : 表达式3循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值.步长为1时,表达式2可以省略.循环语句应用时应注意:● 循环语句可以嵌套使用;● 不能在 for — end 循环体内改变循环变量的值; ● 为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免 for — end 循环的使用,如例8;● 如果预先就知道循环的次数,则可以采用 for — end 循环;否则,如果预先无法确定循环的次数,则可以使用 while — end 循环.2. while — end 循环while-end 语句的一般格式为:while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环.■例1 使用while-end 结构计算1+2+3+…+100 . 解:■例2 计算 Matlab 中 eps 值 (exp1.m) 解:s=0;for i=1:100 s=s+i; end ss=0; i=1;while i<=100 s=s+i; i=i+1; end snum=0; EPS=1; while (1+EPS)>1 EPS=EPS/2; num=num+1; endEPS,num三、选择结构选择结构是根据给定的条件成立或不成立,分别执行不同的语句.Matlab 用于实现选择结构的语句有条件语句:if –end 和 开关语句:switch-end .1.单分支结构 if —end 语句 2.双分支结构 if —else —end 语句 if-end 语句的格式为: if-else-end 语句的格式为:3.多分支结构 if — elseif — else — end 语句 if — elseif — else — end 语句的格式为:if 条件表达式 语句组 endif 条件表达式 语句组1 else语句组2 endif 条件表达式1 语句组1 elseif 条件表达式 2 语句组2 ... ...elseif 条件表达式 m 语句组m else 语句组end■例3求函数1;00;1;x y x x -<⎧⎪= =0⎨⎪ >⎩ ,输入x 值,输出y 值.解:■例4一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数.输出全部水仙花数.解:程序如下运行结果:153 370 371 407function y=fuhao(x) if x<0 y=-1; elseif x==0 y=0; else y=1; endA=[];for m=100:999m1=fix(m/100); %求m 的百位数字 m2=rem(fix(m/10),10); %求m 的十位数字 m3=rem(m,10); %求m 的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 A=[A,m];endend disp(A)4. switch-end 语句根据表达式的不同取值,分别执行不同的语句.其格式如下:■关于 switch-end 语句的几点注解:● Matlab 首先计算表达式的值,然后将它依次与各个case 指令后的检测值进行比较,当比较结果为真时,就执行相应的语句组,然后跳出 switch-end 结构● 如果所有的比较结果都为假,则执行 otherwise 后面的语句组,然后跳出 switch-end 结构 ● otherwise 指令可以不出现● switch 后面的表达式的值可以是一个标量或字符串 ● case 指令后的检测值超过一个时,应用{}括起来switch 表达式 case 值1 语句组1 case 值2 语句组2 ... ... case 值m 语句组m otherwise 语句组n end■例5 阅读程序method=input('请输入方法名:')switch methodcase {'linear','bilinear'}disp('Method is linear')case 'cubic'disp('Method is cubic')case 'nearest'disp('Method is nearest')otherwisedisp('Unknown method.')end■例6用switch-end语句编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设:90分以上为…A‟, 80~89分为…B‟,70~79分为…C‟,60~69分为…D‟,60分以下为…E‟.function sctole(score)grade=fix(score/10);switch gradecase {10,9}grade='A'case 8grade='B'case 7grade='C'case 6grade='D'otherwisegrade='E'end四、其他流程控制语句●break语句●continue语句●return语句●try语句●echo命令●keyboard命令●pause命令1.break和continue语句与循环结构相关的语句还有break语句和continue语句.它们一般与if语句配合使用.break语句用于终止循环的执行.当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句后的下一语句.continue语句控制跳过循环体中的某些语句.当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环. ■例7求[100,200]之间第一个能被21整除的整数.for n=100:200if rem(n,21)~=0continueendbreakendn for n=100:200if rem(n,21)==0breakendendn2.try语句语句格式为:try语句组1catch语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2.这种试探性执行语句是其他高级语言所没有的.■例8矩阵乘法运算要求两矩阵的维数相容,否则会出错.先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘.function C=rc(A,B)%A,B为矩阵tryC=A*B;catchC=A.*B;endlasterr %显示出错原因3.请求键盘输入命令keyboard暂停运行程序并处于等待键盘输入状态(便于调试及程序运行中修改变量),键入“return”程序继续运行.如运行如下:4. echo 命令(在命令窗口,程序调用前使用)一般情况下,M 文件执行时,文件中的命令不会显示在命令窗口.echo 命令可使文件命令在执行时可见.这对程序的调试及演示很有用.对命令文件和函数文件,echo 的作用稍微有些不同.●对命令文件,其格式如下:echo on 打开命令文件的回应命令 echo off 关闭回应命令●对函数文件,其格式如下:echo file on 使指定的file 文件的命令在执行中被显示出来 echo file off 关闭指定文件的命令在执行中的回应function y=f(x) keyboardy=(5*x-6)/((x-3)*(x-3)+2);>> f K>> x=4; K>> return ans = 4.6667>> y=f(4) K>> return y = 4.6667。
Matlab第五章答案
第一题(1)a=[1 9 8;7 2 5;3 -2 7] %产生矩阵det(a) %检验是否可逆ans=-442,非0,可逆div(a) %求逆矩阵(2)b=[1 0 -7 5;0 -26 7 2;7 4 3 5;8 -3 2 15]det(b)div(b)第二题(1)A=[1 2 3;2 2 5;3 5 1];B=[11 12 31];X=B/A(2) A=[3 1 0 5;0 6 7 3;0 4 3 0;2 -1 2 6];B=[2 4 7 8];X=B/A第三题(1)t=[1 2 3 4 5 6 7 8 9 10]';y=[4.842 4.362 3.754 3.368 3.169 3.083 3.034 3.016 3.012 3.005]';A=[ones(size(t)) exp(-t)];C=A\yT=[0:.1:10]';Y=[ones(size(T)) exp(-T)]*C;plot(T,Y,'-',t,y,'o')title( '采用y(t)≈c1+c2e–t的拟合' )xlabel('\itt'), ylabel('\ity')(2)t=[0 .3 .8 1.1 1.6 2.3]';y=[.82 .72 .63 .60 .55 .50]';A=[ones(size(t)) t.*exp(-t)];C=A\y;T=[0:.1:2.5]';Y=[ones(size(T)) T.*exp(-T)]*C;plot(T,Y,'-',t,y,'o')title('采用y(t)≈d1+d2te–t拟合')xlabel('\itt'), ylabel('\ity')第四题A=[11.59 12.81 15.66; 15.2 4.18 13.61; 10.597.59 9.22];[L,U]=lu(A)[Q R]=qr(A)B=[16.00 4.41 -10.37 -21.61; 0.88 -20.04 12.86 8.56; -1.43 10.71 18.81 -5.99; -12.48 24.35-23.9 10.34];[C,D]=lu(B)[E F]=qr(B)第五题(1)A=[5 -5 -6;3 -2 5;2 -1 -4];x0=[1;-4;5];X=[];for t=0:.01:1X=[X expm(t*A)*x0];endplot3(X(1,:),X(2,:),X(3,:),'-o')grid on(2)A=[1 2 -3 1;3 0 1 -2;1 -2 0 5;2 3 0 1];x0=[1;-1;2;1];X=[];for t=0:.01:1X=[X expm(t*A)*x0];endplot3(X(1,:),X(2,:),X(3,:),'-o')grid on第六题(1)A=[11.59 12.81 15.66; 15.2 4.18 13.61;10.59 7.59 9.22];lambda=eig(A)[V,D]=eig(A)(2)B=[16.00 4.41 -10.37 -21.61; 0.88 -20.04 12.86 8.56; -1.43 10.71 18.81 -5.99; -12.48 24.35 -23.9 10.34];lambda=eig(B)[V,D]=eig(B)第七题(1)x=[1 2 3 4 5 6 7 8 9 10];y=[15.0 39.5 66.0 85.5 89.0 67.5 12.0 -86.4 -236.9 -448.4];p=polyfit(x,y,2);x2=1:.1:10;y2=polyval(p,x2);figure(1)plot(x,y,'o',x2,y2)grid ontitle('二阶多项式曲线拟合')(2)x=[1 2 3 4 5 6 7 8 9 10];y=[15.0 39.5 66.0 85.5 89.0 67.5 12.0 -86.4 -236.9 -448.4];p=polyfit(x,y,3);x2=1:.1:10;y2=polyval(p,x2);figure(1)plot(x,y,'o',x2,y2)grid ontitle('三阶多项式曲线拟合')第八题p1=[1,-2-3,4,2];p2=[1,-7,5,31,-30];p3=[1,-1,-25,25];p4=[-2,3,1,5,8,0];[L1,U1]=lu(p1)r1=roots(p1)[L2,U2]=lu(p2)r2=roots(p2)[L3,U3]=lu(p3)r3=roots(p3)[L4,U4]=lu(p4)r4=roots(p4)第九题p1=[1,-2-3,4,2];p2=[1,-7,5,31,-30];p3=[1,-1,-25,25];p4=[-2,3,1,5,8];p1_x=polyval(p1,[-1.5,2.1,3.5]) p2_x=polyval(p2,[-1.5,2.1,3.5]) p3_x=polyval(p3,[-1.5,2.1,3.5]) p4_x=polyval(p4,[-1.5,2.1,3.5])第十题a=[2,3,-4];b=[4,-2,5];c=[3,0,-2,5,6];d1=conv(a,b)[d2,r2]=deconv(c,a)[d3,r3]=deconv(c,b)第十一题a=[2,3,-4];b=[4,-2,5];c=[3,0,-2,5,6];dao1=polyder(a,b)[dao2,r2]=polyder(c,a)[dao3,r3]=polyder(c,b)第十二题x=-5:.25:5;y=10*exp(-x);xi=-5:5;y1=interp1(x,y,xi,'nearest');y2=interp1(x,y,xi,'linear');y3=interp1(x,y,xi,'spline');y4=interp1(x,y,xi,'cubic'); figure(1);subplot(2,2,1)plot(x,y,'-',xi,y1,'o');title('最邻近内插');grid on;xlabel('x');ylabel('y');subplot(2,2,2)plot(x,y,'-',xi,y2,'o');title('线性内插');grid on;xlabel('x');ylabel('y');subplot(2,2,3)plot(x,y,'-',xi,y3,'o');title('三次样条内插');grid on;xlabel('x');ylabel('y');subplot(2,2,4)plot(x,y,'-',xi,y4,'o');title('三次曲线内插');grid on;xlabel('x');ylabel('y');第十三题x=rand(1,50);y=randn(1,50);minx=min(x)miny=min(y)maxx=max(x)maxy=max(y)avx=mean(x)avy=mean(y)Ex=(std(x)).^2Ey=(std(y)).^2第十四题t=[0 .2 .4 .6 .8 1.0 2.0 5.0 ]';y=[1.0 1.51 1.88 2.13 2.29 2.40 2.60 24.00]'; X1=[ones(size(t)) t t.^2];a=X1\y;X2=[ones(size(t)) exp(-t) t.*exp(-t)];b=X2\y;T=[0:.1:6]';Y1=[ones(size(T)) T T.^2]*a;Y2=[ones(size(T)) exp(-T) T.*exp(-T)]*b; figure(1)subplot(1,2,1)plot(T,Y1,'-',t,y,'o'),grid ontitle('多项式回归')subplot(1,2,2)plot(T,Y2,'-',t,y,'o'),grid ontitle('指数函数回归')第十五题t=0:1/119:1;x=3*sin(2*pi*20*t)+10*sin(2*pi*200*t+pi/4)+10*randn(size(t)); y=fft(x);m=abs(y);f=(0:length(y) -1)'*119/length(y);figure(1)subplot(2,1,1),plot(t,x),grid ontitle('被噪声污染的信号')ylabel('Input \itx'),xlabel('Time ')subplot(2,1,2),plot(f,m)ylabel('Abs. Magnitude'),grid onxlabel('Frequency (Hertz)')第十六题w=input('w=');t=0:1/119:1;x1=sin(w.*t)+randn(size(t));x2=cos(w.*t)+randn(size(t));x3=sin(w.*t)+randn(size(t));a=corrcoef(x1,x2)b=corrcoef(x1,x3)若没有正弦分量w=input('w=');t=0:1/119:1;x1=randn(size(t));x2=randn(size(t));x3=randn(size(t));a=corrcoef(x1,x2)b=corrcoef(x1,x3)第十七题z1=quad('exp(-2*t)',0,2)z2=quad('exp(2*t)',0,2)z3=quad('exp(t.^2-3*t+.5)',-1,1)第十八题function y=five(x)y=exp(-x)-1.5*exp(2*cos(2*x));%主函数x0=input('x0='); %执行时,按要求输入[-1,1]z=fzero('five',x0)第十九题function f=five(x,y)f=exp(-x.*y)-2*x.*y;%主函数z=dblquad('five',0,1,-1,1)第二十题function dy=five(t,y)dy=[0.5-y(1);y(1)-4*y(2)];%主函数X0=[1; -0.5];tspan=[0,25];[T,X]=ode45('five',tspan,X0);figure(1)subplot(2,1,1),plot(T,X(:,1),'r'),title('x_{1}'),grid onsubplot(2,1,2),plot(T,X(:,2),'k'),title('x_{2}'),grid onfigure(2)plot(X(:,1),X(:,2)),title('系统轨迹'),grid onxlabel('x_{1}'),ylabel('x_{2}')。
Matlab实验五分支结构程序设计答案
实验五分支结构程序设计实验内容(1)从键盘输入一个数,将它反向输出,例如输入693,输出为396 >> clear>> format long gs=input('s=')n=fix(log10(s));A=0;for i=1:na=fix(s/10^n);x=fix(mod(s,10^i)/10.^(i-1));A=A+x*10^(n+1-i);endA+as=693s =693ans =396(2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E1)分别用if语句和switch语句实现2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息If语句>> a=input('输入成绩')if a>=90&a<=100 disp('A 成绩合理');elseif a>=80&a<90 disp('B 成绩合理');elseif a>=70&a<80 disp('C 成绩合理');elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理');else disp('成绩错误')end输入成绩98a =98A 成绩合理>> a=input('输入成绩')if a>=90&a<=100 disp('A 成绩合理');elseif a>=80&a<90 disp('B 成绩合理');elseif a>=70&a<80 disp('C 成绩合理');elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理');else disp('成绩错误')end输入成绩148a =148成绩错误switch语句>> a=input('输入成绩')switch a;case num2cell(0:59)disp('E 成绩合理');case num2cell(60:69)disp('D 成绩合理');case num2cell(70:79)disp('C 成绩合理');case num2cell(80:89)disp('B 成绩合理');case num2cell(90:100)disp('A 成绩合理');otherwisedisp('成绩错误');end输入成绩98a =98A 成绩合理>> a=input('输入成绩')switch a;case num2cell(0:59)disp('E 成绩合理');case num2cell(60:69)disp('D 成绩合理');case num2cell(70:79)disp('C 成绩合理');case num2cell(80:89)disp('B 成绩合理');case num2cell(90:100)disp('A 成绩合理');otherwisedisp('成绩错误');end输入成绩148a =148成绩错误小结实验心得体会通过本次实验,我逐渐掌握了点if语句和switch语句的使用,了解了分支结构程序设计方法。
Matlab实验指导书(含答案)汇总
实验Matlab 操作环境熟悉、实验目的1.初步了解Matlab 操作环境。
2.学习使用图形函数计算器命令funtool 及其环境。
二、实验内容熟悉Matlab 操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format 命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who 和whos 命令查看内存变量信息;学会使用图形函数计算器funtool ,并进行下列计算:1.单函数运算操作。
求下列函数的符号导数(1) y=sin(x);(2) y=(1+x)A3*(2-x); 求下列函数的符号积分(1) y=cos(x);(2) y=1/(1+x^2);(3) y=1/sqrt(1-x^2);(4) y=(x-1)/(x+1)/(x+2);求反函数(1) y=(x-1)/(2*x+3);(2) y=exp(x);(3) y=log(x+sqrt(1+x^2));代数式的化简(1) (x+1)*(x-1)*(x-2)/(x-3)/(x-4);(2) sin (x)A2+cos(x)A2;(3) x+sin(x)+2*x-3*cos(x)+4*x*sin(x);2.函数与参数的运算操作。
从y=xA2通过参数的选择去观察下列函数的图形变化(1) y1=(x+1)A2⑵ y2=(x+2)A2(3) y3=2*x^2⑷ y4=x^2+2(5) y5=x^4⑹ y6=x^2/23.两个函数之间的操作求和(1) sin(x)+cos(x)(2) 1+x+x^2+x^3+x^4+x^5乘积(1) exp(-x)*sin(x)(2) sin(x)*x商(1) sin(x)/cos(x);⑵ x/(1+x^2);(3) 1/(x-1)/(x-2);求复合函数(1) y=exp(u) u=sin(x)(2) y=sqrt(u) u=1+exp(xA2)(3) y=sin(u) u=asin(x)(4) y=sinh(u) u=-x三、设计提示1.初次接触Matlab 应该注意函数表达式的文本式描述。
MATLAB实验及答案详解
>> C3
C3 =
9 22 2
8 19 -6
36 88 3
>> D1
D1 =
2 -2 3
655
16 -10 3
>> D2
D2 =
0.5000 -2.0000 0.3333
0.6667 5.0000 0.2000
1.0000 -10.0000 3.0000
>> D3
D3 =
141
4 25 1
16 100 9
5.0000 - 5.0000i 6.0000 - 6.0000i
②求矩阵的逆矩阵
>> B=[1 2;3 4];
>> B1=inv(B) 运行后显示:
B1 = -2.0000 1.0000 1.5000 -0.5000
>> B2=B^(-1) 运行后显示: B2 =
-2.0000 1.0000 1.5000 -0.5000 ③关于矩阵求幂 >>A=[1 2;3 4]; B=[ 2 1;3 2]; >>A.^B 运行后显示: ans =
>>A=[1,2,3;4,5,6] 运行后显示: A= 123 456
在命令窗口输入:
>>b=A(1,2)
运行后显示:b =2
在命令窗口输入:
>>A(2,3)=-3
运行后显示:A =
123
4 5 -3
矩阵的操作
>>A=[1,2,3;4,5,6;7,8,9]
>>B=diag(A) %X 为矩阵时,V=diag(X,k)得到列向量 V,它取自 X 的第 K 个对角
MATLAB程序设计与应用 答案
第1章MATLAB概论1.1与其他计算机语言相比较,MA TLAB语言突出的特点是什么?MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。
1.2 MA TLAB系统由那些部分组成?MATLAB系统主要由开发环境、MA TLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。
1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?在安装MA TLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。
第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。
1.4 MA TLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?在MA TLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。
1.5 如何启动M文件编辑/调试器?在操作桌面上选择‚建立新文件‛或‚打开文件‛操作时,M文件编辑/调试器将被启动。
在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。
1.6 存储在工作空间中的数组能编辑吗?如何操作?存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。
1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途?命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。
MATLAB全部实验及答案
MATLAB全部实验及答案MATLAB全部实验及答案实验一、MATLAB基本操作实验内容及步骤4、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B 与A.*B?A*B就是线代里面的矩阵相乘A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2?(4)设a=[1 -2 3;4 5 -4;5 -6 7]请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全下标的形式),并将其单下标转换成全下标。
clear,clca=[1 -2 3;4 5 -4;5 -6 7];[x,y]=find(a<0);c=[];for i=1:length(x)c(i,1)=a(x(i),y(i));c(i,2)=x(i);c(i,3)=y(i);c(i,4)=(y(i)-1)*size(a,2)+x(i);endc(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那个是虚数矩阵,后面那个出错(6)请写出完成下列计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?a^2= 22 16 1625 26 2326 24 28a.^2=1 4 99 16 425 4 9(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) 转化为列向量(8)使用三元组方法,创建下列稀疏矩阵2 0 8 00 0 0 10 4 0 06 0 0 0方法一:clear,clcdata=[2 8 1 4 6];ir=[1 1 2 3 4 ];jc=[1 3 4 2 1];s=sparse(ir,jc,data,4,4);full(s)方法二:不用三元组法clear,clca=zeros(4,4);a(1,[1,3])=[2,8];a(2,4)=1;a(3,2)=4;a(4,1)=6;a(9)写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B5、已知+?=-334sin 234πt e y t 若需要计算t ∈[-1,1],取间隔为0.01,试计算出相对应的y 值。
MATLAB)课后实验答案-精简版
MATLAB)课后实验答案-精简版实验一 MATLAB 运算基础1. 先求下列表达式的值,然后显示MA TLAB 工作空间的使用情况并保存全部变量。
(1) 0122sin 851z e=+(2) 21ln(2z x =+,其中2120.455i x +??=?-??(3) 0.30.330.3sin(0.3)ln,3.0, 2.9,,2.9,3.022aaee a z a a --+=++=--(4) 2242011122123t t z t t t t t ?≤<?=-≤<??-+≤<?,其中t =0:0.5:2.52. 已知:1234413134787,2033657327A B --??==-??求下列表达式的值:(1) A+6*B 和A-B+I (其中I 为单位矩阵)(3) A^3和A.^3(4) A/B及B\A(5) [A,B]和[A([1,3],:);B^2]3. 设有矩阵A 和B 123453 0166789101769,1112 1314150234 1617181920970212223242541311A B ??-?==-?(1) 求它们的乘积C 。
(2) 将矩阵C 的右下角3×2子矩阵赋给D 。
(3) 查看MA TLAB 工作空间的使用情况。
4. 完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。
(2) 建立一个字符串向量,删除其中的大写字母。
(2). 建立一个字符串向量例如:ch='ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1. 设有分块矩阵33322322E R A O S=?,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R R S A OS +??=。
解: M 文件如下;输出结果:S =1 0 02 A =1.0000 0 0 0.5383 0.4427 0 1.0000 0 0.9961 0.1067 0 0 1.0000 0.0782 0.9619 0 0 0 1.0000 0 0 0 0 02.0000 a =1.0000 0 0 1.0767 1.3280 0 1.0000 0 1.9923 0.3200 0 0 1.0000 0.15642.8857 0 0 0 1.0000 0 0 0 0 0 4.0000 ans =0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0由ans,所以22E R R S A O S +??=?2. 产生5阶希尔伯特矩阵H 和5阶帕斯卡矩阵P ,且求其行列式的值Hh 和Hp 以及它们的条件数Th 和Tp ,判断哪个矩阵性能更好。
MATLAB程序设计与应用课后实验答案
A-B+eye(3)
A*B
A.*B
A^3
A.^3
A/B
B\A
[A,B]
[A([1,3],:);B^2]
运算结果:
A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7];
A+6.*B
A-B+eye(3)
A*B
A.*B
A^3
A.^3
A/B
B\A
0 0 0 0
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
由ans,所以
2. 产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好。为什么?
解:M文件如下:
输出结果:
H =
P =
1 1 1 1 1
Columns 57 through 60
Column 61
z4 =
0 0
2. 已知:
求下列表达式的值:
(1) A+6*B和A-B+I(其中I为单位矩阵)
(2) A*B和A.*B
(3) A^3和A.^3
(4) A/B及B\A
(5) [A,B]和[A([1,3],:);B^2]
解:
M文件:
A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7];
实验四 循环结构程序设计
一、实验目的
1. 掌握利用for语句实现循环结构的方法。
2. 掌握利用while语句实现循环结构的方法。
MATLAB)课后实验答案
A = 1.0000 0 0 0 0 0 1.0000 0 0 0 0 0 1.0000 0 0 0.5383 0.9961 0.0782 1.0000 0 0.4427 0.1067 0.9619 0 2.0000
a = 1.0000 0 0 0 0 0 1.0000 0 0 0 0 0 1.0000 0 0 1.0767 1.9923 0.1564 1.0000 0 1.3280 0.3200 2.8857 0 4.0000
P= 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 1 5 15 35
1
5
15
35Βιβλιοθήκη 70Hh = 3.7493e-012
Hp = 1
Th = 4.7661e+005
Tp = 8.5175e+003 因为它们的条件数 Th>>Tp,所以 pascal 矩阵性能更好。 3. 建立一个 5×5 矩阵,求它的行列式值、迹、秩和范数。 解: M 文件如下:
实验一
MATLAB 运算基础
1. 先求下列表达式的值,然后显示 MATLAB 工作空间的使用情 况并保存全部变量。 (1) z1
2sin 850 1 e2
1 2
1 2i 2 5 0.45
(2) z2 ln( x 1 x 2 ) ,其中 x (3) z3
用 if 语句实现,分别输出 x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0 时的 y 值。 解:M 文件如下:
运算结果有: f(-5) y= 14 >> f(-3)
y= 11 >> f(1) y= 2 >> f(2) y= 1 >> f(2.5) y= -0.2500 >> f(3) y= 5 >> f(5) y= 19
matlab程序设计与应用习题答案
matlab程序设计与应用习题答案Matlab程序设计与应用习题答案Matlab是一种强大的数学软件,被广泛应用于科学计算、数据分析和工程模拟等领域。
无论是学术界还是工业界,Matlab都扮演着重要的角色。
在学习和应用Matlab时,我们常常会遇到一些习题,下面我将为大家提供一些常见习题的解答。
习题一:编写一个Matlab程序,计算一个数列的和。
数列的定义如下:a(1) = 1, a(n) = a(n-1) + 2*n, 其中n大于等于2。
解答一:```matlabfunction sum = calculate_sum(n)a = zeros(1, n);a(1) = 1;for i = 2:na(i) = a(i-1) + 2*i;endsum = sum(a);end```习题二:编写一个Matlab程序,求解一个线性方程组。
方程组的定义如下:2x + 3y + z = 7, 3x - 2y + 2z = 5, x + y - z = 3。
解答二:```matlabfunction [x, y, z] = solve_equations()A = [2, 3, 1; 3, -2, 2; 1, 1, -1];b = [7; 5; 3];solution = A\b;x = solution(1);y = solution(2);z = solution(3);end```习题三:编写一个Matlab程序,实现矩阵的转置操作。
解答三:```matlabfunction transposed_matrix = transpose_matrix(matrix) [m, n] = size(matrix);transposed_matrix = zeros(n, m);for i = 1:mfor j = 1:ntransposed_matrix(j, i) = matrix(i, j);endendend```习题四:编写一个Matlab程序,实现矩阵的相乘操作。
MATLAB全部实验及答案
实验项目序号1 MATLAB基本操作一、实验目的熟悉MATLAB软件环境,掌握命令窗口的使用。
二、实验基本知识1、熟悉MATLAB的桌面工具和环境:2、Start菜单&~三、主要仪器及耗材计算机四、实验内容和步骤1、MATLAB的启动及操作界面认识说明有哪几种启动的方法;操作界面有哪些窗口;对常用的窗口作些简单的介绍。
使用Windows的“开始”菜单。
运行MATLAB系统的启动程序。
{利用桌面上的快捷方式。
MATLAB主窗口命令窗口(Command Window)当前目录窗口(Current Directory)工作空间窗口(Workspace)命令历史窗口(Command History)2、下列符号中哪些是MATLAB的合法变量名用给变量赋值的方法在机器上验证你的答案(3vars、global、help、My_exp、sin、X+Y、_input、E-4、AbCd、AB_C_。
)help,My_exp,sin,AbCd,AB_C_;3、命令窗口的简单使用1)简单矩阵的输入¥1 2 3A = 4 5 67 8 92)求[12+2×(7-4)]÷32的算术运算结果4、有关向量、矩阵或数组的一些运算1)设A=15;B=20;求C=A+B与c=a+b2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*BA*B遵循矩阵运算,A.*B遵循每个对应元素之间进行相乘3)设A=10,B=20;求C=A/B与D=A\B :4)设a=[1 -2 3;4 5 -4;5 -6 7]请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全下标的形式),并将其单下标转换成全下标>> a=[1 -2 3;4 5 -4;5 -6 7];/%定义矩阵>> b = a(find(a<0));%找到a中小于零的元素b =-2-6-4>> c = find(a<0) %找到小于零元素的单下标~c =468>> [x,y] = find(a<0) %找到小于零元素的双下标>> [x,y] = ind2sub(size(a),find(a<0)) %单下标转换为双下标5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何6)请设计出程序完成下列计算:a=[1 2 3;3 4 2;5 2 3],求a^2=,a.^2=解:`>> a=[1 2 3;3 4 2;5 2 3];>> a^2 % 矩阵运算>> a.^2 %数组与矩阵的乘法7)有一段程序设计如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : )解:转化X为列向量8)使用两种方法,创建一稀疏矩阵?解:1)>>a = eye(5); %创建5阶单位矩阵>>sparse(a) %将a构造为稀疏矩阵ans =(1,1) 1(2,2) 1(3,3) 1(4,4) 1(5,5) 12)>> data = [1 2 2 2];]>> ir = [1 3 2 4];>> jc = [1 2 4 1];>> s=sparse(ir,jc,data,4,4)s =(1,1) 1(4,1) 2 (3,2) 2 (2,4) 29)写出下列指令的运行结果%>> A = [ 1 2 3 ]; B = [ 4 5 6 ]; >> C = 3.^A C =3 9 27 >> D = A.^BD =1 32 7295、已知⎪⎭⎫⎝⎛+⋅=-334sin 234πt e y t 若需要计算t ∈[-1,1],取间隔为,试计算出相对应的y 值。
(完整版)MATLAB)课后实验答案[1]
实验一 MATLAB 运算基础1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1) 0122sin 851z e =+(2) 21ln(2z x =,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--L (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.5 解:4. 完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。
(2) 建立一个字符串向量,删除其中的大写字母。
解:(1) 结果:(2). 建立一个字符串向量例如:ch='ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A O S +⎡⎤=⎢⎥⎣⎦。
解: M 文件如下;5. 下面是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦(1) 求方程的解。
(2) 将方程右边向量元素b 3改为0.53再求解,并比较b 3的变化和解的相对变化。
(3) 计算系数矩阵A 的条件数并分析结论。
解: M 文件如下: 123d4e56g9实验三 选择结构程序设计1. 求分段函数的值。
2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。
Matlab实验题目与答案
(温馨提示:实验课结束后,请将所有作业(题目、代码、结果)利用word 整理成一个完整的实验报告,加上封面,打印,纸质档于18周周一交)第一次上机作业目的:1. 掌握MATLAB 各种表达式的书写规则2. 运行课堂上讲过的例子,熟悉矩阵、表达式的基本操作和运算。
作业:1. 熟悉matlab 集成环境界面。
回答以下问题,并操作相关的指令:(1) 分别写出清除命令窗口和清除变量的指令。
答: clc 和clear(2)在命令行输入命令后,matlab 的搜索过程是怎样的?答: (1)检查该命令对象是不是一个变量。
(2)检查该命令对象是不是一个内部函数。
(3)检查该命令对象是否为当前目录下的程序文件。
(4)检查该命令对象是否为MATLAB 搜索路径中其他目录下的M 文件。
(3)什么是matlab 的当前工作目录?写出两种设置当前工作目录的方法? 答: 就是matlab 当前文件读取和存储的默认路径(1)在当前目录窗口中更改(2)在MATLAB 桌面工具栏中更改(3)使用cd 命令:cd c:\mydir---将c :\mydir 设置为当前目录(4)什么是matlab 的搜索路径?写出两种设置搜索路径的方法?答: 指Matlab 运行文件时进行搜索的目录。
(1)用path 命令设置:(2)用Set Path 对话框设置(5)help 命令和doc 命令有什么作用,它们有什么区别?答: help 命令:最基本的帮助命令,查询信息直接显示在命令窗口。
doc 命令:在帮助窗口中显示HTML 帮助文档,显示函数的详细用法及 例子,比help 命令更详细。
2. 在matlab 中输入下列表达式,并求各表达式的值,显示MATLAB 工作空间的使用情况并用两种方式保存全部变量,变量保存的文件名必须包含自己的学号后四位数:(1))1034245.01(26-⨯+⨯=w w=sqrt(2)*(1+0.34245*10^-6)w =1.4142(2),)tan(22ac b e abc c b a x ++-+++=ππ 其中a=3.5,b=5,c=9.8。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五分支结构程序设计
实验内容
(1)从键盘输入一个数,将它反向输出,例如输入693,输出为396 >> clear
>> format long g
s=input('s=')
n=fix(log10(s));
A=0;
for i=1:n
a=fix(s/10^n);
x=fix(mod(s,10^i)/10.^(i-1));
A=A+x*10^(n+1-i);
end
A+a
s=693
s =
693
ans =
396
(2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E
1)分别用if语句和switch语句实现
2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息
If语句
>> a=input('输入成绩')
if a>=90&a<=100 disp('A 成绩合理');
elseif a>=80&a<90 disp('B 成绩合理');
elseif a>=70&a<80 disp('C 成绩合理');
elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理');
else disp('成绩错误')
end
输入成绩98
a =
98
A 成绩合理
>> a=input('输入成绩')
if a>=90&a<=100 disp('A 成绩合理');
elseif a>=80&a<90 disp('B 成绩合理');
elseif a>=70&a<80 disp('C 成绩合理');
elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理');
else disp('成绩错误')
end
输入成绩148
a =
148
成绩错误
switch语句
>> a=input('输入成绩')
switch a;
case num2cell(0:59)
disp('E 成绩合理');
case num2cell(60:69)
disp('D 成绩合理');
case num2cell(70:79)
disp('C 成绩合理');
case num2cell(80:89)
disp('B 成绩合理');
case num2cell(90:100)
disp('A 成绩合理');
otherwise
disp('成绩错误');
end
输入成绩98
a =
98
A 成绩合理
>> a=input('输入成绩')
switch a;
case num2cell(0:59)
disp('E 成绩合理');
case num2cell(60:69)
disp('D 成绩合理');
case num2cell(70:79)
disp('C 成绩合理');
case num2cell(80:89)
disp('B 成绩合理');
case num2cell(90:100)
disp('A 成绩合理');
otherwise
disp('成绩错误');
end
输入成绩148
a =
148
成绩错误
小结实验心得体会
通过本次实验,我逐渐掌握了点if语句和switch语句的使用,了解了分支结构程序设计方法。
因为本次实验较有难度,所以完成的不是很顺利。
在分支结构程序设计方面还有待加强。