matlab答案第五章
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章
1.绘制下列曲线。
(1)2
1100
x
y += (2)22
21x e y -=π (3)12
2
=+y x (4)⎩
⎨⎧==3
2
5t y t x 答:
(1) x=-10:0.1:10; y=100./(1+x.^2); plot(x,y)
(2) x=-10:0.1:10;
y=1/(2*pi)*exp(-x.^2/2); plot(x,y)
(3) ezplot('x^2+y^2=1')
(4)
t=-10:0.1:10; x=t.^2; y=5*t.^3; plot(x,y)
2. 绘制下列三维图形。
(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的球面(提示:用sphere 函数
答: (1)
t=0:pi/100:2*pi; x=cos(t); y=sin(t); z=t;
plot3(x,y,z)
(2)
u=0:pi/100:2*pi;
v=0:pi/100:2*pi;
x=(1+cos(u)).*cos(v);
y=(1+cos(u)).*sin(v);
z=sin(u);
plot3(x,y,z)
(3)
[x,y]=meshgrid(-100:100); z=5*ones(size(x));
mesh(x,y,z)
(4)
[x,y,z] = sphere; %等价于sphere(20) 20是画出来的球面的经纬分面数...20的话就是20个经度, 20个纬度,或者说“就是划出20╳20面的单位球体,把球的表面分成400个小网格” surf(x,y,z); %绘制单位球面 x = 10*x; y = 10*y; z = 10*z;
surf(x,y,z); %绘制半径为10的球面 axis equal
3.在同一图形窗口中采用子图形式分别绘制正方形、圆、三角形和六边形。 答:
n=[3 4 6 2^10] for i=1:4
subplot(2,2,i)
theta=linspace(pi/n(i),2*pi+pi/n(i),n(i)+1); plot(cos(theta),sin(theta)); axis equal; end
4. 分别用plot 和fplot 绘制下列分段函数的曲线。
⎪⎩⎪⎨⎧<--+=>+++=0,510,00,51)(342x x x x x x x x f
答:
plot 函数: 方法一:
x=linspace(-10,10,200); y=[]; for x0=x if x0>0
y=[y,x0.^2+(1+x0).^(1/4)+5]; elseif x0==0 y=[y,0]; elseif x0<0
y=[y,x0.^3+sqrt(1-x0)-5]; end end
plot(x,y)
方法二:
x=linspace(-10,10,200);
y=(x<0).*(x.^3+sqrt(1-x)-5)+(x==0).*0+(x>0).*(x.^2+(1+x).^(1/4)+5); plot(x,y)
用fplot函数:
fplot('(x<0).*(x.^3+sqrt(1-x)-5)+(x==0).*0+(x>0).*(x.^2+(1+x).^(1/4)+ 5)',[-10,10])
5. 在同一坐标轴中绘制下列两条曲线并标注两曲线的交叉点。 (1)5.02-=x y
(2)⎪⎩
⎪
⎨
⎧=≤≤=t t y t t t x sin )3sin(0cos )3sin(π 答: 相邻两点x1、x2 曲线(1)相应的y 值为y11、y12, 曲线(2)y 相应的y 值y21、y22, 若(y11-y21)与(y12-y22)符号相反或等于0,则x1或x2就是一个交叉点。 方法一:
t=linspace(0,pi,300); x=sin(3*t).*cos(t); y1=2*x-0.5;
y2=sin(3*t).*sin(t); len=length(t); p=y1-y2;
x3=x((find(p(1:len-1).*p(2:len)<=0)));
y3=2*x3-0.5;
plot(x,y1,x,y2,x3,y3,'rd')
方法二:用循环 %t=0:0.01:pi;
t=linspace(0,pi,100); x=sin(3*t).*cos(t); y1=2*x-0.5;
y2=sin(3*t).*sin(t); plot(x,y1,x,y2);grid; delta_y=y1-y2;
% figure;stem(delta_y); j=1;
for i=1:length(t)-1
if delta_y(i)*delta_y(i+1)<=0 position(j)=i+1; j=j+1; end end
hold on;
plot(x(position),y1(position),'r o');
title('两条曲线相交'); xlabel('x');ylabel('y'); h = legend('y1','y2');