《matlab答案第五章》由會(huì)員分享,可在線閱讀,更多相關(guān)《matlab答案第五章(7頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、第五章
1.繪制下列曲線。
(1) (2)
(3) (4)
答:
(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) (2)
(3) (4)半徑為10的球面(提示:用sphere函數(shù)
答:
2、(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; %等價(jià)于sphere(20) 20是畫出來的球面的經(jīng)緯分
3、面數(shù)...20的話就是20個(gè)經(jīng)度, 20個(gè)緯度,或者說“就是劃出20╳20面的單位球體,把球的表面分成400個(gè)小網(wǎng)格”
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);
4、plot(cos(theta),sin(theta));
axis equal;
end
4. 分別用plot和fplot繪制下列分段函數(shù)的曲線。
答:
plot函數(shù):
方法一:
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
5、);
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函數(shù):
fplot((x<0).*(x.^3+sqrt(1-x)-5)+(x==0).*0+(x>0).*(x.^2+(1+x).^(1/4)+5),[-10,10])
5. 在同一坐標(biāo)軸中繪制下列兩條曲線并標(biāo)注兩曲線的交叉點(diǎn)。
(1)
(2)
答: 相鄰兩點(diǎn)x1、x2 曲線(1)相應(yīng)的y值為y11、y12, 曲線(2)y相應(yīng)的y值y21、y22, 若(y11-y21)與(y12-y22)符
6、號(hào)相反或等于0,則x1或x2就是一個(gè)交叉點(diǎn)。
方法一:
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)
方法二:用循環(huán)
%t=0:0.01:pi;
t=linspace(0,pi,100);
x=sin(3*t).*cos(t);
y1=2*x-0.5;
y2
7、=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),ro);
title(兩條曲線相交);
xlabel(x);ylabel(y);
h = legend(y1,y2);