数学实验复习1doc.docx
《数学实验复习1doc.docx》由会员分享,可在线阅读,更多相关《数学实验复习1doc.docx(32页珍藏版)》请在冰点文库上搜索。
数学实验复习1doc
⏹矩阵的加减:
对应分量进行运算Matlab绘图
⏹>>x=0:
pi/10:
2*pi;>>y=sin(x);>>plot(x,y);
⏹平面绘图命令的基本形式:
plot(x,y)
⏹x,y都是向量,则以x中元素为横坐标,y中元素为纵坐标作平面曲线。
此时x,y必须具有相同长度
⏹x,y都是矩阵,则将x的列和y中相应的列相组合,绘制多条平面曲线。
此时x,y必须具有相同的大小。
⏹x是向量,y是矩阵,若x的长度与y的行数相等,则将x与y中的各列相对应,绘制多条平面曲线;否则,若x的长度与y的列数相等,则将x与y中的各行相对应,绘制多条平面曲线。
此时x的长度必须等于y的行数或列数。
⏹y=cos(x)在[0,4]上的图像
>>x=0:
pi/10:
4*pi;>>y=cos(x);>>plot(x,y);
●plot(y):
绘制向量y的线性图
●以下标为横坐标,元素值为纵坐标,等价于x=[1:
length(y)];plot(x,y);y=[0,0.4,0.8,1.0,0.9,6.1];>>plot(y);
❑点和线的基本属性
❑plot(x,y,string)
其中string是用单引号括起来的字符串,用来指定图形的属性(点、线的形状和颜色)
>>x=[0:
0.2:
2*pi];>>plot(x,cos(x));>>plot(x,cos(x),’r+:
’);
>>plot(x,cos(x),’bd-.’);>>plot(x,cos(x),’k*-’);
⏹点和线的基本属性
-实线
:
虚线
-.点划线
--间断线
空白
.点
o小圆圈
x叉子符
+加号
*星号
s方格
d菱形
^朝上三角
v朝下三角
>朝右三角
<朝左三角
p五角星
h六角星
y黄色
m棕色
c青色
r红色
g绿色
b蓝色
w白色
k黑色
添加标题title('text')
x=0:
pi/10:
4*pi;
>>y=cos(x);>>plot(x,y);
>>title(’y=cos(x)的图像’);可以指定文本的属性
title('text','Property1',value1,'Property2',value2,...)
Property:
linewidth,markersize,fontsize,
fontweight,fontname,…
添加坐标轴标注
xlabel('text')ylabel('text')
x=0:
pi/10:
4*pi;>>y=cos(x);plot(x,y);>>title('y=cos(x)的图像');
>>xlabel('x轴');>>ylabel('y轴');
❑在同一个绘图窗口绘制多个图像plot(x1,y1,s1,x2,y2,s2,...,xn,yn,sn)
⏹等价于:
holdonplot(x1,y1,s1)plot(x2,y2,s2)...plot(xn,yn,sn)
❑添加图例legend(string1,string2,...)x=0:
pi/10:
4*pi;>>y1=cos(x);
>>y2=sin(x);>>plot(x,y1,x,y2);>>legend('cos(x)','sin(x)');
❑在任何指定的地方添加文本text(x,y,string)
x=0:
pi/10:
4*pi;>>y=cos(x);>>plot(x,y);>>text(pi/2,cos(pi/2),...
'\leftarrowy=cos(x)');xlable,ylabel,text也可以指定文本的属性
❑划分绘图窗口subplot(m,n,p)
将一个绘图窗口分割成mn个子区域,并按行从左至右依次编号,p表示第p个绘图子区域。
x=-pi:
pi/10:
pi;>>subplot(2,2,1);plot(x,sin(x));>>subplot(2,2,2);plot(x,cos(x));
>>subplot(2,2,3);plot(x,x.^2);>>subplot(2,2,4);plot(x,exp(x));
❑线条的粗细,字体大小,坐标轴属性等
x=-pi:
pi/10:
pi;>>y=sin(x);>>plot(x,y,'rh:
','linewidth',2,...
'markeredgecolor','b',...'markerfacecolor','g')
linewidth:
指定线条的粗细markeredgecolor:
指定标记的边缘色
markerfacecolor:
指定标记表面的颜色
注:
1)属性与属性的值是成对出现的2)更多属性参见plot的联机帮助
●显示网格gridon/gridoff
●保留当前绘图窗口中的图像holdon/holdoff
●新建绘图窗口/选取绘图窗口figure(n)
●关闭绘图窗口close/closeall
❑三维曲线绘图命令:
plot3plot3(x,y,z)
三维螺旋线t=0:
pi/10:
10*pi;
>>x=sin(t);>>y=cos(t);>>z=2*t;>>plot3(x,y,z);
plot3的用法与plot类似
⏹三维曲面
mesh(X,Y,Z)绘制由矩阵X,Y,Z所确定的曲面网格图
[X,Y]=meshgrid(-3:
1/8:
3);>>Z=peaks(X,Y);>>mesh(X,Y,Z);
❑网格生成函数[X,Y]=meshgrid(x,y)
若x=y,则可简写为:
[X,Y]=meshgrid(x)
⏹墨西哥帽子:
由函数z=sin(r)/r确定的曲面,其中
(–a[X,Y]=meshgrid([-8:
0.5:
8]);x=-8:
0.5:
8;
>>y=-8:
0.5:
8;>>[X,Y]=meshgrid(x,y);>>r=sqrt(X.^2+Y.^2)+eps;>>Z=sin(r)./r;
>>mesh(X,Y,Z)
1)x与y可以取不同的步长2)注意这里采用的数组运算
❑绘制带等高线的空间曲面meshc调用方式与mesh相同,在mesh基础上增加等高线
❑绘制屏蔽边界面的空间曲面meshz调用方式与mesh相同,在mesh基础上屏蔽边界面
带等高线的曲面meshc
[X,Y]=meshgrid(-8:
0.5:
8);
>>r=sqrt(X.^2+Y.^2)+eps;>>Z=sin(r)./r;>>meshc(X,Y,Z)
带屏蔽面的曲面meshz
[X,Y]=meshgrid(-8:
0.5:
8);
>>r=sqrt(X.^2+Y.^2)+eps;>>Z=sin(r)./r;>>meshz(X,Y,Z)
◆显式方程:
x=a:
hx:
b;y=c:
hy:
d;
>>[X,Y]=meshgrid(x,y);>>Z=z(X,Y);>>mesh(X,Y,Z)
⏹参数方程:
u=a:
hu:
b;v=c:
hv:
d;>>[U,V]=meshgrid(u,v);>>X=x(U,V);Y=y(U,V);Z=z(U,V);
>>mesh(X,Y,Z)
❑空间曲面其它作图命令surf(X,Y,Z)绘制由矩阵X,Y,Z所确定的曲面图,参数含义同mesh
mesh绘制网格图,surf绘制表面着色的曲面图
◆sphere(n)专用于绘制单位球面[X,Y,Z]=sphere(n)sphere只能画单位球面!
⏹surf作图举例
[X,Y]=meshgrid(-8:
0.5:
8);>>r=sqrt(X.^2+Y.^2)+eps;>>Z=sin(r)./r;>>surf(X,Y,Z)
⏹坐标轴控制坐标轴控制命令:
axisaxis([xmin,xmax,ymin,ymax,zmin,zmax])
作用:
指定坐标轴的显示范围
axisauto自动模式,使得图形的坐标满足图中的一切元素
axisequal各坐标轴采用等长刻度axissquare使绘图区域为正方形
axison/off恢复/取消对坐标轴的一切设置axismanual以当前的坐标限制图形的绘制(多图时)
……更多参见axis的联机帮助
⏹图像的着色方案colormap:
设置绘图的着色方案colormap([rgb])或colormap(s)
◆r,g,b都是0~1之间的一个数
◆s为字符串,表示所采用的色系,常用的值有
颜色映象
相应的颜色系
颜色映象
相应的颜色系
autumn
红黄色系
hsv
色调饱和色系
gray
线性灰色系
hot
黑红黄白色系
cool
青和洋红色系
pink
柔和色系
⏹二维曲线绘图命名:
ezplotezplot(f(x),[a,b])
⏹绘制y=f(x)在区域a⏹ezplot(f(x,y),[a,b,c,d])
绘制f(x,y)=0在区域a绘制x=x(t),y=y(t)在区域a❑二维曲线绘图命名:
ezplotezplot(f(x))
绘制y=f(x)在区域-2绘制f(x,y)=0在区域-2绘制x=x(t),y=y(t)在区域0⏹>>ezplot('sin(x)');
⏹ezplot('sin(x)',...
[-pi,pi]);
⏹空间曲线绘图:
ezplot3
ezplot3(x(t),y(t),z(t),[a,b])绘制空间曲线:
x=x(t),y=y(t),z=z(t),aezplot3(x(t),y(t),z(t))
绘制空间曲线:
x=x(t),y=y(t),z=z(t),0符号作图时要注意使用单引号!
空间曲面绘图:
ezmesh、ezsurfezmesh(z(x,y),[a,b,c,d])
ezsurf的用法与ezmesh相同
◆ezmesh(z(x,y),[a,b])
◆ezmesh(z(x,y),[a,b])
⏹Matlab作图基本二维曲线作图过程
⏹点线:
先画点,后连线
y=sin(x),0一、画点x=0:
pi/5:
2*pi;>>y=sin(x);>>plot(x,y,'.')
三、加密:
取更多的点x=[0:
pi/20:
2*pi];>>y=sin(x);>>plot(x,y,'.')
⏹三维曲线作图过程
⏹绘制三维螺线:
(0t=[0:
0.5:
20];>>x=t;>>y=sin(t);>>z=cos(t);>>plot3(x,y,z,’.’)
t=[0:
0.5:
20];>>x=t;>>y=sin(t);>>z=cos(t);>>plot3(x,y,z,’.-’)
t=[0:
0.1:
20];>>x=t;>>y=sin(t);>>z=cos(t);>>plot3(x,y,z,’.-’)
t=[0:
0.1:
20];>>x=t;>>y=sin(t);>>z=cos(t);>>plot3(x,y,z)
⏹三维曲面作图填充图
⏹例:
用函数patch绘制填充图利用二维绘图函数patch和fill,我们可绘制填充图。
例:
用函数patch绘制填充图
fplot('humps',[0,2],'b')holdonpatch([0.50.5:
0.02:
11],[0humps(0.5:
0.02:
1)0],'r');
holdofftitle('Aregionunderaninterestingfunction.')grid
利用二维绘图函数patch和fill,我们可绘制填充图。
例:
用函数fill绘制填充图
x=0:
pi/60:
2*pi;y=sin(x);x1=0:
pi/60:
1;y1=sin(x1);plot(x,y,'r');holdonfill([x11],[y10],'g')
填充图
closet=(1:
2:
15)*pi/8;
x=sin(t);y=cos(t);fill(x,y,'r');axissquareaxisoff
text(0,0,'STOP','color',[111],'fontsize',50,'horizontalalignment','center')
⏹条形图(BarGraphs)特别适用于少量且离散的资料。
欲画出垂直长条图,可用bar指令。
例1:
bar01.mx=[13452];bar(x);
⏹bar指令也可接受矩阵输入,它会将同一横列的数据聚集在一起。
⏹例2:
bar02.mx=[23457;12321];bar(x);
⏹bar及barh指令还有一项特异功能,就是可以将同一横列的数据以堆栈(Stack)方式来显示。
⏹例3:
bar03.mx=[23457;12321];bar(x,'stack')
⏹除了平面条形图之外,MATLAB亦可使用bar3指令来画出立体长条图。
⏹例4:
bar04.mx=[23457;12321];bar3(x)
⏹bar3指令还可以使用群组(Group)方式来呈现条形图
⏹例5:
bar05.mx=[23457;12321];bar3(x,'group')
⏹条形图的指令和类别:
垂直条形图
水平条形图
平面
bar
barh
立体
bar3
bar3h
⏹若要指定条形图的x坐标,可使用两个输入向量给bar指令。
假设张掖的月平均温度如下:
⏹例6:
bar06.m
x=1:
6;%月份y=35*rand(1,6);%温度值(假设是介于0~35的随机数)
bar(x,y);xlabel('月份');%x轴的说明文字
ylabel('平均温度(^{o}c)');%y轴的说明文字
%下列指令将x轴的数字改成月数set(gca,'xticklabel',{'一月','二月','三月','四月','五月','六月'});
⏹面积图(AreaGraphs)和以堆栈方式呈现的长条图很类似,特别适用于具有迭加关系的数据。
举例来说,若要显示清华大学在过去10年来的人数(含大学部,研究生,及教职员)变化情况,可用面积图显示。
⏹例7:
area01.m
y=rand(10,3)*100;x=1:
10;area(x,y);xlabel('Year');ylabel('Count')
⏹使用pie指令,可画出平面扇形图(PieCharts),并可加上说明。
⏹例8:
pie01.mx=[2354];label={'东','南','西','北'};pie(x,label);
⏹pie指令直接将x元素视为面积百分比,因此可画出不完全的扇形图。
⏹例9:
pie02.mx=[0.21,0.14,0.38];pie(x);
⏹pie指令还有一特异功能,可将某个或数个扇形图向外拖出,以强调部份资料。
⏹例10:
pie03.mx=[2354];explode=[1100];pie(x,explode);
⏹欲画出立体扇形图,可用pie3指令。
例11:
pie301.m
x=[2354];explode=[1100];label={‘春耕’,‘夏耘’,‘秋收’,‘冬藏'};
pie3(x,explode,label);
⏹顾名思义,针头图(StemPlots)就是以一个大头针来表示某一点数据,其指令为stem。
⏹例12:
stem01.m
t=0:
0.2:
4*pi;y=cos(t).*exp(-t/5);stem(t,y)
⏹针头图特别适用于表示「数字讯号处理」(DSP,DigitalSignalProcessing)中的数字讯号。
若要画出实心的针头图,可加“fill”选项。
⏹例13:
stem02.m
t=0:
0.2:
4*pi;y=cos(t).*exp(-t/5);stem(t,y,'fill');
⏹欲画出立体的针头图,
可用stem3指令。
⏹例14:
stem301.m
theta=-pi:
0.05:
pi;
x=cos(theta);y=sin(theta);z=abs(cos(3*theta)).*exp(-abs(theta/3));stem3(x,y,z);
⏹使用stairs指令,可画出阶梯图(StairstepPlots),其精神和针头图很相近,只是将目前资料点的高度向右水平画至下一点为止。
(在数字讯号处理,此种作法称为Zero-orderHold。
)
⏹例15:
stairs01.m
t=0:
0.4:
4*pi;y=cos(t).*exp(-t/5);stairs(t,y);
⏹若再加上针头图,则可见两者相似之处。
⏹例16:
stairs02.m
t=0:
0.4:
4*pi;y=cos(t).*exp(-t/5);stairs(t,y);
holdon%保留旧图形stem(t,y);%迭上针头图
holdoff
⏹MATLAB指令fill将数据点视为多边形顶点,并将此多边形涂上颜色,呈现出实心图(FilledPlots)的结果。
⏹例17:
fill01.m
t=0:
0.4:
4*pi;y=sin(t).*exp(-t/5);
fill(t,y,'b');%'b'为蓝色
⏹若与stem合用,则可创造出一些不同的视觉效果。
⏹例18:
fill02.m
t=0:
0.4:
4*pi;y=sin(t).*exp(-t/5);
fill(t,y,'y');%'y'为黄色holdon%保留旧图形
stem(t,y,'b');%迭上蓝色针头图holdoff
⏹fill3可用于三维的实心图。
⏹例19:
fill301.m
X=[0011];Y=[0110];Z=[0110];C=[00.30.60.9]';fill3(X,Y,Z,C);
⏹使用fill3指令,我们亦可以画出各种酷酷的图形。
⏹范例20:
fill302.m
t=(1/16:
1/8:
1)'*2*pi;x=sin(t);y=cos(t);c=linspace(0,1,length(t));
fill3(x,y/sqrt
(2),y/sqrt
(2),c,x/sqrt
(2),y,x/sqrt
(2),c);
axistight
⏹使用quiver指令可画出平面上的向量场图(QuiverPlots),特别适用于表示分布于平面的向量场(VectorFields),
例如平面上的电场分布,或是流速分布。
⏹范例21:
quiver01.m
[x,y,z]=peaks(20);[u,v]=gradient(z);contour(x,y,z,10);
holdon,quiver(x,y,u,v);holdoffaxisimage
⏹欲画出空间中的向量场图,可用quiver3指令。
⏹范例22:
quiver301.m
[x,y]=meshgrid(-2:
0.2:
2,-1:
0.1:
1);z=x.*exp(-x.^2-y.^2);
[u,v,w]=surfnorm(x,y,z);quiver3(x,y,z,u,v,w);
holdon,surf(x,y,z);holdoffaxisequal
⏹我们可用contour指令来画出「等高线图」(ContourPlots)。
⏹范例23:
contour01.m
z=peaks;contour(z,30);%画出30条等高线
⏹若要画出特定高度的等高线,可执行如下:
⏹范例24:
contour02.m
z=peaks;contour(z,[025]);
⏹欲标明等高线的高度,可用clabel指令。
⏹范例25:
contour03.m
z=peaks;[c,handle]=contour(z,10);clabel(c,handle);
⏹若欲在等高线之间填入颜色,可用contourf指令。
⏹范例26:
contour04.m
z=peaks;contourf(z);
⏹若要使画出的等高线对应至正确的x及y坐标,则可执行如下:
⏹范例27:
contour05.m
[x,y,z]=peaks;contour(x,y,z);%使用三个输入
⏹等高线图
⏹contourf亦可接受x、y、z输入自变量。
若要将等高线画在曲面的正下方,可用surfc或meshc指令。
⏹范例28:
contour06.m
[x,y,z]=peaks;meshc(x,y,z);axistight
⏹若要画出三度空间中的等高线,可用c