numeric Pi,E;
Pi:= 3.1416;
E:= 2.7183;
u:=0.8cm; % tạo một hằng số độ dài
mark_size:=.1;
xinc:=.01;
% định nghĩa các hàm lượng giác, lôgarit, mũ.
vardef sin(expr x) =
sind(x/Pi*180)
enddef;
vardef cos(expr x) =
cosd(x/Pi*180)
enddef;
vardef tan(expr x) =
sin(x)/cos(x)
enddef;
vardef exp(expr x) =
mexp(x*256)
enddef;
vardef ln(expr x) =
mlog(x)/256
enddef;
%ve luoi trong he truc
def grid(expr xmin, xmax, ymin, ymax)=
drawoptions(withpen pencircle scaled .1pt withcolor .4white);
for i=xmin upto xmax: draw u*(i,ymin)--u*(i,ymax); endfor;
for i=ymin upto ymax: draw u*(xmin,i)--u*(xmax,i); endfor;
enddef;
%ve cac truc toa do
def axes(expr xmin, xmax, ymin, ymax)=
drawoptions(withpen pencircle scaled 0.7pt);
drawarrow u*(xmin,0)--u*(xmax,0);
drawarrow u*(0,ymin)--u*(0,ymax);
label.lrt(btex $y$ etex,u*(0,ymax));
label.top(btex $x$ etex,u*(xmax,0));
label.urt(btex $O$ etex,u*(0,0));
enddef;
%ve cac dau gach tren cac truc toa do
def unit_tick(expr xmin, xmax, ymin, ymax)=
for i=xmin upto xmax: label.llft(decimal(i), u*(1.25i,0)) scaled .8; endfor;
for i=ymin upto ymax: label.llft(decimal(i), u*(0,i)); endfor;
enddef;
def tick(expr xmin, xmax, ymin, ymax)=
drawoptions(withpen pencircle scaled .2pt);
for i=(xmin+1) upto (xmax-1): draw u*(i,-mark_size)--u*(i,mark_size); endfor;
for i=(ymin+1) upto (ymax-1): draw u*(-mark_size,i)--u*(mark_size,i); endfor;
enddef;
def curve(suffix f)(expr xmin, xmax) =
( (xmin,f(xmin))*u
for x=xmin+xinc step xinc until xmax:
.. (x,f(x))*u
endfor )
enddef;
def mplot(suffix f)(expr xmin, xmax) =
drawoptions(withpen pencircle);
draw
( (xmin,f(xmin))*u
for x=xmin+xinc step xinc until xmax:
.. (x,f(x))*u
endfor )
enddef;
input mplot.mp; % chèn marco mplot.mp vào file
beginfig(1) % bắt đầu vẽ hình
axes(-1,5,-5,4); %vẽ trục hoành độ từ -1 đến 5, tung độ từ -5 đến 4
tick(1,4,-4,-5); % đánh các dấu tick trên các trục
vardef f(expr x)=2*x*x*x-9*x*x+12*x-4 enddef; %khai báo đồ thị cần vẽ
mplot(f,-0.081,2.9) withcolor red; %vẽ đồ thị từ -0,081 đến 2.9 với màu đỏ
draw (u,0) -- (u,u) dashed evenly; %vẽ đường chỉ điểm đặc biệt
draw (0,u) -- (u,u) dashed evenly;
dotlabel.top(btex $\cal $ etex, (u,u)); %vẽ ``nốt ruồi'' tại các điểm đặc biệt
dotlabel.top(btex $\cal $ etex, (0,-4u));
dotlabel.top(btex $\cal $ etex, (2u,0));
label.lft(btex $-4$ etex, (0,-4u)); % chèn số vào các điểm
label.bot(btex $1$ etex, (u,0));
label.bot(btex $2$ etex, (2u,0));
label.lft(btex $1$ etex, (0,u));
label.bot(btex $3$ etex, (3u,0));
endfig; % kết thúc vẽ hình
end;
\documentclass{book}
\usepackage{amsmath,amsxtra,amssymb,latexsym, amscd,amsthm}
\usepackage{indentfirst}
\usepackage[mathscr]{eucal}
\usepackage{color}
\usepackage[utf8]{vietnam}
\begin{document}
\begin{figure}[hb]
\centering
\parbox{10cm}{\convertMPtoPDF{funtion.1}{1}{1}}
\caption{Đồ thị hàm số $y=2x^3-9x^2+12x-4$}
\end{figure}
\end{document}
Vận dụng: Bạn hãy vẽ đồ thị của các hàm số dưới đây và so sánh hình vẽ với sản phẩm của các chương trình khác như Graph, GSP, GeoGebra,...chẳng hạn.
a) $y=-x^3+3x^2-2$
b) $y=x^4-2x^2$
c) $y=\dfrac{x-1}{x+1}$
d) $y=\dfrac{x^2}{x-1}$
Chúc các bạn thành công và ngày càng yêu $\TeX$ hơn.
0 nhận xét:
Đăng nhận xét