Mathcenter Community


เสริมประสบการณ์คณิตศาสตร์ ชุดที่ 9 ซูโดอินเวอร์ส

บทความ/จัดพิมพ์ โดย: นาย เจษฎา กานต์ประชา


สมการลักษณะนี้เขาเรียกว่า over determined system เนื่องจาก สมการเชิงเส้นโดยปกติแล้ว หากมีจำนวนตัวแปร $n$ ตัว ก็จะต้องใช้สมการจำนวน $n$ สมการ จึงจะแก้หาค่าตัวแปรทั้งหมดออกมาได้ แต่หากเรามีจำนวนสมการมากกว่า $n$ สมการละ จะทำยังไง

  • เลือกมาใช้แค่ $n$ สมการดีไหม สมการที่เหลือช่างมัน
  • ยุบสมการให้เหลือ $n$ สมการก่อน(เช่นนำ 2 สมการมาบวกกัน) จากนั้นจึงค่อยแก้สมการ

ก็แล้วแต่ว่า ใครจะสรรหาวิธีประหลาดต่างๆมาแก้สมการกันไป อันที่จริงแล้วสมการลักษณะนี้จะไม่สามารถหาคำตอบที่ทำให้มันเป็นจริงได้(อ้าว แล้วจะแก้ไปทำไมกันละ) เพราะเรารู้อยู่แล้วว่าทุกสมการมีความผิดพลาดด้วยกันทั้งสิ้น ซึ่งมีสาเหตุมาจากความผิดพลาดในการเก็บข้อมูล เราจึงคาดหวังเพียงว่า จะหาคำตอบที่มันใกล้เคียงกับความเป็นจริงที่สุด ปัญหาคือเราจะรู้ได้อย่างไรว่าวิธีไหนจะเป็นวิธีที่ถูกต้องที่ใกล้เคียงกับความจริงที่สุด วิธีที่ใช้วัดว่าวิธีไหนถูกต้องที่สุด ที่เป็นที่นิยมคือ Least Square Error (อันนี้เริ่มนอกเรื่องจากหัวข้อปกติแล้ว แต่ถ้าใครสนใจก็อ่านได้นะ)

Least Square Error

สมมติว่า เรามีข้อมูลอยู่ 2 ชุด คือ $y(n)$ และ $f(n)$ เราจะวัดความเหมือนกันของข้อมูล 2 ชุดจาก error function ซึ่งกำหนดไว้ดังนี้

\[\begin{array}{rcl} \rm{Error} & = & \sum\limits_n {{{\left( {y\left( n \right) - f\left( n \right)} \right)}^2}}\\ & = & {\left( {y\left( 1 \right) - f\left( 1 \right)} \right)^2} + {\left( {y\left( 2 \right) - f\left( 2 \right)} \right)^2} + \cdots + {\left( {y\left( n \right) - f\left( n \right)} \right)^2} \end{array}\]

ดังนั้นยิ่งได้ค่า error ออกมาน้อยมากเท่าไร ก็แสดงว่าข้อมูล 2 ชุดเหมือนกันมากเท่านั้น การวัดความผิดพลาดที่เกิดขึ้นด้วยวิธีนี้เป็นการวัดในทิศทางของ $y$ (ถ้าเป็น 2 มิติเขาจะเรียกว่าการวัดในแนวตั้งหรือ vertical offset นอกจากการวัดในทิศทางนี้แล้วยังอาจวัดจากทิศทางอื่นได้อีกด้วย เช่น perpendicular offset ดังรูปข้างล่างนี้)

vertical offsets

perpendicular offsets

ทีนี้ก็กลับมาเข้าเรื่องของเรากันต่อ และเราจะขอกล่าวถึงกรณีทั่วไปซึ่งเป็นความสัมพันธ์โพลีโนเมียลก็แล้วกัน(เพราะความสัมพันธ์แบบเชิงเส้นก็เป็นส่วนหนึ่งของแบบโพลีโนเมียล) หากเราทราบมาว่า $x$ และ $y$ มีความสัมพันธ์กันดังสมการ

$y = {a_0} + {a_1}x + {a_2}{x^2} + ... + {a_k}{x^k}$

และเราต้องการหาค่า $a_i$ ที่ทำให้ได้ความผิดพลาดน้อยที่สุด โดยวิธี Least Square Error

เนื่องจาก $\textrm{Error} = \sum\limits_{i = 1}^n {{{\left( {{y_i} - \left( {{a_0} + {a_1}{x_i} + \cdots + {a_k}x_i^k} \right)} \right)}^2}}$ เราต้องการจุดต่ำสุดของฟังก์ชันนี้ จึงทำการหาอนุพันธ์เทียบกับ $a_i$ จะได้

\[\begin{array}{rclcl} \frac{d(\rm{Error})}{da_0} & = & - 2\sum\limits_{i = 1}^n {\left( {{y_i} - \left( {{a_0} + {a_1}{x_i} + \cdots + {a_k}x_i^k} \right)} \right)} & = & 0\\ \frac{d(\rm{Error})}{da_1} & = & - 2\sum\limits_{i = 1}^n {\left( {{y_i} - {a_0} + {a_1}{x_i} + ... + {a_k}x_i^k} \right){x_i}} & = & 0\\ \hdashline\\ \frac{d(\rm{Error})}{da_k} & = & - 2\sum\limits_{i = 1}^n {\left( {{y_i} - {a_0} + {a_1}{x_i} + ... + {a_k}x_i^k} \right)x_i^k} & = & 0 \end{array}\]

จัดรูปใหม่จะได้

\[\begin{array}{rcl} {a_0}n + {a_1}\sum\limits_{i = 1}^n {{x_i}} + ... + {a_k}\sum\limits_{i = 1}^n {x_i^k} & = & \sum\limits_{i = 1}^n {{y_i}}\\ {a_0}\sum\limits_{i = 1}^n {{x_i}} + {a_1}\sum\limits_{i = 1}^n {x_i^2} + ... + {a_k}\sum\limits_{i = 1}^n {x_i^{k + 1}} & = & \sum\limits_{i = 1}^n {{x_i}{y_i}}\\ \hdashline\\ {a_0}\sum\limits_{i = 1}^n {x_i^k} + {a_1}\sum\limits_{i = 1}^n {x_i^{k + 1}} + ... + {a_k}\sum\limits_{i = 1}^n {x_i^{2k}} & = & \sum\limits_{i = 1}^n {x_i^k{y_i}} \end{array}\]

สามารถเขียนในรูปเมตริกซ์ได้เป็น

\[\left[ {\begin{array}{*{20}{c}} n&{\sum\limits_{i = 1}^n {{x_i}} }& \ldots &{\sum\limits_{i = 1}^n {x_i^k} }\\ {\sum\limits_{i = 1}^n {{x_i}} }&{\sum\limits_{i = 1}^n {x_i^2} }& \ldots &{\sum\limits_{i = 1}^n {x_i^{k + 1}} }\\ \vdots & \vdots & \ddots & \vdots \\ {\sum\limits_{i = 1}^n {x_i^k} }&{\sum\limits_{i = 1}^n {x_i^{k + 1}} }& \ldots &{\sum\limits_{i = 1}^n {x_i^{2k}} } \end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{a_0}}\\{{a_1}}\\\vdots \\{{a_k}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {\sum\limits_{i = 1}^n {{y_i}} }\\ {\sum\limits_{i = 1}^n {{x_i}{y_i}} }\\ \vdots \\ {\sum\limits_{i = 1}^n {x_i^k{y_i}} } \end{array}} \right]\]

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