matlab 例题

  • Post author:
  • Post category:其他


这个题我先用的两个参数画的两个图形,但是我真不会用相同的参数把交线表示出来,问了问老师最后是暴力跑一遍点画的

r=linspace(0,1,100);
t=0:pi/50:2*pi;
[R T]=meshgrid(r,t);
x=R.*cos(T);
y=R.*sin(T);
z=sqrt((1-x.*x - y.*y)+eps);
mesh(x,y,z);
axis equal
hold on;
z1=R;
x1=cos(T).^2;
y1=sin(T).*cos(T);
mesh(x1,y1,z1);
shading flat
[x y]=meshgrid(-1:.002:1);
z=sqrt((1-x.*x - y.*y)+eps);
for i=1:1:1000
    for j=1:1:1000
        if((1-x(i,j).*x(i,j) - y(i,j).*y(i,j))>=0)
            if(abs(x(i,j)*x(i,j)+y(i,j)*y(i,j)-x(i,j))<=1e-3)
                plot3(x(i,j),y(i,j),sqrt((1-x(i,j).*x(i,j) - y(i,j).*y(i,j))),'b*');
            end
        end
        end
end

修改一下以上做法,实在是有点傻,把T带进去表示出来就完了,我怎么就想不起来呢,一直纠结那个R了

r=linspace(0,1,100);  
t=0:pi/50:2*pi;  
[R T]=meshgrid(r,t);  
x=R.*cos(T);  
y=R.*sin(T);  
z=sqrt((1-x.*x - y.*y)+eps);  
mesh(x,y,z);  
axis equal  
hold on;  
z1=R;  
x1=cos(T).^2;  
y1=sin(T).*cos(T);  
mesh(x1,y1,z1);  
shading flat  
x=cos(T).*cos(T);
y=cos(T).*sin(T);
z=(1-x).^0.5;
plot3(x,y,z,'bh','linewidth',5);



1.

t=0:pi/50:4*pi;
x=exp(t./3).*cos(10.*t);
y=exp(t./3);
plot(t,x,'g',t,y,'r');

2.

x=-1:.001:2;
y=(x+1).*(x>=-1 & x<0)+(x>=0 & x<1) +x.^2.*(x>=1 & x<2);
plot(x,y)

3.极坐标下画图我有点疑问,在为西塔的奇数倍时,函数都能画出来,偶数倍的就要先算下角度大小使R为正

t=[-4*pi/3:pi/90:-pi,-2*pi/3:pi/90:-pi/3,0:pi/90:pi/3, pi*2/3:pi/90:pi];
% t=0:pi/100:10*pi;
r=sin(3*t);
polar(t,r,'g')

4.

a=[1,1.5,2,2.5,3,3.5];
l=length(a);
color1=['r','g','b','y','m','c'];
t=-2*pi:pi/50:2*pi;
hold on;
for i=1:1:l;
    plot(a(i).*cos(t),sin(t),color1(i));
end

5.

[x,y]=meshgrid(-2:.01:2);
z=x.^2+y.^2;
surf(x,y,z);
shading flat

在范围内

t=0:pi/40:pi*2;
r=0:0.01:2;
[R,T]=meshgrid(r,t);
x=R.*cos(T);
y=R.*sin(T);
z=x.^2+y.^2;
surf(x,y,z)
shading flat

6.

clc
clear all
[x,y]=meshgrid(-3:.01:3);
z1=sqrt((3/2)*x.*x +3*y.*y-3);
z2=-sqrt((3/2)*x.*x +3*y.*y-3);
surf(x,y,real(z1));
hold on
surf(x,y,real(z2));
shading flat

上面的求法是错误的,因为取x y的范围不对,但是为了日后复习知道怎么错的,还是保留一下,出现了复数,其他的方法也没想到,就用参数方程好了

a=sqrt(2);
b=sqrt(3);
c=2;
[t f]=meshgrid(-2*pi:pi/100:2*pi);
x=a*sec(t).*cos(f);
y=b*sec(t).*sin(f);
z=c*tan(t);
mesh(x,y,z)
shading flat

现在给出另一种画法,将取的参数改变


z=-5:0.01:5;
t=0:pi/50:2*pi;
[Z,T]=meshgrid(z,t);
x=sqrt(2*(1+Z.*Z/3)).*cos(T);
y=sqrt(4*(1+Z.*Z/3)).*sin(T);
surf(x,y,Z)
shading flat

7.

[x,y]=meshgrid(-2:.01:2);
z=x.^2/3+y.^2/4;
subplot(2,2,1);
mesh(x,y,z);
subplot(2,2,2);
[C,h]=contour(z,6);
axis equal
clabel(C,h)
subplot(2,2,3);
[C,h]=contourf(z,6)
clabel(C,h);



版权声明:本文为qq_37410469原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。