matlab实验四.docx
《matlab实验四.docx》由会员分享,可在线阅读,更多相关《matlab实验四.docx(23页珍藏版)》请在冰豆网上搜索。
![matlab实验四.docx](https://file1.bdocx.com/fileroot1/2022-11/29/6429f349-fb34-4d67-84af-20b228dd0199/6429f349-fb34-4d67-84af-20b228dd01991.gif)
matlab实验四
实验四 曲线绘图
【实验目的】
1.了解曲线的几种表示方法。
2.学习掌握MATLAB软件有关的命令。
【实验内容】
绘制下列三种曲线:
1.以直角坐标方程
表示的正、余弦线。
t=0:
0.1:
10;
y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'b--');
x=[1.7*pi;1.6*pi];
y=[-0.3;0.8];
s=['sin(t)';'cos(t)'];
text(x,y,s);
title('正弦和余弦曲线');
legend('正弦','余弦')
xlabel('时间t'),ylabel('正弦、余弦')
grid
axissquare
2.以参数方程
表示的平面曲线(单位圆)。
>>t=0:
0.1:
2*pi;
>>x=cos(t);
>>y=sin(t);
>>plot(x,y)
>>title('x=cos(t),y=sin(t)');
>>axissquare
3.以参数方程
表示的空间曲线。
>>t=0:
0.1:
20;
>>x=exp(-0.2*t).*cos(pi/2*t);
>>y=pi/2*exp(-0.2*t).*sin(t);
>>z=t;
>>plot3(x,y,z);
>>xlabel('x轴')
>>ylabel('y轴')
>>zlabel('z轴')
>>title('x=exp(-0.2*t)*cos(pi/2*t),y=pi/2*exp(-0.2*t)*sin(t),z=t,
t∈[0:
20]')
4.以极坐标方程
表示的心脏线。
>>theta=0:
0.1:
2*pi;
>>polar(theta,1-cos(theta))
>>title(‘r=a(1+cosθ),θ∈[0,2π]’)
或者
>>clear;
>>t=0:
2*pi/40:
2*pi;
>>r=1+cos(t);
>>x=r.*cos(t);y=r.*sin(t);
>>plot(x,y)
>>axissquare
【实验准备】
1.平面、空间曲线的表示形式
对于平面曲线,常见的有三种表示形式,即以直角坐标方程
,以参数方程
,和以极坐标
表示等三种形式。
而对于空间曲线,常见的是用参数方程
表示。
2.曲线绘图的MATLAB命令
MATLAB中主要用plot,fplot,plot3三种命令绘制不同的曲线。
plot(x,y)作出以数据(x(i),y(i))为节点的折线图,其中x,y为同维数的向量。
plot(x1,y1,x2,y2,…) 作出多组数据折线图
fplot(‘fun’,[a,b]) 作出函数fun在区间[a,b]上的函数图。
plot3(x,y,z) 空间曲线图,其中x,y,z为同维数的向量。
可以用helpplot,helpfplot,helpplot3查阅有关这些命令的详细信息
【实验方法与步骤】
练习1作出函数
的图形,并观测它们的周期性。
先作函数
在
上的图形,用MATLAB作图的程序代码为:
>>x=linspace(-4*pi,4*pi,300);%产生300维向量x
>>y=sin(x);
>>plot(x,y)%二维图形绘图命令
结果如图4.1,上述语句中%后面如“%产生300维向量x”是说明性语句,无需键入。
图4.1
的图形
此图也可用fplot命令,相应的MATLAB程序代码为:
>>clear;close;%clear清理内存;close关闭已有窗口。
>>fplot('sin(x)',[-4*pi,4*pi])
结果如图4.2.
图1.2
的图形
如果在同一坐标系下作出两条曲线
和
在
上的图形,相应的MATLAB程序代码为:
>>x=-2*pi:
2*pi/30:
2*pi;%产生向量x
>>y1=sin(x);y2=cos(x);
>>plot(x,y1,x,y2,’:
’)%’:
’表示绘出的图形是点线
结果如图4.3其中实线是
的图形,点线是
的图形。
图4.3
的图形
练习2设
,要求以0.01秒为间隔,求出y的151个点,绘出y及其导数的图形。
相应的MATLAB程序代码为:
>>dt=0.01;%设定时间间隔
>>t=0:
0.01:
1.5;%设定自变量t
>>w=4*sqrt(3);%固定频率
>>y=sqrt(3)/2*exp(-4*t).*sin(w*t+pi/3);%注意用数组运算式
>>subplot(2,1,1),plot(t,y),grid%绘制曲线并加上坐标网格
>>title('绘图示例'),xlabel('时间t'),ylabel('y(t)')%加标注
%求导数并绘制导数曲线,注意数组求导后长度减少1
>>fori=1:
length(t)-1
>>t1(i)=t(i);
>>end
>>Dy=diff(y)/dt;subplot(2,1,2),plot(t1,Dy),grid,
>>ylabel('Dy(t)')%加标注
曲线图形见下图,两次用diff函数或用diff(y,2),除以两次dt,可以求y的二次导数,读者可以自行实践。
为了节省篇幅,没有显示y的数据。
图4.4练习2的曲线
练习3作出以参数方程
表示的平面曲线(单位圆),相应的MATLAB程序代码为:
>>clear;close;
>>t=0:
2*pi/30:
2*pi;
>>x=cos(t);y=sin(t);
>>plot(x,y)
结果如图4.5
图4.5单位圆
练习4作出摆线的图形。
当圆轮在平面上滚动时,其圆面上任意一点所画出的轨迹称为摆线。
如果这一点不在圆周上而在圆内,则生成内摆线;如果该点在圆外,离圆心距离大于半径,则生成外摆线。
后一种情况,可想象成火车轮,其接触轨道的部分并不是其直径最大处,而内侧的直径还要大一些,以防止车轮左右出轨,在这部分边缘的点就画出外摆线。
概括几种情况,设r为圆轮半径,R为点半径,其普遍方程可表示为
可由这组以t为参数的方程分析其轨迹。
相应的MATLAB程序代码为:
>>t=0:
0.1:
10;
>>r=input('r='),
>>R=input('R='),
>>x=r*t-R*sin(t);
>>y=r-R*cos(t);
>>holdon;
>>plot(x,y),axis('equal')
图形见图4.6,其中最上面的是外摆线,中间是摆线,最下面的是内摆线。
图4.6摆线
练习5作出以参数方程表示的空间曲线
相应的MATLAB程序代码为:
>>clear;close;
>>t=0:
0.01:
20;
>>x=exp(-0.2*t).*cos(0.5*pi*t);
>>y=exp(-0.2*t).*sin(0.5*pi*t);
>>z=t;plot3(x,y,z)
>>title('Spaceline');%标题命令
>>text(x
(1),y
(1),z
(1),'Start');%在(x
(1),y
(1),z
(1))处加字符串'Start'
>>n=length(x);text(x(n),y(n),z(n),'End');
>>xlabel('X');ylabel('Y');zlabel('Z');%说明坐标轴标记
>>legend('Coneline');%图例说明
>>gridon;%girdon/gridoff为显示/不显示格栅命令
结果如图4.7
图4.7空间曲线
练习6作出以极坐标方程
表示的心脏线
相应的MATLAB程序代码为:
>>clear;close;
>>t=0:
2*pi/30:
2*pi;
>>r=1+cos(t);
>>x=r.*cos(t);y=r.*sin(t);%极坐标转化为直角坐标
>>plot(x,y)
结果如图4.8
图4.8心脏线
练习7以绘制极坐标系下曲线
,并讨论参数
的影响。
相应的MATLAB程序代码为:
>>theta=0:
0.1:
2*pi;%产生极角向量
>>fori=1:
2
>>a(i)=input('a=');b(i)=input('b=');n(i)=input('n=');
>>rho(i,:
)=a(i)*cos(b(i)+n(i)*theta);%极坐标方程
>>subplot(1,2,i),polar(theta,rho(i,:
));%极坐标系绘图
>>end
运行并输入不同参数的结果见图4.9.
a=2,b=pi/4,n=2(4叶玫瑰线)
a=2,b=0,n=3(3叶玫瑰线)
图4.9玫瑰线
练习8(曲线族绘制)三次抛物线的方程为
,试探讨参数a和c对其图形的影响。
相应的MATLAB程序代码为:
>>x=-2:
0.1:
2;%给出x数组,确定范围及取点密度
>>subplot(1,2,1)%分两个画面绘图
>>forc=-3:
3plot(x,x.^3+c*x),holdon,end,grid%a=1,取不同的c
>>axis('equal'),axis([-22-33])%x,y坐标等比例并确定其范围
>>subplot(1,2,2),
>>fora=-3:
3plot(x,a*x.^3+x),holdon,end,grid%c=1,取不同的a
>>axis('equal'),axis([-22-33])
%用gtext命令在图内注字符
运行结果见图4.10.其中a和c均从-3取到3,步长为1
图4.10抛物线
【练习与思考】
画出下列常见曲线的图形。
以直角坐标方程表示的曲线:
1.立方曲线
>>x=-2:
0.1:
2;
>>y=x.^3;
>>plot(x,y)
>>xlabel(‘X’)
>>ylabel(‘Y’)
>>gridon
>>title(y=x^3)
2.立方抛物线
>>plot(y,x)
3.高斯曲线
以参数方程表示的曲线
>>x=-2:
0.1:
2;
>>t=-x.^2;
>>y=exp(t);
>>plot(x,y)
4.奈尔抛物线
t=-2:
0.1:
2;
>>x=t.^3;
>>y=t.^2;
>>plot(x,y)
5.半立方抛物线
6.迪卡尔曲线
>>symst
>>x=3*t/(1+t.^2);
>>y=3*t.^2/(1+t.^2);
>>ezplot(x,y)
7.蔓叶线
>>symst
>>x=t.^2/(1+t.^2);
>>y=t.^3/(1+t.^2);
>>ezplot(x,y)
8.摆线
>>x=t-sin(t);
>>y=1-cos(t);
>>plot(x,y)
9.内摆线(星形线)
>>symst
>>x=sin(t^3);
>>y=cos(t^3);
>>ezplot(x,y)
10.圆的渐伸线(渐开线)
>>x=sin(t)+t.*cos(t);
>>y=cos(t)+t.*sin(t);
>>plot(x,y)
11.空间螺线
以极坐标方程表示的曲线:
>>t=-2*pi:
0.1:
2*pi;
>>plot3(cos(t),2*sin(t),3*t)
12.阿基米德线
>>theta=0:
0.1:
2*pi;
>>a=1;
>>r=a*theta;
>>plor(theta,r)
a=5时
13.对数螺线
theta=0:
0.1:
2*pi;
a=1;
r=exp(a*theta);
semilogx(theta,r)
14.双纽线
>>t=0:
0.1:
2*pi;
>>x=cos(t).*sqrt(cos(2*t));
>>y=sin(t).*sqrt(cos(2*t));
>>plot(x,y)
15.双纽线
>>t=0:
0.1:
2*pi;
>>x=cos(t).*sqrt(sin(2*t));
>>y=sin(t).*sqrt(sin(2*t));
>>plot(x,y)
16.四叶玫瑰线
>>t=0:
0.1:
2*pi;
>>x=cos(t).*sin(2*t);
>>y=sin(t).*sin(2*t);
>>plot(x,y)
>>
17.三叶玫瑰线
>>t=0:
0.1:
2*pi;
>>x=cos(t).*sin(3*t);
>>y=sin(t).*sin(3*t);
>>plot(x,y)
18.三叶玫瑰线
>>t=0:
0.1:
2*pi;
>>x=cos(t).*cos(3*t);
>>y=sin(t).*cos(3*t);
>>plot(x,y)