Mathcenter Community


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

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


\[ \left[ {\begin{array}{*{20}{c}}{{a_0}}\\{{a_1}}\\\vdots \\{{a_k}}\end{array}} \right] = {\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]^{ - 1}}\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] \]

เราแก้โดยใช้ Calculus ผสมกับ Least Square Error ไปแล้ว ทีนี้จะแก้ด้วยการใช้ pseudo-inverse matrix บ้าง จะตั้งสมการเมตริกซ์ได้เป็น

\[\left[ {\begin{array}{*{20}{c}} 1&{{x_1}}& \cdots &{x_1^k}\\ 1&{{x_2}}& \cdots &{x_2^k}\\ \vdots & \vdots & \ddots & \vdots \\ 1&{{x_n}}& \cdots &{x_n^k} \end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{a_0}}\\{{a_1}}\\\vdots \\{{a_k}}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{y_1}}\\{{y_2}}\\\vdots \\{{y_n}} \end{array}} \right]\]

เราจะหา pseudo-inverse matrix ของเมตริกซ์ทางด้านซ้าย เนื่องจากเป็น pseudo-inverse matrix ทางด้านซ้าย ซึ่งมี pseudo-inverse matrix เป็น ${\left( {{A^T}A} \right)^{ - 1}}{A^T}$ จึงคูณด้วย $A^T$ ก่อน

\[\begin{array}{rcl} \left[ {\begin{array}{*{20}{c}} 1&1& \cdots &1\\ {{x_1}}&{{x_2}}& \cdots &{{x_n}}\\ \vdots & \vdots & \ddots & \vdots \\ {x_1^k}&{x_2^k}& \cdots &{x_n^k} \end{array}} \right] \left[ {\begin{array}{*{20}{c}} 1&{{x_1}}& \cdots &{x_1^k}\\ 1&{{x_2}}& \cdots &{x_2^k}\\ \vdots & \vdots & \ddots & \vdots \\ 1&{{x_n}}& \cdots &{x_n^k} \end{array}} \right] \left[ {\begin{array}{*{20}{c}}{{a_0}}\\{{a_1}}\\\vdots \\{{a_k}}\end{array}} \right] & = & \left[ {\begin{array}{*{20}{c}} 1&1& \cdots &1\\ {{x_1}}&{{x_2}}& \cdots &{{x_n}}\\ \vdots & \vdots & \ddots & \vdots \\ {x_1^k}&{x_2^k}& \cdots &{x_n^k} \end{array}} \right] \left[ {\begin{array}{*{20}{c}}{{y_1}}\\{{y_2}}\\\vdots \\{{y_n}}\end{array}} \right] \\ \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] \end{array}\]

จากนั้นจึงคูณด้วย ${\left( {{A^T}A} \right)^{ - 1}}$ ซึ่ง $\left( {{A^T}A} \right)$ ก็คือ $\displaystyle{\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}} 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]^{ - 1}}\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]\]

ตรงกับวิธีที่ใช้ Calculus ผสมกับ Least Square Error แสดงให้เห็นว่าการใช้ pseudo-inverse matrix ให้ผลลัพธ์ที่มีความผิดพลาดน้อยที่สุดเมื่อวัดด้วยวิธี Least Square Error

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

จากผลการทดลองสามารถตั้งสมการทางเมตริกซ์ได้ดังนี้

\[ \left[ {\begin{array}{*{20}{c}} 1&1\\1&2\\1&3\\1&4\\1&5 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} u\\g \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {13}\\{25}\\{30}\\{41}\\{51} \end{array}} \right] \]

เนื่องจากเป็น pseudo-inverse matrix ทางด้านซ้าย ซึ่งมี pseudo-inverse matrix เป็น

\[\begin{array}{rcl} {\left( {{A^T}A} \right)^{ - 1}}{A^T} & = & {\left( {{{\left[ {\begin{array}{*{20}{c}} 1\\2\\3\\4\\5 \end{array}} \right]}^T}\left[ {\begin{array}{*{20}{c}} 1\\2\\3\\4\\5 \end{array}} \right]} \right)^{ - 1}}{\left[ {\begin{array}{*{20}{c}} 1\\2\\3\\4\\5 \end{array}} \right]^T} = \left[ {\begin{array}{*{20}{c}} {\,\,\,0.8}&{\,\,\,0.5}&{0.2}&{ - 0.1}&{ - 0.4}\\ { - 0.2}&{ - 0.1}&{\,\,\,\,0}&{\,\,\,0.1}&{\,\,\,0.2} \end{array}} \right]\\ จึงได้\ \left[ {\begin{array}{*{20}{c}}u\\g\end{array}} \right] & = & {\left[ {\begin{array}{*{20}{c}} {\,\,\,0.8}&{\,\,\,0.5}&{0.2}&{ - 0.1}&{ - 0.4}\\ { - 0.2}&{ - 0.1}&{\,\,\,\,0}&{\,\,\,0.1}&{\,\,\,0.2} \end{array}} \right]^{ - 1}}\left[ {\begin{array}{*{20}{c}} {13}\\{25}\\{30}\\{41}\\{51} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {4.4}\\{9.2} \end{array}} \right] \end{array}\]

ได้ความเร่งเนื่องจากแรงโน้มถ่วงของโลกคือ $9.2\ เมตร/วินาที^2$ และความเร็วเริ่มต้นที่ปล่อยคือ $4.4$ เมตร/วินาที

หากใครไม่อยากจำสูตร จะแสดงทีละขั้นตอนให้ดูใหม่อีกครั้งจาก

\[ \left[ {\begin{array}{*{20}{c}} 1&1\\1&2\\1&3\\1&4\\1&5 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} u\\g \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {13}\\{25}\\{30}\\{41}\\{51} \end{array}} \right] \]

คูณทั้งสองข้างด้วย ${\left[ {\begin{array}{*{20}{c}}1&1\\1&2\\1&3\\1&4\\1&5\end{array}} \right]^T}$ เพื่อให้ได้ ${\left[ {\begin{array}{*{20}{c}}1&1\\1&2\\1&3\\1&4\\1&5\end{array}} \right]^T}\left[ {\begin{array}{*{20}{c}}1&1\\1&2\\1&3\\1&4\\1&5\end{array}} \right]$ เป็นเมตริกซ์จัตุรัส จะได้

\[\begin{array}{rcl} {\left[ {\begin{array}{*{20}{c}}1&1\\1&2\\1&3\\1&4\\1&5\end{array}} \right]^T}\left[ {\begin{array}{*{20}{c}}1&1\\1&2\\1&3\\1&4\\1&5\end{array}} \right]\left[ {\begin{array}{*{20}{c}}u\\g\end{array}} \right] & = & {\left[ {\begin{array}{*{20}{c}}1&1\\1&2\\1&3\\1&4\\1&5\end{array}} \right]^T}\left[ {\begin{array}{*{20}{c}}{13}\\{25}\\{30}\\{41}\\{51}\end{array}} \right]\\ \left[ {\begin{array}{*{20}{c}}{\,\,\,5}&{15}\\{15}&{55}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}u\\g\end{array}} \right] & = & \left[ {\begin{array}{*{20}{c}}{160}\\{572}\end{array}} \right]\\ \left[ {\begin{array}{*{20}{c}}u\\g\end{array}} \right] & = & {\left[ {\begin{array}{*{20}{c}}{\,\,5}&{15}\\{15}&{55}\end{array}} \right]^{ - 1}}\left[ {\begin{array}{*{20}{c}}{160}\\{572}\end{array}} \right]\\ \left[ {\begin{array}{*{20}{c}}u\\g\end{array}} \right] & = & \left[ {\begin{array}{*{20}{c}}{4.4}\\{9.2}\end{array}} \right] \end{array}\]

ได้ความเร่งเนื่องจากแรงโน้มถ่วงของโลกคือ $9.2\ เมตร/วินาที^2$ และความเร็วเริ่มต้นที่ปล่อยคือ $4.4$ เมตร/วินาที

คราวนี้เราลองแทนค่า $u$ และ $g$ ที่ได้กลับไปยังสมการเดิมเพื่อตรวจคำตอบ จะได้

\[ \left[ {\begin{array}{*{20}{c}}1&1\\1&2\\1&3\\1&4\\1&5\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{4.4}\\{9.2}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{13.6}\\{22.8}\\{32.0}\\{41.2}\\{50.4}\end{array}} \right] \approx \left[ {\begin{array}{*{20}{c}}{13}\\{25}\\{30}\\{41}\\{51}\end{array}} \right] \]