Bootstrap

数学建模MATLAB绘图大全

最近快要开始一年一度的数学建模竞赛啦,接下来争取每天更一篇数学建模算法!(当然这是理想状态下),今天就先更一些MATLAB常用的绘图吧,论文赏心悦目的关键就在于丰富多彩的图,好看的图一定会成为数学建模竞赛中的加分项!

1.维绘图函数

示例:

clc,clear,
syms x y,
ezplot(x^2-y^4)

2.三维绘图函数 

示例:

syms t
ezplot3(sin(t),cos(t),t,[0,6*pi],"animate")

3.等高线绘图函数

 示例:

clc,clear,
syms x y,
f=3*(1-x)^2*exp(-(x^2)-(1+y)^2)-10*(x/5-x^3-y^5)*exp(-x^2-y^2)...
    -1/3*exp(-(x+1)^2-y^2);
ezcontour(f,[-3,3],49)

填充等高线图

clc,clear,
syms x y,
f=3*(1-x)^2*exp(-(x^2)-(1+y)^2)-10*(x/5-x^3-y^5)*exp(-x^2-y^2)...
    -1/3*exp(-(x+1)^2-y^2);
ezcontourf(f,[-3,3],49)

4.网格图绘图函数

ezmesh函数 

clc,clear,
syms x y,
ezmesh(x*exp(-x^2-y^2),[-2.5,2.5],40)

5.表面图绘图函数

clc,clear;
syms s t,
x=cos(s)*cos(t);
y=cos(s)*sin(t);
z=sin(s);
ezsurf(x,y,z,[0,pi/2,0,3*pi/2])
view(17,40)
shading interp

6.plot函数绘图

参数介绍:

 示例:

clc,clear,
x=linspace(0,7);
y1=sin(2.*x);
y2=sin(x.^2);
y3=(sin(x)).^2;
plot(x,y1,'r+-',x,y2,'k*:',x,y3,'b--^')
legend('sin(2*x)','sin(x^2)','(sin(x))^2')
xlabel('x轴')
ylabel('y轴')
grid on

 

7.subplot的使用

示例:

x=-10:0.1:10;
y1=x.*cos(x);
y2=-x.*sin(x)+cos(x);
y3=cos(x).*sin(x);
y4=sin(x).^2;
subplot(2,2,1)
plot(x,y1)
title('图1')
subplot(2,2,2);
plot(x,y2,'b--')
title('图2')
subplot(2,2,3)
plot(x,y3,'mo')
title('图3')
subplot(2,2,4)
plot(x,y4,'g*')
title('图4')

 8.hold的使用

clc,clear;
t=0:pi/10:2*pi;
y1=sin(t);
y2=cos(t);
y3=sin(t)-cos(t);
plot(t,y1,'g*');
hold on;
plot(t,y2,'-.b');
plot(t,y3,'--m');

9.三维绘图

  

 

示例:

x=0:0.1:10;
[x,y]=meshgrid(linspace(0,10),linspace(0,10));
z=(1./(x.^3-2.*x+5))+(1./(y.^3-2.*y+5));
mesh(x,y,z);
xlabel('X');
ylabel('Y');
zlabel('Z');
grid on

x=-8:0.5:8;
y=x;
[X,Y]=meshgrid(x,y);
r=sqrt(X.^2+Y.^2)+eps;
Z=sin(r)./r;
surf(X,Y,Z);

t=0:pi/50:10*pi;
x=exp(-t/15).*sin(2*t);
y=exp(-t/15).*cos(2*t);
z=t;
plot3(x,y,z)
axis square;
grid on

经典图:

z=peaks(40);
surf(z); 

clear;
z=peaks(40);
subplot(2,2,1);
mesh(z)
subplot(2,2,2);
mesh(z)
view(-15,60);
subplot(2,2,3);
mesh(z)
view(-90,0);
subplot(2,2,4);
mesh(z)
view(-7,-10);

10.时间响应绘图 

 ​​参数介绍:

 示例:

clear;
num1=[0 0 1];num2=[0 1 0];num3=[1 0 0];
den=[1 2 10]; 
impulse(num1,den);
hold on
gtext('G1')
impulse(num2,den);
gtext('G2')
impulse(num3,den);
gtext('G3')

;