【原创】MATLAB实验报告-第二次-用MATLAB实现计算数据可视化-北京交通大学
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB上机实验报告(2)
实验容:
一、试用如下几种方法来建立向量,观察结果
(1)x=1:5, x=(1:5)’
实验结果:x=1:5 是行向量,x=(1:5)’是列向量.且1为初始值,5为终止值,默认的步长为1.
>> x=1:5
x =
1 2 3 4 5
>> x=(1:5)'
x =
1
2
3
4
5
(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:pi
x =
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 0.2000 0.4000 0.6000
0.8000
1.0000 1.2000 1.4000 1.6000
1.8000
2.0000 2.2000 2.4000 2.6000
2.8000
3.0000 y =
0.1627
0.2610
0.3099
0.3223
0.3096
0.2807
0.2430
0.2018
0.1610
0.1231
0.0896
0.0613
0.0383
0.0204
0.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.*y
z =
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\y
x =
1.0000 4.0000
1.0000 4.0000
1.0000 4.0000
1.0000 4.0000
1.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];
>> ~P
ans =
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&P
ans =
1 0 0 >> C|P
ans =
1 0 0 >> (C-1)&P
ans =
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,1
1x y f x x x x ⎧⎪⎪⎨⎪⎪⎩
≤>==-<-
实验结果:
>> x=input('请输入x 的值:');
if x>1
y= 1;
elseif -1<=x<=1
y=x;
else
y=-1;
end
y
请输入x 的值:7
y =
1
八、分别用for 和while 循环语句编写程序,求出
2633630K 212222i i ==+
=++++∑
实验结果:
for 循环语句:
>> y=0;
>> n=63;
>> for i=0:1:63
y=y+2.^i;
end
>> y
y =
1.8447e+019
while循环语句:
>> y=0;
>> i=0;
>> while i<=63
y=y+2.^i
i=i+1
end
>> y
y =
1.8447e+019
九、用对分法求解超越方程
=+
cos(/4)
lnx xπ
实验结果:
>> x1=0;x2=pi;
for I = 1: 32
y1 =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;end
if y*y2>0,x2=x;end
end
>> x
x =
0.8957
实验感想:
本次实验是我做的第二次MATALB实验,相对于上一次实验来说,难度大了不少.因为之前课上讲的容没有经过实践,基本都忘得差不多了,做实验时又需要重新复习.但是这次实验的容对于我们其他课程的学习都十分有帮助.并且本次实验中需要使用的if-else,for,while等语句都和C语言语句类似,对于有一定C语言基础的我来说,还算比较熟悉,能较熟练地应用.相信这门课程一定会对我的学习有很大帮助,我会努力学习并熟练掌握MATLAB的使用的.
. . . 老师!。