MATLAB的数值计算功能Word下载.docx
- 文档编号:18908213
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:37
- 大小:844.16KB
MATLAB的数值计算功能Word下载.docx
《MATLAB的数值计算功能Word下载.docx》由会员分享,可在线阅读,更多相关《MATLAB的数值计算功能Word下载.docx(37页珍藏版)》请在冰豆网上搜索。
pi)'
%长度为101的时间采样列向量<
y1=sin(t)*[1,-1];
%包络线函数值,是(101x2)的矩阵<
2>
y2=sin(t).*sin(9*t);
%长度为101的调制波列向量<
t3=pi*(0:
9)/9;
4>
y3=sin(t3).*sin(9*t3);
plot(t,y1,'
r:
'
t,y2,'
b'
t3,y3,'
bo'
)%<
5>
axis([0,pi,-1,1])%控制轴的范围<
6>
图7.2.1-2
【例】用复数矩阵形式画利萨如(Lissajous)图形。
(在模拟信号时代,Lissajous图形常用来测量信号的频率。
t=linspace(0,2*pi,80)'
%<
X=[cos(t),cos(2*t),cos(3*t)]+i*sin(t)*[1,1,1];
%(80x3)的复数矩阵
plot(X)%<
axissquare%使坐标轴长度相同<
legend('
1'
2'
3'
)%图例
图7.2.1-3Lissajous图
【例】采用模型
画一组椭圆。
th=[0:
2*pi]'
%长度为101的列向量
a=[0.5:
.5:
4.5];
%长度为9的行向量
X=cos(th)*a;
%(101x9)的矩阵
Y=sin(th)*sqrt(25-a.^2);
%(101x9)的矩阵
plot(X,Y),axis('
equal'
),xlabel('
x'
),ylabel('
y'
title('
AsetofEllipses'
图7.2.1-4一组椭圆
【例】观察各种轴控制指令的影响。
演示采用长轴为3.25,短轴为1.15的椭圆。
注意:
采用多子图表现时,图形形状不仅受“控制指令”影响,而且受整个图面“宽高比”及“子图数目”的影响。
t=0:
2*pi/99:
2*pi;
x=1.15*cos(t);
y=3.25*sin(t);
%y为长轴,x为短轴
subplot(2,3,1),plot(x,y),axisnormal,gridon,
NormalandGridon'
subplot(2,3,2),plot(x,y),axisequal,gridon,title('
Equal'
subplot(2,3,3),plot(x,y),axissquare,gridon,title('
Square'
subplot(2,3,4),plot(x,y),axisimage,boxoff,title('
ImageandBoxoff'
subplot(2,3,5),plot(x,y),axisimagefill,boxoff
ImageandFill'
subplot(2,3,6),plot(x,y),axistight,boxoff,title('
Tight'
图7.2.3.1-1各种轴控制指令的不同影响
【例】通过绘制二阶系统阶跃响应,
clf;
t=6*pi*(0:
100)/100;
y=1-exp(-0.3*t).*cos(0.7*t);
tt=t(find(abs(y-1)>
0.05));
ts=max(tt);
%<
subplot(1,2,1),plot(t,y,'
r-'
LineWidth'
3),gridon%<
axis([0,6*pi,0.6,max(y)])%<
y=1–exp(-alpha*t)*cos(omega*t)'
)%<
text(11,1.25,'
alpha=0.3'
);
text(11,1.15,'
omega=0.7'
holdon;
plot(ts,0.95,'
10);
holdoff%<
7>
text(ts+1.5,0.95,['
ts='
num2str(ts)])
xlabel('
t-->
),ylabel('
y-->
)%<
9>
subplot(1,2,2),plot(t,y,'
3)%<
10>
axis([-inf,6*pi,0.6,inf])%<
11>
set(gca,'
Xtick'
[2*pi,4*pi,6*pi],'
Ytick'
[0.95,1,1.05,max(y)])%<
12>
gridon%<
13>
\ity=1-e^{-\alphat}cos{\omegat}'
)%<
14>
text(13.5,1.2,'
\fontsize{12}{\alpha}=0.3'
)%<
15>
text(13.5,1.1,'
\fontsize{12}{\omega}=0.7'
16>
17>
cell_string{1}='
\fontsize{12}\uparrow'
18>
cell_string{2}='
\fontsize{16}\fontname{隶书}镇定时间'
%<
19>
cell_string{3}='
\fontsize{6}'
%<
20>
cell_string{4}=['
\fontsize{14}\rmt_{s}='
num2str(ts)];
21>
text(ts,0.85,cell_string)%<
22>
\fontsize{14}\bft\rightarrow'
23>
ylabel('
\fontsize{14}\bfy\rightarrow'
24>
图7.2.3.2-1二阶阶跃响应图用MATLAB4.x和5.x版标识时的差别
holdon
【例】利用hold绘制离散信号通过零阶保持器后产生的波形。
t=2*pi*(0:
20)/20;
y=cos(t).*exp(-0.4*t);
stem(t,y,'
g'
stairs(t,y,'
r'
holdoff
图7.2.5.1-1离散信号的重构
双纵坐标图plotyy
【例】画出函数
和积分
在区间
上的曲线。
dx=0.1;
x=0:
dx:
4;
y=x.*sin(x);
s=cumtrapz(y)*dx;
%梯形法求累计积分
plotyy(x,y,x,s),text(0.5,0,'
\fontsize{14}\ity=xsinx'
sint='
{\fontsize{16}\int_{\fontsize{8}0}^{x}}'
text(2.5,3.5,['
\fontsize{14}\its='
sint,'
\fontsize{14}\itxsinxdx'
])
图7.2.5.2-1函数和积分
【例】受热压力容器的期望温度是120度,期望压力是0.25Mpa。
在同一张图上画出它们的阶跃响应曲线。
S1=tf([11],[1321]);
%温度的传递函数对象模型。
S2=tf(1,[111]);
%压力的传递函数对象模型。
[Y1,T1]=step(S1);
%计算阶跃响应
[Y2,T2]=step(S2);
plotyy(T1,120*Y1,T2,0.25*Y2,'
stairs'
plot'
图7.2.5.2-2双纵坐标图演示
subplot
【*例7.2.5.3-1】演示subplot指令对图形窗的分割。
t=(pi*(0:
1000)/1000)'
y1=sin(t);
y2=sin(10*t);
y12=sin(t).*sin(10*t);
subplot(2,2,1),plot(t,y1);
axis([0,pi,-1,1])
subplot(2,2,2),plot(t,y2);
subplot('
position'
[0.2,0.05,0.6,0.45])%<
plot(t,y12,'
b-'
t,[y1,-y1],'
axis([0,pi,-1,1])
图7.2.5.3-1多子图的布置
7.1
三维绘图的基本操作
7.1.1三维线图指令plot3
【*例7.3.1-1】简单例题。
0.02:
2)*pi;
x=sin(t);
y=cos(t);
z=cos(2*t);
plot3(x,y,z,'
x,y,z,'
bd'
),view([-82,58]),boxon,legend('
链'
宝石'
图7.3.1-1宝石项链
7.1.1.1网线图、曲面图基本指令格式
【*例7.3.2.2-1】用曲面图表现函数
clf,x=-4:
y=x;
[X,Y]=meshgrid(x,y);
%生成x-y坐标“格点”矩阵
Z=X.^2+Y.^2;
%计算格点上的函数值
surf(X,Y,Z);
holdon,colormap(hot)
stem3(X,Y,Z,'
)%用来表现在格点上计算函数值
图7.3.2.2-1曲面图和格点
7.1.2透视、镂空和裁切
7.1.2.1图形的透视
【*例7.3.3.1-1】透视演示
[X0,Y0,Z0]=sphere(30);
%产生单位球面的三维坐标
X=2*X0;
Y=2*Y0;
Z=2*Z0;
%产生半径为2的球面的三维坐标
clf,surf(X0,Y0,Z0);
%画单位球面
shadinginterp%采用插补明暗处理
holdon,mesh(X,Y,Z),colormap(hot),holdoff%采用hot色图
hiddenoff%产生透视效果
axisequal,axisoff%不显示坐标轴
图7.3.3.1-1剔透玲珑球
7.1.2.2图形的镂空
【*例7.3.3.2-1】演示:
如何利用“非数”NaN,对图形进行剪切处理。
t=linspace(0,2*pi,100);
r=1-exp(-t/2).*cos(4*t);
%旋转母线
[X,Y,Z]=cylinder(r,60);
%产生旋转柱面数据
ii=find(X<
0&
Y<
0);
%确定x-y平面第四象限上的数据下标
Z(ii)=NaN;
%剪切
colormap(spring),shadinginterp
light('
[-3,-1,3],'
style'
local'
)%设置光源
material([0.5,0.4,0.3,10,0.3])%设置表面反射
图7.3.3.2-1剪切四分之一后的图形
【*例7.3.3.2-2】演示:
如何利用“非数”NaN,对图形进行镂空处理。
P=peaks(30);
P(18:
20,9:
15)=NaN;
%镂空
surfc(P);
colormap(summer)
[50,-10,5]),lightingflat
material([0.9,0.9,0.6,15,0.4])
图7.3.3.2-2镂方孔的曲面
7.1.2.3裁切
【*例7.3.3.3-1】表现切面
clf,x=[-8:
0.2:
8];
ZZ=X.^2-Y.^2;
ii=find(abs(X)>
6|abs(Y)>
6);
%确定超出[-6,6]范围的格点下标
ZZ(ii)=zeros(size(ii));
%强制为0
surf(X,Y,ZZ),shadinginterp;
colormap(copper)
[0,-15,1]);
lightingphong
material([0.8,0.8,0.5,10,0.5])
图7.3.3.3-1经裁切处理后的图形
7.2特殊图形和高维可视化
7.2.1特殊图形指令例示
7.2.1.1面域图area
【*例7.4.1.1-1】面域图指令area。
该指令的特点是:
在图上绘制多条曲线时,每条曲线(除第一条外)都是把“前”条曲线作基线,再取值绘制而成。
因此,该指令所画的图形,能醒目地反映各因素对最终结果的贡献份额。
(1)area的第一输入宗量是单调变化的自变量。
第二输入宗量是“各因素”的函数值矩阵,且每个“因素”的数据取列向量形式排放。
第三输入宗量是绘图的基准线值,只能取标量。
当基准值为0(即以x轴为基准线)时,第三输入宗量可以缺省。
(2)本例第<
条指令书写格式x'
Y'
,强调沿列方向画各条曲线的事实。
x=-2:
2%注意:
自变量要单调变化
Y=[3,5,2,4,1;
3,4,5,2,1;
5,4,3,2,5]%各因素的相对贡献份额
Cum_Sum=cumsum(Y)%各曲线在图上的绝对坐标
area(x'
Y'
0)%<
因素A'
因素B'
因素C'
),gridon,colormap(spring)
x=
-2-1012
Y=
35241
34521
54325
Cum_Sum=
69762
11131087
图7.4.1.1-1面域图表现各分量的贡献
7.2.1.2各种直方图bar,barh,bar3,bar3h
【*例7.4.1.2-1】二维直方图有两种图型:
垂直直方图和水平直方图。
而每种图型又有两种表现模式:
累计式:
分组式。
本例选其两种加以表现。
2;
%注意:
5,4,3,2,5];
%各因素的相对贡献份额
subplot(1,2,1),bar(x'
stacked'
)%“累计式”直方图
\Sigmay'
),colormap(cool)%控制直方图的用色
subplot(1,2,2),barh(x'
grouped'
)%“分组式”水平直方图
图7.4.1.2-1二维直方图
【*例7.4.1.2-2】用三维直方图表现上例数据。
%注意:
subplot(1,2,1),bar3(x'
1)%“队列式”直方图
因素ABC'
),zlabel('
colormap(summer)%控制直方图的用色
subplot(1,2,2),bar3h(x'
)%“分组式”水平直方图
图7.4.1.2-2三维直方图
7.2.1.3饼图pie,pie3
【*例7.4.1.3-1】饼图指令pie,pie3用来表示各元素占总和的百分数。
该指令第二输入宗量为与第一宗量同长的0-1向量,1使对应扇块突出。
a=[1,1.6,1.2,0.8,2.1];
subplot(1,2,1),pie(a,[10100]),legend({'
4'
5'
})
subplot(1,2,2),pie3(a,a==min(a)),colormap(cool)
图7.4.1.3-1饼形统计图
7.2.1.4填色图fill,fill3
【*例7.4.1.4-1】读者试验本例时,注意三点:
MATLAB画任意多边形的一种方法;
保证绘图数据首尾重合,使勾画多边形封闭;
使用图柄对图形的属性进行精细设置。
n=10;
%多边形的边数
dt=2*pi/n;
dt:
2*pi
t=[t,t
(1)];
%fill指令要求数据向量的首位重合,使图形封闭。
fill(x,y,'
c'
axisoff%画填色多边形,隐去坐标轴。
ht=text(0,0,'
\fontname{隶书}\fontsize{32}十边形'
%文字注释,且得图柄。
set(ht,'
Color'
k'
HorizontalAlignment'
Center'
)%依靠图柄设置属性。
图7.4.1.4-1由fiil产生的填色多边形
【例7.4.1.4-2】三维填色指令fill3演示。
(1)X,Y,Z的相应列元素构成一个三维封闭多边形。
本例有4列,因此有4个多边形。
图7.4.1.4-2中的“1,2,3,4”号三角形分别由X,Y,Z的第1,2,3,4列生成。
(2)为使多边形封闭,每列的首尾元素应该重合。
若不重合,则将默认把最后一点与第一点相连,强行使多边形封闭。
(3)该指令的第4输入宗量可取定色单字符(如'
'
等),也可取与X同维的数值矩阵。
(4)所填色彩受C和色图的双重响应。
(5)本例图中三角形的编号是通过“图形窗”编辑而生成的。
X=[0.50.50.50.5;
0.50.50.50.5;
0110];
Y=[0.50.50.50.5;
0011];
Z=[1111;
0000;
0000];
C=[1001;
0101;
0010];
fill3(X,Y,Z,C),view([-1055]),colormapcool
),boxon;
gridon
图7.4.1.4-2三维填色
7.2.1.5射线图compass和羽毛图feather
【*例7.4.1.5-1】compass和feather指令的区别。
t=-pi/2:
pi/12:
pi/2;
%在
区间,每
取一点。
r=ones(size(t));
%单位半径
[x,y]=pol2cart(t,r);
%极坐标转化为直角坐标
subplot(1,2,1),compass(x,y),title('
Compass'
subplot(1,2,2),feather(x,y),title('
Feather'
图7.4.1.5-1compass和feather指令的区别
7.2.1.6Voronoi图和三角剖分
【*例7.4.1.6-1】用Voronoi多边形勾画每个点的最近邻范围。
Voronoi多边形在计算几何、模式识别中有重要应用。
从本例图7.4.1.6-1中,可以看到,三角形顶点所在多边形的三条公共边是剖分三角形边的垂直平分线。
rand('
state'
111)
n=30;
A=rand(n,1)-0.5;
B=rand(n,1)-0.5;
%产生30个随机点
T=delaunay(A,B);
%求相邻三点组
T=[TT(:
1)];
%为使三点剖分三角形封闭而采取的措施
voronoi(A,B)%画Voronoi图
axissquare
fill(A(T(10,:
)),B(T(10,:
)),'
%画一个剖分三角形
voronoi(A,B)%重画Voronoi图,避免线被覆盖。
图7.4.1.6-1Voronoi多边形和Delaubay三角剖分
7.2.1.7彩带图ribbon
【*例7.4.1.7-1】用彩带绘图指令ribbon,绘制归化二阶系统
在不同
值时的阶跃响应,如图7.4.1.7-1所示。
对于本例程序,有以下几点值得注意:
(1)程序中使用了ControlToolbox中的两个指令tf和step。
这tf是一个(MATLAB5.x版起用的)“对象”。
(2)本例构作的S是一个单输入8输出系统,作用于该S的step指令也将在一次调用中产生8个子系统的阶跃响应。
(3)在下段程序运行后,有兴趣的读者可显示S,以观察系统是如何描写的。
(4)本例为了得到较好的表现效果,采用了视角、明暗、色图、光照控制。
(5)为使程序有一定通用性,图例采用元胞数组生成。
(6)本例产生的图7.4.1.7-1中,除“
”外,所有标识都是由下段指令产生的。
(7)“
”中的斜向箭头无
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 数值 计算 功能