matlab畫曲面圖和顯示latex標記
一般來說學習數學建模,常用的軟體有五種,分別是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*}.
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.0056
Warning: 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格式顯示