matlab中ezmesh的功能,matlab基础功能实践

一、matlab在高等数学中的应用(《数学建模算法与应用》P453)

1、求极限

syms x

b=limit((sqrt(1+x^2)-1)/(1-cos(x)))

syms x a

b=limit((1+a/x)^2,x,inf)

2、求导数

syms x

dy=diff(log((x+2)/(1-x)),3)

dy=simplify(dy) %对符号函数进行化简

pretty(dy) %分数线居中显示,这部一般不需要

差分:

a=[0,0.5,2,4];

da=diff(a)

3、求极值

syms x

y=x^3+6*x^2+8*x-1;

dy=diff(y);

dy_zero=solve(dy) %表达式类型

dy_zero_num=double(dy_zero) %变成数值类型

ezplot(y)

syms x

y=x^3+6*x^2+8*x-1;

dy=diff(y);

dy_zero=solve(dy) %表达式类型

dy_zero_num=double(dy_zero) %变成数值类型

ezplot(y) %符号曲线画图

4、求积分

不定积分:

syms x

I=int(1/(1+sqrt(1-x^2)))

pretty(I)

定积分 (符号解、数值解):

符号解:

syms x

I=int(cos(x)*cos(2*x),-pi/2,pi/2)

数值解:

I=quadl(@(t)(t-3*t.^2+2*t.^3).^(-1/3),eps,0.5)

(积分上下限不能为inf,可以不变换而直接设一个很大的数

syms t %不加也可以

I=quadl('(t-3*t.^2+2*t.^3).^(-1/3)',eps,0.5) %后面两项分别为积分上下限,eps认为是0

二重数值积分:

I=dblquad(@(x,y)sqrt(1-x.^2-y.^2).*(x.^2+y.^2<=x),0,1,-0.5,0.5)

(matlab中的log就是ln

三重数值积分:

fun3=@(x,y,z)z.^2*log(x.^2+y.^2+z.^2+1)./(x.^2+y.^2+z.^2+1).*(z>=0&...

z<=sqrt(1-x.^2-y.^2)); %...是续航符

I=triplequad(fun3,-1,1,-1,1,0,1)

注意把范围不等式点乘一下,最后的上下限只能为数字

5、级数求和

级数的上下限可以带inf

syms n

f1=(2*n-1)/2^n;

s1=symsum(f1,n,1,inf)

syms n

f2=1/n^2

s2=symsum(f2,n,1,inf)

二、matlab绘图命令(《数学建模算法与应用P449》)

1、二维绘图命令

title('my title')

xlabel('x-axis label')

ylabel('y-scid label')

text(x,y,'text for annotation')

gtext('text for annotation')

grid %网格的打开与关闭

subplot(r,c,p)

plot(t,[x1,x2,x3])

plot(t1,x1,t2,x2,t3,x3)

plot(x,y,'r-*')

2、显函数、符号函数或隐函数的绘图

function y=Afun1(x);

if x<1

y=x+1;

else

y=1+1/x;

end

fplot('Afun1',[-3,3])

匿名函数:

Afun2=@(x)(x+1)*(x<1)+(1+1/x)*(x>=1);

fplot(Afun2,[-3,3]);

符号函数:

ezplot('tan(x)')

ezplot('x^2+y^2/4=1')

ezplot可以用来绘制隐函数

3、三维图形

三维曲线图:plot3

三维网格图:mesh

三维表面图:surf

1)三维曲线:

t=0:pi/50:10*pi

plot3(sin(t),cos(t),t);

xlabel('sin(t)'),ylabel('cos(t)'),zlabel('t')

2)网格图

clc,clear

x=-3:0.1:3;y=-5:0.1:5;

[x,y]=meshgrid(x,y); %生成网格数据,自变量

z=(sin(x.*y)+eps)./(x.*y+eps); %为避免0/0,分子分母都加eps

mesh(x,y,z);

3)表面图

[x,y]=meshgrid([-3:0.2:3]);

z=(sin(x.*y)+eps)./(x.*y+eps);

surf(x,y,z);

4)旋转曲面(绕x轴旋转一周所得的图像

x=0:10:600;

[X,Y,Z]=cylinder(30*exp(-x/400).*sin((x+25*pi)/100)+130);

surf(X,Y,Z)

r为母线,n为沿周长的格数

alpha=[0:0.1:2*pi]';

beta=0:0.1:2*pi;

x=4*cos(alpha)*ones(size(beta));

y=(5+4*sin(alpha))*cos(beta);

z=(5+4*sin(alpha))*sin(beta);

surf(x,y,z)

emmm,上面这段代码不太理解。。。

下面这段是参数方程的常用画图方法,用函数句柄以及ezsurf完成

x=@(alpha,beta)4*cos(alpha);

y=@(alpha,beta)(5+4*sin(alpha)).*cos(beta);

z=@(alpha,beta)(5+4*sin(alpha)).*sin(beta);

ezsurf(x,y,z)

5、其他二次曲面

(1)旋转单叶双曲面

x=@(s,t)3*sec(s).*cos(t);

y=@(s,t)3*sec(s).*sin(t);

z=@(s,t)2*tan(s);

ezmesh(x,y,z);

(2)旋转双叶双曲面

x=@(s,t)3*sec(s);

y=@(s,t)3*tan(s).*cos(t);

z=@(s,t)2*tan(s).*cos(t);

ezmesh(x,y,z);

(3)抛物柱面

ezsurf(@(y,z)y.^2,50);

(4)椭圆锥面

x=@(s,t)3*tan(s).*cos(t);

y=@(s,t)2*tan(s).*sin(t);

z=@(s,t)tan(s);

ezsurf(x,y,z);

(5)椭球面

ellipsoid(0,0,0,3,2,sqrt(6));

使用matlab内置的绘制椭球的函数 ellipsoid(xc,yc,zc,xr,yr,zr,n),其中:

xc,yc,zc分别表示椭球中心的x,y,z坐标。

xr,yr,zr分别表示椭球x,y,z半轴的长度。

n表示绘图时,沿着经度和纬度方向划分的曲面片数量,n越大则数据越密集,曲面越光滑。

(6)马鞍面

ezsurf(@(x,y)x.*y);

(7)椭圆柱面

x=@(s,t)3*cos(s);

y=@(s,t)2*sin(s);

z=@(s,t)t;

ezmesh(x,y,z)

4、3-D可视化图形

[x,y,z,v]=flow;

isosurface(x,y,z,v);

x=1:20;y=1:10;z=-10:10;

[x,y,z]=meshgrid(x,y,z);

v=x.^2.*y.*(z+1);

isosurface(x,y,z,v);

isosurface与ezplot对应,可以绘制三维隐函数图像。ezmesh与ezsurf必须显函数或转化为参数方程。isosurface默认值不确定。

isosurface与ezmesh、ezsurf的作用相同,但是表达式不同。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值