คุณสุขุมถามมาใน forum พอดีไม่เคยใช้เหมือนกันเลยตอบไม่ได้ ใช้ MATLAB ทดสอบแล้วตอบ ซึ่งคิดว่าเหมือน ๆ กัน วันนี้นั่งดูเว็บ TUG เล่น ๆ ก็พบว่ามีแพ็กเกจ pgfplots ซึ่งสามารถใช้งานในการพล็อตกราฟได้ดี เลยลองเล่นดูสักพัก แล้วลองทำโจทย์ที่คุณสุขุมให้มาดู ปรากฏว่าง่ายมาก ๆ เลยลองเขียนวิธีการไว้เป็นบันทึกช่วยจำสักหน่อย
โจทย์เป็นแบบนี้ครับ ให้พล็อตกราฟพาราโบลา

จะได้รหัสของ TikZ เป็นดังนี้
\documentclass{report}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xlabel=$x$, ylabel=$y$,
title={$\frac{x^2}{4}-\frac{y^2}{40}=1$}]
\addplot[blue,mark=none] expression[domain=2:8]{sqrt(10*x^2-40)};
\addplot[blue,mark=none] expression[domain=2:8]{-sqrt(10*x^2-40)};
\addplot[blue,mark=none] expression[domain=-8:-2]{sqrt(10*x^2-40)};
\addplot[blue,mark=none] expression[domain=-8:-2]{-sqrt(10*x^2-40)};
\end{axis}
\end{tikzpicture}
\end{document}
วิธีการพล็อตก็ต้องเปลี่ยนสมการไฮเปอร์โบลาให้อยู่ในรูปสมการ
ก่อน ซึ่งจากสมการไฮเปอร์โบลาที่คุณสุขุมให้มาสามารถแปลงเป็นสมการได้ดังนี้
สมการนี้มีปัญหาเล็กน้อยนั่นคือค่า
ซึ่งจะต้องไม่มีค่าอยู่ในช่วง
ไม่เช่นนั้นค่า
ที่ได้จะเป็นจำนวนเชิงซ้อน วิธีการพล็อตก็ต้องแบ่งการพล็อตออกเป็นสองช่วงคือช่วงที่ค่า
และช่วงที่ค่า
และเนื่องจากรากของสมการมีทั้งค่าบวกและลบ ดังนั้นเวลาพล็อตต้องพล็อตทั้งค่าบวกและลบ
สำหรับการวาดรูปโดยใช้ TikZ นั้นให้เริ่มต้นด้วยการเรียกใช้แพ็กเกจ pgfplot กำหนดสิ่งแวดล้อม axis และกำหนด xlabel, ylabel และ title ซึ่งจะมากำหนดทีหลังจากที่ได้พล็อตกราฟจนพอใจแล้วก็ได้ จากตัวอย่างข้างต้นคำสั่ง \addplot ก็ตรงตัว และได้กำหนดให้เส้นกราฟเป็นสีน้ำเงิน โดยไม่มีการวางจุดในกราฟ สำหรับคำสั่ง expression นั้นสำหรับสมการที่มีคำสั่งพิเศษ ซึ่งในกรณีคือ sqrt สำหรับกรณีที่มีเฉพาะค่า
ไม่จำเป็นต้องมีคำสั่งนี้ ในตัวอย่างนี้สั่งให้พล็อตกราฟในช่วง
และ
เมื่อรวมรหัสต้นต่าง ๆ เข้าด้วยกันก็จะได้ผลลัพธ์ดังนี้
รายละเอียดการใช้งาน pgfplots สามารถอ่านได้จากคู่มือตามลิงค์ที่ให้ครับ

อาจารย์ครับ
ถ้า
เอ้ย !!
แก้แล้วนะครับ แก้เป็นต้องไม่มีค่าอยู่ ขอบคุณครับ