matlab画曲面图和显示latex标记

来源:互联网 发布:问答系统cms 编辑:程序博客网 时间:2024/05/22 14:57

一般来说学习数学建模,常用的软件有五种,分别是Matlab、 Lingo、 Mathematica、 SPSS和SAS。对于数学规划的模型,建议大家使用Lingo软件求解比较方便,对于其它问题,如时间序列模型,你使用什么软件求解都可以,关键看个人的喜好和对某种软件的熟悉程度,例如你可以使用SPSS, SAS或Eviews, R软件等求解时间序列模型。
画出x^2+(y-5)^2=16绕x轴旋转一周的旋转曲面。

旋转面参数方程为

x  =  4cosα,
y=(5+4sinα)cosβ
z=(5+4sinα)sinβ

利用surf画图,其中α,βε[0,2π] 。画图的Matlab程序如下。

>> alpha=[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)

画图的Matlab程序也可以写成

>> 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)


对于其它的二次曲面,如果可以写成单支的显函数,直接使用命令ezmesh或ezsurf 画图,杏则必须先化成参数方程.
例2 绘制二元函数
z=sin(xy)/xy;

的三维表面图.

>> [x,y]=meshgrid([-3:0.2:3]);>> z=(sin(x.*y)+eps)./(x.*y+eps);>> surf(x,y,z)


第二种方法是用符号函数

>> ezsurf('sin(x*y)/(x*y)');

第三种方法是用匿名函数

z=@(x,y)sin(xy+eps)/(xy+eps);%定义匿名函数

ezsurf(z);


x=3cosα 
y  =  2sinα, 
z=t, tεR. 

>> ezmesh(x,y,z)>> x=@(alpha,t) 3*cos(alpha);>> y=@(alpha,t) 2*sin(alpha);>> z=@(alpha,t) t;>> ezmesh(x,y,z)


4、在matlab的图形中,利用Interpreter(翻译器、解释器、注释)的属性值为Latex,可以使用数学公式。


latex数学公式的前后要加上”$” 或 ”\( “和 ”\)“,比如:”$f(x) = 3x + 7$ “和 ”\(f(x) = 3x + 7\) “效果是一样的;
如果用 \[\],或者使用 $$$$,则改公式独占一行;
如果用
\begin{equation}\end{equation},则公式除了独占一行还会自动被添加序号, 如何公式不想编号则使用\begin{equation*}\end{equation*}.

latex说明

clc,clear %清除命令窗口 清除工作空间

>> x=-2*pi:0.1:2*pi;>> y1=sin(x);>> y2=sin(x+pi/3)+2;>> y3=cos(x);>> plot(x,y1,'.-')>> hold on%图形保持命令>> plot(x,y2,'*-')>> plot(x,y3,'-o')>> h=legend('sin($x$)','sin($x+\frac{\pi}{3}$)','cos($x$)')%1atex格式显示 legend为说明、图例 latex分数:\frac{numerator}{denominator}h =  181.0056Warning: Unable to interpret TeX string "sin($x+\frac{\pi}{3}$)" >> set(h,'Interpreter','latex') %此时才真正为latex
>> xlabel('$x$','Interpreter','latex')%x标签用latex格式显示>> ylabel('$y$','Interpreter','latex')%latex格式显示