รากของพหุนาม

กำหนดให้
     $a_0,a_1,\ldots,a_n$ เป็นจำนวนจริงหรือจำนวนเชิงซ้อน
     $n$ เป็นจำนวนเต็มบวก
     $p(x)$ เป็นพหุนามที่อยู่ในรูป \[ p(x)=a_nx^n + a_{n-1}x^{n-1}+\cdots+a_2x^2+a_1x+a_0\] แอปพลิเคชันนี้ใช้คำนวณหารากทั้งหมดของพหุนามซึ่งอาจจะมีบางรากที่ซ้ำกัน

ถ้า $r$ เป็นรากของพหุนามดังกล่าวเราจะได้ $p(r)=0$    ในการคำนวณนี้เราใช้ Jenkins-Traub algorithm ตามรายละเอียดในหนังสืออ้างอิงข้างล่าง

การใส่ข้อมูลพหุนาม

แอปพลิเคชันนี้ต้องการเพียงคู่ของสัมประสิทธิ์และเลขยกกำลังของ $x$ ของทุกเทอมในพหุนาม    โดยใส่หนึ่งแถวต่อหนึ่งเทอม    แถวหนึ่งประกอบด้วยสัมประสิทธิ์และคั่นด้วยช่องว่างอย่างน้อยหนึ่งช่อง    ตามด้วยเลขยกกำลัง    ลำดับแถวหรือเทอมไม่สำคัญใส่อันไหนก่อนก็ได้

ยกตัวอย่างเช่น $8x^7+4x^3+2$ จะใส่ข้อมูลเป็น

8     7
4     3
2     0
หรือ
4     3
2     0
8     7
จะสังเกตว่าตรงเลข 2 ต้องใส่เลขยกกำลังเป็น 0 และไม่มีตัวแปร $x$ ในข้อมูลเพราะมันไม่ได้ใช้    ส่วนเทอมที่ไม่มีในพหุนาม เช่น $x^6$ หรือ $x^5$ หรืออื่นๆถือว่าสัมประสิทธิ์เป็นศูนย์จึงไม่จำเป็นต้องใส่ข้อมูลพหุนาม

กรณีของจำนวนเชิงซ้อนก็ทำเหมือนกัน เช่น $(8+7i)x^6+(5+4i)x^3-2i$ จะใส่ข้อมูลเป็น

8+7i  6
5+4i  3
-2i   0
หรือสลับแถวกันก็ได้

หนังสืออ้างอิง

  1. M. A. Jenkins and J. F. Traub, Algorithm 419: Zeros of a Complex Polynomial, Comm. ACM, 15, 97-99, 1972
  2. M. A. Jenkins, Algorithm 493: Zeros of a Real Polynomial, ACM TOMS, 1, 178-189, 1975

คำนวณรากของพหุนาม