การแก้สมการพหุนาม
สำหรับในบทความนี้จะพูดถึงเรื่อง การแก้สมการพหุนาม(Polynomial Equation) ซึ่งเป็นเรื่องที่เริ่มเรียนกันมาตั้งแต่ ม.ต้น ก่อนอื่นเรามาทำความเข้าใจก่อนว่าคำนี้ประกอบไปด้วย 2 คำ คือ
- สมการ คือ มีเครื่องหมายเท่ากับ เช่น x + 2 = 5
- พหุนาม คือ ตัวแปรยกกำลังเป็นตัวเลข เช่น x² + 3x + 8
หมายเหตุ ความหมายด้านบนนี้เป็นเพียงความหมายอย่างย่อเพื่อความเข้าใจง่าย
ใน wikipedia จะให้ความหมายไว้แบบนี้
สมการ หมายถึง ประโยคสัญลักษณ์ทางคณิตศาสตร์ ที่ใช้แสดงว่าสองสิ่งเหมือนกัน หรือเทียบเท่ากัน ที่เชื่อมด้วยเครื่องหมายเท่ากับ
พหุนาม ในคณิตศาสตร์ หมายถึง นิพจน์ที่สร้างจากตัวแปรอย่างน้อยหนึ่งตัวและสัมประสิทธิ์ โดยใช้การดำเนินการแค่ การบวก การลบ การคูณ และการยกกำลังโดยที่เลขชี้กำลังเป็นจำนวนเต็มที่ไม่เป็นลบเท่านั้น
โดยทั่วไปแล้วการแก้สมการจะมีเทคนิคต่าง ๆ มากมาย เช่น การบวกทั้งสองข้าง , การย้ายข้าง , การคูณไขว้ เป็นต้น ซึ่งต้องอาศัยการคิดวิเคราะห์ว่าจะทำอย่างไร กรณีที่เป็นสมการกำลัง 1 การแก้สมการก็ไม่ได้มีความซับซ้อนอะไรมาก ในบทความนี้จึงจะพูดถึงเรื่องการแก้สมการกำลัง 2 (จะเรียกว่า ดีกรี 2 ก็ได้) ขึ้นไป
เทคนิคการแก้สมการพหุนามตั้งแต่กำลัง 2 ขึ้นไป คือ ทำให้ข้างใดข้างหนึ่งของเครื่องหมายเท่ากับเป็น 0 จากนั้นพยายามแยกตัวประกอบ เช่น
สมการกำลัง 2
x² -5x +6 = 0
(x-2)(x-3)
x = 2 , 3
สมการกำลัง 3
x³ -6x² +11x -6 = 0
(x-1)(x-2)(x-3) = 0
x = 1 , 2 , 3
จากตัวอย่างข้างต้นจะเห็นว่าสามารถหาคำตอบของสมการเป็นเลขจำนวนเต็มได้ แต่ถ้าหากว่าคำตอบของสมการไม่ใช่จำนวนเต็ม กรณีที่เป็นสมการกำลัง 2 เราสามารถใช้ สูตร
ในการช่วยหาคำตอบได้ กรณีที่เป็นสมการกำลังตั้งแต่ 3 ขึ้นไปเราจะพยายามแยกตัวประกอบให้ได้มากที่สุดจนเหลือแค่กำลัง 2 แล้วจึงใช้สูตรนี้
ที่มาของสูตรนี้ มาจากการใช้เทคนิคกำลังสองสมบูรณ์
จากสมการพหุนามกำลังในรูปทั่วไป ax² + bx + c = 0 จะสามารถพิสูจน์สูตรได้ดังนี้
ตัวอย่างการใช้สูตร
x² -5x +3 = 0
แทนค่า a = 1 , b = -5 , c = 3
x = 0.697224 , 4.302776
สำหรับการใช้สูตรนี้ มีสิ่งที่ต้องคำนึงถึง คือ ค่าข้างใน square root นั้น จะเป็นได้ 3 แบบ คือ
1. เป็นบวก ก็จะได้จำนวนจริง 2 คำตอบ
2. เป็นศูนย์ ก็จะได้จำนวนจริง 1 คำตอบ
3. เป็นลบ จะไม่มีจำนวนจริงเป็นคำตอบ แต่มีจำนวนเชิงซ้อนเป็นคำตอบ
เราสามารถนำสูตรที่ได้มาเขียนโปรแกรมในการแก้สมการกำลัง 2 ได้ ตามนี้
โดยในโปรแกรมนี้จะใช้ module cmath ในการถอด square root เพื่อจะได้ไม่ต้องมาเขียนโปรแกรมดักในกรณีที่ใน root ติดลบ
หรือจะใช้ numpy ซึ่งมี function ในการหาคำตอบของสมการพหุนามได้แบบนี้
หรือ แบบนี้ก็ได้ ซึ่งจะสามารถแสดงสมการพหุนามออกมาได้ด้วย
จะเห็นว่า numpy สามารถหาคำตอบของสมการพหุนามที่กำลังมากกว่า 2 และที่คำตอบป็นจำนวนเชิงซ้อนได้ด้วย
สำหรับวิธีการเขียนโปรแกรมเพื่อให้คอมพิวเตอร์ คำนวณหาคำตอบของโจทย์ทางคณิตศาสตร์ จะเรียนแยกกันเป็นอีกวิชาหนึ่งเลย เรียกว่า ระเบียบวิธีเชิงตัวเลข (Numerical Methods) ซึ่งจะยังไม่พูดถึงในที่นี้