Tony
//
  • หน้าหลัก

  • ผมเองง

  • ทักษะ

  • ผลงาน

  • คอร์สเรียน

  • บทความ

  • ทักครับ!

วงแหวนเว็บ
← กลับไปหน้ารวมบทเรียน

Introduction

ตารางเลขในวงเล็บเหลี่ยม ไม่ได้มีไว้ให้จำ มันมีไว้ให้ดูมันขยับ

ตอนเจอเมทริกซ์ครั้งแรก ผมก็งงเหมือนกันว่าทำไมต้องเอาเลขมาเรียงในวงเล็บแล้วคูณกันไปมา จนวันที่เห็นว่ามันคือภาพเคลื่อนไหวของพื้นที่ทั้งผืน ทุกอย่างถึงเริ่มเข้าที่ ลองตามดูกันครับ

01

จุดเริ่มต้น

ปัญหาจริงมันไม่เคยมาทีละตัวแปร

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

{
2x + y = 5x + 2y = 4

หลายเงื่อนไข แต่ต้องการคำตอบชุดเดียว

วิธีที่คนสมัยก่อนใช้แก้คือ ตัดชื่อตัวแปร x, y ทิ้งไปเลย เหลือแค่ตัวเลขล้วนๆ เรียงเป็นแถวเป็นตาราง พอเลขมันมาอยู่เป็นระเบียบแบบนี้ เราก็แค่บวกลบคูณแถวเข้าหากันไปเรื่อยๆ จนตัวแปรหายไปทีละตัว โดยที่คำตอบเดิมไม่เพี้ยนเลย

ตำราจีนโบราณอย่าง The Nine Chapters ใช้วิธีเรียงเลขแบบนี้แก้ระบบสมการมาก่อนตะวันตกหลายร้อยปีแล้ว
02

จุดเปลี่ยน

ตารางเลขนิ่งๆ นั่นแหละ คือคำสั่งเคลื่อนที่

เริ่มจากตารางปกติก่อน: เมทริกซ์ [1 0; 0 1] คือกริด 1:1 เดิมๆ ที่ยังไม่ถูกเปลี่ยนอะไรเลย แกน i คือเดินไปทางขวา 1 ช่อง หรือ (1,0) ส่วนแกน j คือเดินขึ้นบน 1 ช่อง หรือ (0,1)

กริดเดิม 1:1
ij
10
01
i = (1,0), j = (0,1)
→
คำสั่งใหม่
ij
21
01
i → (2,0), j → (1,1)
=
x' = 2x + yy' = 0x + y
Animation loads on scroll

พอเมทริกซ์เปลี่ยนเป็น [2 1; 0 1] อย่าเพิ่งมองว่าเป็นเลข 4 ตัวลอยๆ ให้มองว่าเป็นคำสั่งย้ายแกน: คอลัมน์ซ้าย [2;0] บอกว่า i ใหม่ไปจบที่ (2,0) และคอลัมน์ขวา [1;1] บอกว่า j ใหม่ไปจบที่ (1,1)

ทำไมรู้แค่นี้ถึงลากได้ทั้งระนาบ? เพราะทุกจุดบนกริดสร้างจากการเดินตาม i กี่ครั้ง บวกเดินตาม j กี่ครั้ง เช่น จุด (3,2) แปลว่าเดินตาม i 3 ส่วน แล้วเดินตาม j 2 ส่วน

ดังนั้นเมื่อ i กับ j ถูกย้าย ตารางทั้งผืนก็ถูกลากตามไปพร้อมกัน กลายเป็นสมการใหม่ทันที: x' = 2x + y และ y' = 0x + y นี่แหละที่ทำให้เมทริกซ์หนึ่งตัวพาเราไปหาสมการหลายตัวพร้อมกันได้

03

พิสูจน์ให้ดู

ถ้ารู้ว่า i กับ j ไปไหน ก็ทำนายจุดอื่นได้ทั้งหมด

ลองเอาเวกเตอร์ v = 3î + 2ĵ ตัวหนึ่งไปวางในระนาบ ก่อนจะโดนแปลงร่าง เราคำนวณล่วงหน้าได้เลยว่ามันจะไปจบที่ไหน เพราะรู้แล้วว่า î ไปอยู่ตรงไหน ĵ ไปอยู่ตรงไหน แค่เอาสัดส่วนเดิม (3 ส่วนของ i, 2 ส่วนของ j) ไปคูณกับปลายทางใหม่

Animation loads on scroll

ในแอนิเมชันด้านล่าง ลองดูให้ดี: เราทำนายตำแหน่งจบของ v ไว้ก่อนเลยว่าจะไปจบที่ (8, 2) แล้วพอกดเล่นการแปลงร่างจริง มันก็ไปจบตรงนั้นเป๊ะ นี่คือสิ่งที่ทำให้พีชคณิตเชิงเส้นทรงพลัง ไม่ใช่แค่ดูสวย: เรากำลังทำนายอนาคตของทุกจุดในระบบได้ล่วงหน้า โดยรู้แค่ 2 พิกัดพอ

ข้อแม้เดียวคือระนาบต้องถูกแปลงแบบเส้นตรง (linear transformation): จุด (0,0) ต้องอยู่ที่เดิม และเส้นกริดทุกเส้นต้องขนานกันสม่ำเสมอ ไม่โค้งไม่เบี้ยว ถ้าไม่ใช่แบบนี้ ทริกทำนายล่วงหน้าจะใช้ไม่ได้
04

แล้วมันเอาไปทำอะไรต่อ

พอทำนายจุดหนึ่งได้ เราก็เริ่มถามคำถามที่ใหญ่ขึ้นได้

เมื่อกี้เรารู้แค่ปลายทางของ i กับ j แล้วใช้มันเดาว่า v จะไปจบที่ไหน นั่นคือแก่นของทั้งวิชาเลยครับ: ถ้ารู้ว่าเครื่องนี้ลากพื้นที่ยังไง เราก็เริ่มถามเรื่องอื่นกับเครื่องเดียวกันได้

A
B→A→AB
ต่อกัน(matrix multiplication)
→det
พื้นที่(determinant)
A↺A⁻¹
undo(inverse)
x?→A→b
ย้อนหา x(solve Ax=b)

สี่คำถามนี้ ที่จริงคือคำถามเดียวกัน

คำถามแรกคือ ถ้าเอาเครื่องแปลงร่างสองเครื่องมาต่อกันล่ะ? เช่นให้ B ลากกริดก่อน แล้วให้ A ลากต่ออีกรอบ เราควรได้เมทริกซ์ตัวเดียวที่แทนการเดินทางทั้งหมด นี่คือภาพของการคูณเมทริกซ์ ไม่ใช่แค่สูตรแถวคูณคอลัมน์

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

สุดท้ายเรากลับไปที่โจทย์สมการเดิม: ถ้ารู้ปลายทาง b แล้วอยากรู้ว่าต้องเริ่มจาก x ตรงไหนก่อนโดน A ลากไป นั่นคือ Ax = b ดังนั้น det, inverse, การคูณเมทริกซ์ และการแก้สมการ ไม่ใช่หัวข้อแยกๆ ที่ต้องจำทีละก้อน แต่มันคือคำถามต่อเนื่องจากภาพกริดขยับภาพเดียวกัน

05

เมื่อพื้นที่หายไป

ดีเทอร์มิแนนต์บอกว่าพื้นที่โดนบี้จนหายไปหรือเปล่า

ดีเทอร์มิแนนต์ (det) คือตัวเลขเดียวที่บอกว่า พื้นที่สี่เหลี่ยม 1×1 หลังโดนแปลงร่างแล้วใหญ่ขึ้นกี่เท่า ทิศทางถูกพลิกกลับด้านไหม หรือแย่สุดคือถูกบี้จนแบนเป็นเส้นตรง

กรณีที่ 1: พื้นที่ขยายออก (det = 3)
det
30
01
= 3(1) - 0(0) = 3
Animation loads on scroll

ถ้า det = 0 นั่นแปลว่ามิติหนึ่งหายไปเลย ข้อมูลบางส่วนถูกบี้รวมกันจนแยกไม่ออกอีกต่อไป และนี่คือจุดที่กระทบกับทุกอย่างที่ตามมา

06

ย้อนกลับได้ไหม

อินเวอร์สคือปุ่ม Undo แต่ใช้ได้ก็ต่อเมื่อไม่มีอะไรหายไป

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

A
A⁻¹
กลับบ้านได้(inverse exists)
A
?
ข้อมูลหายไปแล้ว(no inverse)

ทำแล้ว undo กลับมาเหมือนเดิม

แต่ถ้า A บี้พื้นที่จนแบนเป็นเส้น (det = 0) จุดหลายจุดที่เคยอยู่คนละที่ถูกทับรวมกันแล้ว ภาพปลายทางจึงจำไม่ได้ว่าใครมาจากไหน ต่อให้มีปุ่ม undo อยู่ตรงหน้า มันก็ไม่รู้ว่าจะคืนแต่ละจุดกลับไปตำแหน่งไหน

นี่คือเหตุผลที่อินเวอร์สไม่ได้ถามว่า สูตรมีหน้าตายังไงก่อน แต่มันถามว่า การแปลงร่างครั้งนี้ทำข้อมูลหายไปหรือเปล่า ถ้าไม่หาย ย้อนกลับได้ ถ้าหาย ย้อนกลับแบบเป๊ะๆ ไม่ได้

07

กลับมาที่คำถามแรก

Ax = b คือคำถามเดิมที่ถามกลับทาง: ต้องเริ่มจากไหน ถึงจะไปจบที่ b

ตอนนี้ทุกอย่างมาบรรจบกัน: A คือเครื่องแปลงร่างที่เจอตั้งแต่ต้น, b คือปลายทางที่อยากไปให้ถึง, ส่วน x คือจุดเริ่มต้นที่กำลังตามหา

21
12
x₁
x₂
=
b₁
b₂

x เริ่มตรงไหน ถึงโดน A แล้วไปถึง b?

ถ้า A ยังมีอินเวอร์ส (det ไม่เท่ากับศูนย์) คำตอบก็คือ x = A⁻¹b แค่นั้นเอง แต่ถ้า det = 0 คำตอบอาจไม่มีเลย หรือมีมากกว่าหนึ่งคำตอบ ขึ้นอยู่กับว่าจุด b ที่ตั้งเป้าไว้ตกอยู่บนเส้นที่รอดจากการถูกบี้หรือเปล่า

เห็นภาพนี้แล้ว สูตรจะไม่ใช่สิ่งที่ต้องท่องอีกต่อไป

บทต่อไปคือ Linear Transformations ที่จะให้ลองขยับตัวเลขในเมทริกซ์เองแบบอินเตอร์แอกทีฟ แล้วดูว่าระนาบขยับตามยังไงบ้าง

ไปลองขยับเมทริกซ์เองเลย→
เครดิต / อ้างอิง