Xcas - Khảo sát sự biến thiên và vẽ đồ thị HS bậc ba
- 23/05/2024
- 64 lượt xem
Lời nói đầu. Ngày nay ChatGPT và PythonTeX đã khá đủ mạnh để hoàn thành một tác vụ “Khảo sát sự biến thiên và vẽ đồ thị hàm số ”. Tuy nhiên XCAS lại khá mạnh trong tính toán các phép tính phức tạp và xuất ra kết quả dưới dạng giá trị chính xác (không xấp xỉ trừ phi được yêu cầu). Rất tiếc thầy Sơn chỉ code được trong một file $\rm \TeX$ khi chạy trên một máy tính với hệ điều hành Ubuntu đã cài đặt sẵn giac/Xcas. Độc giả nào đang sử dụng Ubuntu (24.04) đã cài TeXLive (2024), giac/Xcas đều có thể sử dụng được code mà thầy Sơn đã biên soạn. Lưu ý: Code này cũng chạy được trên một máy MacBook đã cài sẵn MacTeX, giac/Xcas. Ý tưởng của công việc này là bạn nhập vào một hàm số (ví dụ hàm số bậc ba $y=ax^3+bx^2+cd+d$), $\rm \LaTeX$ sẽ vận hành, gọi Xcas ra tính và xuất ra kết quả dưới dạng một bài Khảo sát sự biến thiên và vẽ đồ thị hàm số hoàn thiện. |
Download Source code (code ở dưới chỉ để tham khảo).
\usepackage{pst-func}
\thispagestyle{empty}
\makeatletter
\newcommand{\chamcham}[2]{
\psline[linewidth=.5\pslinewidth,linestyle=dashed,dash=2pt 2pt](#1,#2)(0,#2)
\psline[linewidth=.5\pslinewidth, linestyle=dashed,dash=2pt 2pt](#1,#2)(#1,0)}
\parindent=0pt
\begin{center}
{\Large \textbf{KHẢO SÁT HÀM SỐ BẬC BA 2 CỰC TRỊ}}
\end{center}\bigskip
\begin{verbatimwrite}{hsb3.in}
maple_mode(0);
Sortie:=fopen("hsb3.out.tex");
f(x):=x^3-3*x^2-x+3;
Resultat:=cat("Khảo sát hàm số ","$$",latex(ans()),"$$");
dfx:=simplify(diff(f(x),x));
Resultat:=cat(Resultat,"Đạo hàm: ","$$y'=",latex(ans()),"$$");
ddfx:=simplify(diff(diff(f(x),x),x));
Resultat:=cat(Resultat,"","$$y''=",latex(ans()),"$$");
dddfx:=simplify(diff(diff(diff(f(x),x),x)));
x_m:=solve(dfx=0)[0];
Resultat:=cat(Resultat," Cực trị: ","$$x_1= ",latex(ans()),"$$");
evalf(x_m);
Resultat:=cat(Resultat,"\\def\\xctm\{",latex(ans()),"}");
x_h:=solve(dfx=0)[1];
Resultat:=cat(Resultat," ","$$x_2=",latex(ans()),"$$");
evalf(x_h);
Resultat:=cat(Resultat,"\\def\\xcth\{",latex(ans()),"}");
y_m:=simplify(subs(f(x),x,solve(dfx=0)[0]));
Resultat:=cat(Resultat," Giá trị cực trị: ","$$y_1=",latex(ans()),"$$");
evalf(y_m);
Resultat:=cat(Resultat,"\\def\\yctm\{",latex(ans()),"}");
y_h:=simplify(subs(f(x),x,solve(dfx=0)[1]));
Resultat:=cat(Resultat,"","$$y_2=",latex(ans()),"$$");
evalf(y_h);
Resultat:=cat(Resultat,"\\def\\ycth\{",latex(ans()),"}");
solve(ddfx=0)[0];
Resultat:=cat(Resultat,"Điểm uốn: ","$$x=",latex(ans()),"$$");
subs(f(x),x,solve(ddfx=0)[0]);
Resultat:=cat(Resultat,"","$$y=",latex(ans()),"$$");
solve(f(x)=0);
Resultat:=cat(Resultat,"Giao điểm với trục hoành","$$x=",latex(ans()),"$$");
subs(f(x),x,0);
Resultat:=cat(Resultat,"\\def\\hsd\{",latex(ans()),"}");
subs(dfx,x,0);
Resultat:=cat(Resultat,"\\def\\hsc\{",latex(ans()),"}");
subs(ddfx,x,0)/2;
Resultat:=cat(Resultat,"\\def\\hsb\{",latex(ans()),"}");
dddfx/6;
Resultat:=cat(Resultat,"\\def\\hsa\{",latex(ans()),"}");
fprint(Sortie,Unquoted,Resultat);
fclose(Sortie);
\end{verbatimwrite}
\executGiac{hsb3.in}
\input{hsb3.out}
\noindent Bảng biến thiên:
\begin{TV}
TV ([ -infinity ,+ infinity ] ,[] ," y " ," x ", \hsa*x^3+\hsb*x^2+\hsc*x+\hsd,1 ,\tv )
\end{TV}
\noindent Đồ thị
\def\xmin{-2.5}\def\ymin{-5}\def\xmax{5}\def\ymax{5}\def\xxmax{4.75}\def\yymax{4.5}
\psset{yunit=0.5cm,xunit=1cm}\begin{pspicture*}(\xmin,\ymin)(\xmax,\ymax)\psaxes[Dy=2]{->}(0,0)(\xmin,\ymin)(\xmax,\ymax)\psset{linewidth=1.5pt}
\rput(\xxmax,0.5){{\large $x$}} \rput(.25,\yymax){{\large $y$}}
\psPolynomial[coeff=3 -1 -3 1,linecolor=blue]{-2}{4}
\chamcham{\xcth}{\ycth}
\chamcham{\xctm}{\yctm}
\end{pspicture*}
Loading...
Chia sẻ