第5章--MATLAB绘图-习题答案上课讲义
- 格式:doc
- 大小:52.50 KB
- 文档页数:6
第5章习题与答案5.1用矩阵三角分解方法解方程组123123123214453186920x x x x x x x x x +-=⎧⎪-+=⎨⎪+-=⎩ 解答:>>A=[2 1 -1;4 -1 3;6 9 -1] A =2 1 -1 4 -13 6 9 -1 >>b=[14 18 20]; b =14 18 20 >> [L, U, P]=lu(A) L =1.0000 0 0 0.6667 1.0000 0 0.3333 0.2857 1.0000 U =6.0000 9.0000 -1.0000 0 -7.0000 3.6667 0 0 -1.7143 P =0 0 1 0 1 0 1 0 0 >> y=backsub(L,P*b’) y =20.0000 4.6667 6.0000 >> x=backsub(U,y) x =6.5000 -2.5000 -3.5000 5.2 Cholesky 分解方法解方程组123121332352233127x x x x x x x ++=⎧⎪+=⎨⎪+=⎩ 解答:>> A=[3 2 3;2 2 0;3 0 12] A =3 2 32 2 03 0 12>> b=[5;3;7]b =537>> L=chol(A)L =1.7321 1.1547 1.73210 0.8165 -2.44950 0 1.7321>> y=backsub(L,b)y =-11.6871 15.7986 4.0415>> x=backsub(L',y)x =-6.7475 28.8917 49.93995.3解答:观察数据点图形>> x=0:0.5:2.5x =0 0.5000 1.0000 1.5000 2.0000 2.5000 >> y=[2.0 1.1 0.9 0.6 0.4 0.3]y =2.0000 1.1000 0.9000 0.6000 0.4000 0.3000 >> plot(x,y)图5.1 离散点分布示意图从图5.1观察数据点分布,用二次曲线拟合。
MATLAB教程2012a第5章习题解答-张志涌第5章 数据和函数的可视化习题5及解答1 椭圆的长、短轴2,4==b a ,用“小红点线〞画椭圆⎩⎨⎧==tb y ta x sin cos 。
〔参见图p5-1〕〖解答〗 clf a=4;b=2;t=0:pi/80:2*pi; x=a*cos(t); y=b*sin(t);plot(x,y,'r.','MarkerSize',15) axis equal xlabel('x') ylabel('y')shg-4-3-2-101234-3-2-1123xy2 根据表达式θρcos 1-=绘制如图p5-2的心脏线。
〔提示:采用极坐标绘线指令polar 〕〖解答〗 clftheta=0:pi/50:2*pi;rho=1-cos(theta);h=polar(theta,rho,'-r');%极坐标绘线指令。
h 是所画线的图柄。
set(h,'LineWidth',4) %利用set 设置h 图形对象的“线宽〞axis square %保证坐标的圆整性0.51 1.523021060240902701203001503301800ρ=1-cos θ3 A,B,C 三个城市上半年每个月的国民生产总值如见表p5.1。
试画出如图p5-3所示的三城市上半年每月生产总值的累计直方图。
表p5.1 各城市生产总值数据〔单位:亿元〕城市 1月 2月 3月 4月 5月 6月 A 170 120 180 200 190 220 B 120 100 110 180 170 180 C 70508010095120〖目的〗● 借助MATLAB 的帮助系统,学习直方图指令polar 的使用。
● bar 指令常用格式之一:bar(x,Y,'style') 。
x 是自变量列向量;Y 是与x 行数相同的矩阵,Y 的每一行被作为“一组〞数据;style 取stacked 时,同一组数据中每个元素对应的直方条被相互层叠。
编译原理-第5章-习题与答案2第五章习题5-1 设有文法G[S]:S→A/ A→aA∣AS∣/(1) 找出部分符号序偶间的简单优先关系。
(2) 验证G[S]不是简单优先文法。
5-2 对于算符文法G[S]:S→E E→E-T∣T T→T*F∣F F→-P∣P P→(E)∣i(1) 找出部分终结符号序偶间的算符优先关系。
(2) 验证G[S]不是算符优先文法。
5-3 设有文法G′[E]:E→E1 E1→E1+T1|T1 T1→T T→T*F|F F→(E)|i其相应的简单优先矩阵如题图5-3所示,试给出对符号串(i+i)进行简单优先分析的过程。
题图5-3 文法G′[E]的简单优先矩阵5-4 设有文法G[E]:E→E+T|TT→T*F|FF→(E)|i其相应的算符优先矩阵如题图5-4所示。
试给出对符号串(i+i)进行算符优先分析的过程。
题图5-4 文法G[E]的算符优先矩阵5-5 对于下列的文法,试分别构造识别其全部可归前缀的DFA和LR(0)分析表,并判断哪些是LR(0)文法。
(1) S→aSb∣aSc∣ab(2) S→aSSb∣aSSS∣c(3) S→A A→Ab∣a5-6 下列文法是否是SLR(1)文法?若是,构造相应的SLR(1)分析表,若不是,则阐明其理由。
(1) S→Sab∣bR R→S∣a(2) S→aSAB∣BA A→aA∣B B→b(3) S→aA∣bB A→cAd∣ε B→cBdd∣ε5-7 对如下的文法分别构造LR(0)及SLR(1)分析表,并比较两者的异同。
S→cAd∣b A→ASc∣a5-8 对于文法G[S]:S→A A→BA∣ε B→aB∣b(1) 构造LR(1)分析表;(2) 给出用LR(1)分析表对输入符号串abab的分析过程。
5-9 对于如下的文法,构造LR(1)项目集族,并判断它们是否为LR(1)文法。
(1) S→A A→AB∣ε B→aB∣b(2) S→aSa∣a第5章习题答案25-1 解:(1) 由文法的产生式和如答案图5-1(a)所示的句型A//a/的语法树,可得G中的部分优先关系如答案图5-1(b)所示。
第5章MATLAB绘图习题5一、选择题1.如果x、y均为4×3矩阵,则执行plot(x,y)命令后在图形窗口中绘制()条曲线。
DA.12B.7C.4D.32.下列程序的运行结果是()。
Ax=0:pi/100:2*pi;forn=1:2:10plot(n*sin(x),n*cos(x))holdonendaxissquareA.5个同心圆B.5根平行线C.一根正弦曲线和一根余弦曲线D.5根正弦曲线和5根余弦曲线3.命令text(1,1,'{\alpha}+{\beta}')执行后,得到的标注效果是()。
C A.{\alpha}+{\beta}B.αβ}C.α+βD.αβ4.subplot(2,2,3)是指()的子图。
AA.两行两列的左下图B.两行两列的右下图C.两行两列的左上图D.两行两列的右上图x的曲线绘制成直线,应采用的绘图函数是()。
C5.要使函数y=2eA.polarB.semilogxC.semilogyD.loglog6.下列程序的运行结果是()。
B[x,y]=meshgrid(1:5);surf(x,y,5*ones(size(x)));A.z=x+y平面B.与xy平面平行的平面C.与xy平面垂直的平面D.z=5x平面7.下列函数中不能用于隐函数绘图的是()。
DA.ezmeshB.ezsurfC.ezplotD.plot38.下列程序运行后,看到的图形()。
Ct=0:pi/20:2*pi;[x,y]=meshgrid(-8:0.5:8);z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);surf(x,y,z)view(0,90);axisequalA.像墨西哥帽子B.是空心的圆C.边界是正方形D.是实心的圆9.下列程序运行后得到的图形是()。
A[x,y]=meshgrid(-2:2);z=x+y;i=find(abs(x)<1&abs(y)<1);z(i)=NaN;surf(x,y,z);shadinginterpA.在一个正方形的正中心挖掉了一个小的正方形B.在一个正方形的正中心挖掉了一个小的长方形C.在一个正方形的上端挖掉了一个小的正方形D.在一个正方形的下端挖掉了一个小的正方形10.在使用MATLAB“绘图”选项卡中的命令按钮绘图之前,需要()。
matlab绘图参考答案matlab绘图参考答案Matlab是一种强大的数学软件,被广泛应用于科学计算、数据分析和绘图等领域。
在进行数据可视化时,Matlab提供了丰富的绘图函数和工具,可以轻松地创建各种类型的图表。
本文将介绍一些常见的Matlab绘图函数和技巧,帮助读者更好地掌握绘图的基本方法和应用。
一、折线图折线图是最常见的一种图表类型,用于显示数据随时间或其他变量的变化趋势。
在Matlab中,可以使用plot函数来绘制折线图。
例如,下面的代码演示了如何绘制一条简单的折线图:```matlabx = 1:10;y = [1 2 3 4 5 4 3 2 1 2];plot(x, y);```上述代码中,x是自变量,表示时间或其他变量的取值范围,y是因变量,表示对应时间或变量的取值。
plot函数将x和y作为输入参数,绘制出对应的折线图。
二、散点图散点图用于显示两个变量之间的关系,通常用于探索变量之间的相关性。
在Matlab中,可以使用scatter函数来绘制散点图。
例如,下面的代码演示了如何绘制一组随机生成的散点图:x = rand(1, 100);y = rand(1, 100);scatter(x, y);```上述代码中,x和y分别是两个变量的取值,scatter函数将x和y作为输入参数,绘制出对应的散点图。
三、柱状图柱状图用于比较不同类别或组之间的数据差异。
在Matlab中,可以使用bar函数来绘制柱状图。
例如,下面的代码演示了如何绘制一组随机生成的柱状图:```matlabx = 1:5;y = rand(1, 5);bar(x, y);```上述代码中,x是表示不同类别或组的标签,y是对应类别或组的数据。
bar函数将x和y作为输入参数,绘制出对应的柱状图。
四、饼图饼图用于显示不同类别或组占总体的比例关系。
在Matlab中,可以使用pie函数来绘制饼图。
例如,下面的代码演示了如何绘制一组随机生成的饼图:```matlabx = rand(1, 5);```上述代码中,x是表示不同类别或组的比例,pie函数将x作为输入参数,绘制出对应的饼图。
5.3 试用中点Bresenham 算法画直线段的原理推导斜率在[-1,0]之间的直线段绘制过程(要求写清原理、误差函数、递推公式以及最终画图过程)。
解:原理:每次在最大位移方向上走一步,而另一个方向是走步还是不走步取决于误差项的判别。
∵斜率k 在[-1,0]之间∴x 为最大位移方向,每次在x 加1,而y 或减1或减0。
设直线段的方程F(x,y)=y-kx-b ,假设当前点是P(x i ,y i ),则下一点在P u (x i +1,y i )与P d (x i +1,y i -1)中选一。
设M 为P u 和P d 的中点,则M 点的坐标为(x i +1,y i -0.5)。
构造误差判别式:d i =F(x M ,y M )=F(x i +1,y i -0.5)=y i -0.5-k(x i +1)-b若d i ≥0,取P d (x i +1,y i -1);若d i <0,取P u (x i +1,y i );即有x i+1=x i +1,y i+1=y i -1(d i ≥0)或y i (d i <0)。
误差函数的递推:d i ≥0时,取P d (x i +1,y i -1),再判断下一像素取哪个时,应计算d i+1=F(x i +2,y i -1.5)= y i -1.5-k(x i +2)-b=d i -1-k ,增量为-1-k 。
d i <0时,取P u (x i +1,y i ),再判断下一像素取哪个时,应计算(x 0,yd i+1=F(x i+2,y i-0.5)= y i-0.5-k(x i+2)-b=d i-k,增量为-k。
判别式的初值:从(x0,y0)点出发,下一个像素的选取计算d0=F(x0+1,y0-0.5)= y0-0.5-k(x0+1)-b=-0.5-k取的是误差判别式的符号,因此可进行如下变换:D=d*2∆x∆x=x1-x0,根据选取的起点和绘制方向,∆x>0,因此,D与d同号。
第5章--M A T L A B绘图-习题答案
第5章 MATLAB绘图
习题5
一、选择题
1.如果x、y均为4×3矩阵,则执行plot(x,y)命令后在图形窗口中绘制()条曲线。
D
A.12 B.7 C.4 D.3
2.下列程序的运行结果是()。
A
x=0:pi/100:2*pi;
for n=1:2:10
plot(n*sin(x),n*cos(x))
hold on
end
axis square
A.5个同心圆 B.5根平行线
C.一根正弦曲线和一根余弦曲线 D.5根正弦曲线和5根余弦曲线
3.命令text(1,1,'{\alpha}+{\beta}')执行后,得到的标注效果是()。
C A.{\alpha}+{\beta} B.{\α}+{\β} C.α+β D.\α+\β
4.subplot(2,2,3)是指()的子图。
A
A.两行两列的左下图 B.两行两列的右下图
C.两行两列的左上图 D.两行两列的右上图
5.要使函数y=2e x的曲线绘制成直线,应采用的绘图函数是()。
C
A.polar B.semilogx C.semilogy D.loglog
6.下列程序的运行结果是()。
B
[x,y]=meshgrid(1:5);
surf(x,y,5*ones(size(x)));
A.z=x+y平面 B.与xy平面平行的平面
C.与xy平面垂直的平面 D.z=5x平面
7.下列函数中不能用于隐函数绘图的是()。
D
A.ezmesh B.ezsurf C.ezplot D.plot3
8.下列程序运行后,看到的图形()。
C
t=0:pi/20:2*pi;
[x,y]=meshgrid(-8:0.5:8);
z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);
surf(x,y,z)
view(0,90);axis equal
A.像墨西哥帽子 B.是空心的圆
C.边界是正方形 D.是实心的圆
9.下列程序运行后得到的图形是()。
A
[x,y]=meshgrid(-2:2);
z=x+y;
i=find(abs(x)<1 & abs(y)<1);
z(i)=NaN;
surf(x,y,z);shading interp
A.在一个正方形的正中心挖掉了一个小的正方形
B.在一个正方形的正中心挖掉了一个小的长方形
C.在一个正方形的上端挖掉了一个小的正方形
D.在一个正方形的下端挖掉了一个小的正方形
10.在使用MATLAB“绘图”选项卡中的命令按钮绘图之前,需要()。
B
A.在命令行窗口中输入绘图命令 B.在工作区中选择绘图变量
C.打开绘图窗口 D.建立M文件
二、填空题
1.执行以下命令:
x=0:pi/20:pi;
y=sin(x);
以x为横坐标、y为纵坐标的曲线图绘制命令为,给该图形加上“正弦波”标题的命令为,给该图形的横坐标标注为“时间”,纵坐标标注为“幅度”的命令分别为和。
plot(x,y),title(‘正弦波’),xlabel(‘时间’),ylabel(‘幅度’)
2.在同一图形窗口中绘制y1和y2两条曲线,并对图形坐标轴进行控制,请补充程序。
x=-3:0.1:3;
y1=2*x+5;
y2=x.^2-3*x;
plot(x,y1) %绘制曲线y1
① ;
plot(x,y2) %绘制曲线y2
m1=max([y1,y2]);
m2=min([y1,y2]);
② ; %用axis 调制坐标轴,横坐标在[-3,3]之间,纵坐标在[-5,20]之间
①hold on ②axis([-3,3,-5,20])
3.下列命令执行后得到的图形是 。
(单位)圆
x=@(t) sin(t);
y=@(t) cos(t);
ezplot(x,y)
4.某工厂2015年度各季度产值分别为450.6、395.9、410.2、450.9,为了表示各季度产值占全年总产值的比例,可以绘制 ,其命令是 。
饼图,pie([450.6,395.9,410.2,450.9]) 或pie3([450.6,395.9,410.2,450.9])
三、应用题
1.绘制下列曲线。
(1)21100x y += (2)22
21x e y -=π (3)12
2=+y x (4)⎩⎨⎧==32
5t y t x (1)
x=-1:1/180:1;
y=100./(1+x.^2);
plot(x,y)
(2)
x=-1:1/180:1;
y=1/(2*pi).*exp(-x.^2./2);
plot(x,y)
(3)
ezplot('x^2+y^2-1=0')
(4)
ezplot('t^2','5*t^3',[-0.5,0.5])
2.分别用plot 和fplot 函数绘制函数x y 1sin
=的曲线,分析两曲线的差别。
3.绘制下列极坐标图。
(1)4cos 5+=θρ (2)θρ12=
(3)7cos 5-=θρ (4)23
θπρ=
(1)
theta=0:0.01:2*pi;
rho=5.*cos(theta)+4;
polar(theta,rho)
(2)
theta=0.1:0.1:2*pi;
rho=12./(sqrt(theta));
polar(theta,rho,'r')
(3)
theta=0:pi/90:2*pi;
t=cos(theta);
a=find(t<0.1);
t(a)=0.01;
rho=5./t-7;
polar(t,rho)
(4)
theta=0:pi/90:2*pi;
rho=pi/3.*(theta.^2);
polar(theta,rho)
4.在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点。
(1)y=2x-0.5
(2)π≤≤⎩⎨⎧==t 0,sin )3
sin(cos )3sin(t t y t t x t=0:0.01:2*pi;
x=sin(3*t).*cos(t);
y=sin(3*t).*sin(t);
plot(x,y);
hold on;
x=-1:0.01:1;
y=2*x-0.5;
plot(x,y);
hold off
5.绘制下列三维图形。
(1)⎪⎩
⎪⎨⎧===t z t y t x sin cos (2)⎪⎩⎪⎨⎧=+=+=u z v u y v u x sin sin )cos 1(cos )cos 1(
(3)5=z (4)半径为10的球面
(1)
t=0:pi/180:2*pi;
x=cos(t);
y=sin(t);
z=t;
plot3(x,y,z)
(2)
u=0:pi/50:2*pi;
v=0:pi/50:2*pi;
ezsurf('(1+cos(u))*cos(v)','(1+cos(u))*sin(v)','sin(u)')
(4) 为什么用不了ezplot3('x^2+y^2+z^2-
100')???????????
u=0:pi/50:2*pi;
v=0:pi/50:2*pi;
ezsurf('cos(u)*cos(v)','cos(u)*sin(v)','sin(u)')。