【原创】MATLAB实验报告-第二次-用MATLAB实现计算数据可视化-北京交通大学

  • 格式:doc
  • 大小:58.50 KB
  • 文档页数:17

MATLAB上机实验报告(2)实验内容:一、试用如下几种方法来建立向量,观察结果(1)x=1:5, x=(1:5)’实验结果: x=1:5 是行向量,x=(1:5)’是列向量.且1为初始值,5为终止值,默认的步长为1.>> x=1:5x =1 2 3 4 5>> x=(1:5)'x =12345(2)x=0:pi/4:pi实验结果: x=0:pi/4:pi指的是x=(0,0.25*pi,0.50*pi,0.75*pi,pi).其中pi为圆周率,初始值为0,终止值为pi,步长为pi/4.>> x=0:pi/4:pix =0 0.7854 1.5708 2.3562 3.1416 (3)x=(0:0.2:3)’, y=exp(-x).*sin(x)实验结果: x的初始值为0,终止值为3,步长为0.2.而函数y表示将x向量中的每一个数代入函数y=e^(-x)*sin(x)得到的函数值组成的向量.>> x=(0:0.2:3)', y=exp(-x).*sin(x)x =0.20000.40000.60000.80001.00001.20001.40001.60001.80002.00002.20002.40002.60002.80003.0000 y =0.16270.26100.30990.32230.30960.28070.24300.20180.16100.12310.08960.06130.03830.02040.0070(4)k=linspace(-pi,pi,5), k=logspace(-3,-1,5)实验结果:k=linspace(-pi,pi,5),产生的是初始值为-pi,终止值为pi,元素总数为5的行向量,即k的步长为pi/2. k=logspace(-3,-1,5)产生的是初始值为10^(-3),终止值为10^(-1),元素总数为5的列向量.其中第n个元素为10^(-3+0.5*n).>> k=linspace(-pi,pi,5), k=logspace(-3,-1,5)k =-3.1416 -1.5708 0 1.5708 3.1416 k =0.0010 0.0032 0.0100 0.0316 0.1000二、已知x=[1 2 3],y=[4 5 6],试计算z=x.*y, x.\y和x./y。

实验结果:直接输入x,y,用分号结束每一行的语句,最后求z.>> x=1:3;>> y=4:6;>> z=x.*yz =4 10 18 >> z=x.\y z =4.0000 2.5000 2.0000 >> z=x./y z =0.2500 0.4000 0.5000三、 解线性方程576512496710872341366810933614457910435140123451560=X ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦实验结果:假设方程为z*x=y.输入矩阵y,z,则x=z\y.>> y=[24,96;34,136;36,144;35,140;15,60];>> z=[5,7,6,5,1;7,10,8,7,2;6,8,10,9,3;5,7,9,10,4;1:5];>> x=z\yx =1.0000 4.00001.0000 4.00001.0000 4.00001.0000 4.00001.0000 4.0000四、求顶点是A(2,5,6),B(11,3,8),C(5,1,11)的三角形各边的长。

实验结果:输入点A,B,C的坐标,定义向量AB,BC,CA,用norm()计算向量的模,即边长.>> A=[2,5,6];>> B=[11,3,8];>> C=[5,1,11]; >> AB=B-A;>> BC=C-B;>> CA=A-C;>> LAB=norm(AB) LAB =9.4340>> LBC=norm(BC) LBC =7>> LCA=norm(CA) LCA =7.0711五、进行如下逻辑运算,观察结果。

(1)P=[1 0 0], ~P, P|(~P), P&(~P)实验结果:~P为非P,即若P中元素为0,则~P中对应元素为1;若若P中元素为1,则~P中对应元素为0.|为或,即若P与~P中对应元素中至少一个为1,则其或为1;若两元素均为0,则其或为0.&为与,即若即若P与~P中对应元素均为1,则其与为1;否则其与为0.>> P=[1 0 0];>> ~Pans =0 1 1>> P|(~P)ans =1 1 1>> P&(~P)ans =0 0 0(2)C=rem(P,2), C&P, C|P, (C-1)&P实验结果:C=rem(P,2)意为P中的每一个元素对2求余数,若余数为0,则C 中对应元素为1;若余数不为0,则C中对应元素为0.则C=(1,0,0).则C&P=(1,0,0);C|P=(1,0,0).(C-1)为C中的所有元素均-1,若结果为负数,则输出为0.所以C-1=(0,0,0).则(C-1)&P=(0,0,0).>> C=rem(P,2);>> C&Pans =1 0 0>> C|Pans =1 0 0>> (C-1)&Pans =0 0 0(3)any(P), all(P), all(P|(~P))实验结果:any(P)意为若P中有至少一个元素不为0,则输出1;若P中全为0,则输出0.所以any(P)=1.all(P)意为若P中所有元素非零,输出1;反之输出0. 所以all(P)=0.P=(1,0,0),~P=(0,1,1),P|(~P)=(1,1,1).则all(P|(~P))=1.>> any(P)ans =1>> all(P)ans =>> all(P|(~P))ans =1六、进行如下关系运算,观察结果。

(1)y=[4 2 1 5 3 0 6]; i=find(y>3.0)实验结果:find表示寻找逻辑值的向量元素下标,在此题中,y向量中的元素大于3的有4,5,6,它们的下标分别是1,4,7.所i=(1,4,7).>> y=[4 2 1 5 3 0 6];>> i=find(y>3.0)i =1 4 7(2)t=1/0; t==NaN, isnan(t)实验结果:定义t=1/0,将t与NaN比较,若t为NaN值,即非数值时返回1,若t 不为NaN值,即为数值值时返回0.则isnan(t)=0.>> t=1/0;>> t==NaN;>> isnan(t)ans =七、用MATLAB 语言实现下面的分段函数 1,1(),1,11x y f x x x x ⎧⎪⎪⎨⎪⎪⎩≤>==-<-实验结果:>> x=input('请输入x 的值:');if x>1y= 1;elseif -1<=x<=1y=x;elsey=-1;endy请输入x 的值:7y =1八、分别用for 和while 循环语句编写程序,求出2633630K 212222i i ==+=++++∑实验结果:for 循环语句:>> y=0;>> n=63;>> for i=0:1:63y=y+2.^i;end>> yy =1.8447e+019while 循环语句:>> y=0;>> i=0;>> while i<=63y=y+2.^ii=i+1end>> yy =1.8447e+019九、用对分法求解超越方程=+cos(/4)lnx xπ实验结果:>> x1=0;x2=pi;for I = 1: 32y1 =log(x1)-cos(x1+pi/4);y2 =log(x2)-cos(x2+pi/4);x = 0.5*(x1+x2);y =log(x)-cos(x+pi/4);if y*y1>0,x1=x;endif y*y2>0,x2=x;endend>> xx =0.8957实验感想:本次实验是我做的第二次MATALB实验,相对于上一次实验来说,难度大了不少.因为之前课上讲的内容没有经过实践,基本都忘得差不多了,做实验时又需要重新复习.但是这次实验的内容对于我们其他课程的学习都十分有帮助.并且本次实验中需要使用的if-else,for,while等语句都和C语言语句类似,对于有一定C语言基础的我来说,还算比较熟悉,能较熟练地应用.相信这门课程一定会对我的学习有很大帮助,我会努力学习并熟练掌握MATLAB的使用的.谢谢老师!。