เมทริกซ์คืออะไร?
เมทริกซ์ที่มีm
คอลัมน์และn
แถวหมายถึงฟังก์ชันที่ใช้เวกเตอร์*พร้อมm
องค์ประกอบ (หรือพิกัด) และสร้างเวกเตอร์ที่มีn
องค์ประกอบ
จากสิ่งนี้คุณสามารถสังเกตได้ว่าถ้าหากเมทริกซ์นั้นเป็นสี่เหลี่ยมจตุรัสของเวกเตอร์จะไม่เปลี่ยนแปลง เช่น. คุณได้รับเวกเตอร์ 3 มิติจากการแปลงเวกเตอร์ 3 มิติ, 2D จาก 2D และอื่น ๆ
* : ในฟิสิกส์มักใช้เวกเตอร์เพื่อระบุแรงหรือ "อิทธิพล" อื่น ๆ ที่ "เคลื่อนที่ไปรอบ ๆ " สิ่งต่าง ๆ เช่นความเร็วหรือความเร่ง แต่ไม่มีอะไรหยุดคุณจากการใช้เวกเตอร์เพื่อแสดงจุดหรืออาเรย์ของตัวเลขใด ๆ (บางไลบรารีและภาษาโปรแกรมแม้ใช้ "เวกเตอร์" เพื่อหมายถึง "1D อาเรย์") สำหรับใช้กับเมทริกซ์อะไรก็ได้ที่เป็นองค์ประกอบของเวกเตอร์ของคุณ (แม้จะเป็นสตริงหรือสี) ตราบใดที่คุณมีวิธีเพิ่มลบและคูณพวกมันด้วยองค์ประกอบใดก็ตามของเมทริกซ์ของคุณ ดังนั้นชื่อเวกเตอร์ซึ่งหมายถึง "ผู้ให้บริการ" - มันมีหรือถือค่าสำหรับคุณ
การคูณเมทริกซ์หมายความว่าอย่างไร
ถ้าเมทริกซ์เป็นฟังก์ชันฟังก์ชันชนิดใด ? ฟังก์ชั่นทำอะไร? สูตรสำหรับมันถูกกำหนดโดยองค์ประกอบของเมทริกซ์ ลองเรียกอินพุตu
, เอาท์พุทv
, เมทริกซ์M
(การคูณM*u=v
นั้นเหมือนกันf(u)=v
) และu(i)
ให้i
องค์ประกอบที่ของu
(องค์ประกอบที่ 2 คือพิกัด y เป็นต้น) สำหรับเมทริกซ์, M(i,j)
หมายความว่าแถวคอลัมน์i
j
การสร้างองค์ประกอบv(1)
ซึ่งเป็นผลลัพธ์แรกจะอธิบายโดยแถวแรกของเมทริกซ์ u(1)
ครั้งM(1,1)
บวกu(2)
ครั้งM(1,2)
... บวกครั้งu(i)
M(1,i)
เมทริกซ์นั้นดูคล้ายกับภาษาการเขียนโปรแกรมที่ง่ายมากซึ่งเหมาะสำหรับฟังก์ชั่นการเขียนโปรแกรมที่ทำงานโดยการสับอินพุตอินพุตเพิ่มเข้ากับตัวเอง ฯลฯ**
การจินตนาการว่าคุณกำลังทำงานกับองค์ประกอบหนึ่งของเอาต์พุตในแต่ละครั้งดังนั้นคุณจึงใช้เมทริกซ์ทีละแถวเท่านั้น คุณเขียนในu
แนวนอน คุณเขียนแถว ith ของM
ด้านล่าง คุณคูณทุกคู่ด้านบน / ด้านล่างและเขียนผลิตภัณฑ์ด้านล่างจากนั้นเพิ่มผลิตภัณฑ์ v
ทำซ้ำสำหรับทุกแถวที่จะได้รับองค์ประกอบของทุก (ตอนนี้คุณจะเห็นว่าทำไมm
โดยn
เมทริกซ์ต้องดำเนินการบนm
เวกเตอร์และผลิตn
เวกเตอร์.)
อีกวิธีที่จะคิดเกี่ยวกับเรื่องนี้ - สมมติว่าเรากำลังทำการแปลง 3D เป็น 3D ดังนั้นเมทริกซ์ 3x3 (หรือการแปลง 3Dที่มักถูกเรียกเพราะคุณสามารถทำเป็น "ฟังก์ชั่น" นี้คือ "เคลื่อน" จุด 3D แม้ว่าจริงๆแล้วมัน เพียงแค่เปลี่ยนตัวเลข) [1 2 0]
สมมติว่าแถวแรกคือ ซึ่งหมายความว่าหากต้องการผลลัพธ์ x ผลลัพธ์ได้รับ 1 ของอินพุต x, 2 ของอินพุต y และ 0 ของอินพุต z ดังนั้นมันจึงเป็นสูตร
** : หากเมทริกซ์เป็นภาษาการเขียนโปรแกรมแสดงว่าทัวริงยังไม่สมบูรณ์
การคูณเมทริกซ์สองค่าหมายความว่าอย่างไร
ถ้าทั้งคู่มีขนาดที่เหมาะสมA*B
แปลว่า "ฟังก์ชั่นที่ใช้ก่อนB
แล้วA
" คุณสามารถดูได้ว่าทำไมข้อ จำกัด เรื่องขนาดของการคูณจึงมีอยู่เพราะขนาดเป็นตัวกำหนดขนาดอินพุตและเอาต์พุตและเมทริกซ์ตัวหนึ่งใช้เอาต์พุตของอีกตัว ทำไมการคูณหมายถึงรวมฟังก์ชั่น มันง่ายกว่าที่จะสังเกตเห็นว่ามันจะต้องเป็น หากA*u
เป็นเช่นเดียวกับf(u)
และB*u
เป็นเช่นเดียวg(u)
แล้วf(g(u))
เป็นเช่นเดียวกับที่เป็นเช่นเดียวกับf(B*u)
A*(B*u)
ในทำนองเดียวกันการใช้งานซ้ำ ๆ ของฟังก์ชั่นเดียวกันสามารถแสดงเป็นพลังเนื่องจากA*A*A
หมายถึงการใช้ฟังก์ชั่นที่A
แสดงถึงสามครั้ง
เมทริกซ์มีประโยชน์อย่างไร?
การเปลี่ยนแปลงที่ดีเช่นไรnew_x = 1*x+2*y+0*z
(ถ้าแถวแรกคือ [1 2 0]) ไม่ชัดเจนมากนัก แต่ลองดูเมทริกซ์ 2D อีกตัวเพื่ออธิบาย เมทริกซ์คือ:
[ 0 1
1 0 ]
หรือ[0 1; 1 0]
ใช้สัญลักษณ์ Matlab ที่สะดวก เมทริกซ์นี้ทำอะไร มันแปลงเวกเตอร์ 2 มิติแบบนี้: สำหรับ x ของผลลัพธ์ใช้ 1 ใน y ของอินพุต สำหรับ y ของผลลัพธ์ให้ใช้ 1 ของ x ของอินพุต เราได้สลับพิกัด x และ y ของอินพุต - เมทริกซ์นี้สะท้อนถึงจุดที่เกี่ยวกับเส้น x = y นั่นเป็นประโยชน์! โดยการขยายคุณจะเห็นว่าการฝึกอบรมทั้งหมดที่มี 1s ตามเส้นSW - NEนั้น คุณสามารถดูได้ว่าทำไมเมทริกซ์เอกลักษณ์ให้คุณป้อนกลับ (สำหรับ x ของเอาต์พุต, ใช้ x ของอินพุต, สำหรับ y ของเอาต์พุต, ใช้ y ของอินพุต ... )
ตอนนี้คุณจะเห็นว่าทำไมสัญลักษณ์จึงเป็นเช่น Xx
, Yx
- พวกเขาหมายถึงวิธีการมากของการป้อนข้อมูลX
, Y
ฯลฯ x
จะเข้าสู่การส่งออก
เมทริกซ์มีประโยชน์อย่างไร?
การเปลี่ยนแปลงอื่น ๆ ที่คุณสามารถทำได้? คุณสามารถปรับขนาดโดยใช้เมทริกซ์เอกลักษณ์ แต่ด้วยจำนวนที่แตกต่างกันมากกว่า 1 ในแนวทแยงมุม ตัวอย่างเช่น[2.5 0; 0 22.5]
จะคูณทุกพิกัดของอินพุตเป็น 2.5 และถ้าคุณใช้เมทริกซ์นี้กับทุกจุดในรูปภาพรูปภาพจะมีขนาดใหญ่ 2.5 หากคุณใส่ 2.5 ในหนึ่งแถว ( [2.5 0; 0 1]
) ดังนั้นพิกัด x เท่านั้นที่จะถูกคูณดังนั้นคุณจะขยายตาม x เท่านั้น
เมทริกซ์อื่น ๆ สามารถให้การแปลงรูปแบบอื่น ๆ เช่น "เอียง" ซึ่งมีองศาที่มีประโยชน์ต่างกัน โดยส่วนตัวแล้วความลาดเอียงเป็นสิ่งที่ฉันชอบน้อยที่สุดเพราะเมทริกซ์ดูเรียบง่าย แต่การเปลี่ยนแปลงตัวเองไม่ค่อยทำอะไรเลยยกเว้นภาพซ้อน สิ่งที่มีประโยชน์คือ "การหมุน" - คุณจะหมุนจุดได้อย่างไร? ลองหาตำแหน่งของจุด(x, y)
หลังจากหมุนตามtheta
องศาทวนเข็มนาฬิกาเกี่ยวกับจุดกำเนิด คุณจะพบว่าพิกัด x และ y ใหม่นั้นทั้งสองออกมาจากการคูณค่า x และ y เก่าด้วยไซน์และโคไซน์ของทีต้า คุณควรจะสามารถเขียนเมทริกซ์การหมุนได้อย่างง่ายดายโดยใช้ไซน์และโคไซน์ซึ่งสอดคล้องกับฟังก์ชันนี้
ด้วยเมทริกซ์ที่ไม่ใช่สแควร์คุณสามารถเปลี่ยนขนาดของอินพุตได้ การเปลี่ยนอินพุต 2D เป็น 3D นั้นไม่มีประโยชน์มากเพราะเป็นการยากที่จะ "ผลิต" สิ่งที่จะนำมาใส่ในพิกัดใหม่ แต่การแปลง 3D เป็น 2D นั้นมีประโยชน์มาก เหนือสิ่งอื่นใดนี่คือวิธีที่คอมพิวเตอร์ของคุณรู้กับโครงการ***ฉาก 3 มิติเป็นภาพ 2D วาดภาพบนหน้าจอของคุณ
เนื่องจากเวกเตอร์สามารถเก็บสิ่งที่แตกต่างกันคุณสามารถอธิบายเมทริกซ์ที่เข้ารหัสสตริงอักขระ n ครั้งโดยการสับพวกเขาไปรอบ ๆ หรือ "คูณ" พวกเขา (คุณจะต้องมาพร้อมกับฟังก์ชั่นการคูณ / นอกจากนี้)
*** : เมื่อคุณฉายคุณใช้วัตถุ 3 มิติเช่นรูปปั้นส่องแสงบนมันและดูว่าเงา 2D แบบใดที่ตกลงบนผนัง
ข้อ จำกัด ของเมทริกซ์คืออะไร?
คุณสามารถทำทุกฟังก์ชั่นด้วยเมทริกซ์ได้หรือไม่? ไม่การคิดแบบกราฟิกเป็นการยากที่จะจินตนาการถึงสิ่งที่เมทริกซ์ไม่สามารถทำได้ (แต่มีอยู่แล้ว: เอฟเฟกต์ "หมุนวน" ไม่สามารถทำได้) แต่ที่นี่คือตัวอย่างง่าย: ฟังก์ชั่นการพูด Let 's f
เป็นเช่นนั้นf(u)
จะช่วยให้คุณกลับมาu
ด้วยทุกองค์ประกอบ Squared คุณจะเห็นว่าคุณไม่สามารถเขียนเมทริกซ์สำหรับสิ่งนี้: ด้วยเมทริกซ์มีเพียงสิ่งอำนวยความสะดวกสำหรับการอธิบายสูตรอาหารที่คูณพิกัดด้วยจำนวนคงที่จึงไม่มีฟังก์ชั่นแฟนซีอื่น ๆ เช่นกำลังแสดง
**** : นี่คือสาเหตุที่เรียกว่าพีชคณิตเชิงเส้น - ฟังก์ชั่นพาวเวอร์ไม่ใช่แบบเส้นตรงมันไม่ได้สร้างเส้นตรงเมื่อพล็อต
ในแถวพิเศษแปลก ๆ ในเมทริกซ์ 4D
ทีนี้ทำไมเมทริกซ์ในตัวอย่าง 4 คูณ 4 ของคุณคืออะไร? สิ่งนี้หมายความว่าพื้นที่ 4 มิติหรือไม่ เราไม่มีคอมพิวเตอร์ 4D ดังนั้นทำไม? นี่เป็นกลอุบายที่น่าสนใจเกี่ยวกับเมทริกซ์ที่เกี่ยวข้องกับจุดก่อนหน้าเกี่ยวกับการดำเนินการเชิงเส้น
เกี่ยวกับฟังก์ชั่นที่ไม่สามารถทำได้ด้วยเมทริกซ์: เมทริกซ์สำหรับการย้ายจุด 2 มิติโดย 2 หน่วยไปทางขวาคืออะไร (ซึ่งก่อให้เกิดจุด(x+2, y)
อีกครั้งเราติดอยู่มีวิธีการคูณอินพุต แต่ไม่มีวิธีเพิ่ม ค่าคงที่สำหรับการทำงานแบบ 2D เคล็ดลับคือการแกล้งคุณไม่ได้อยู่ในพื้นที่ 2 มิติ แต่ในพื้นที่ 3 มิติยกเว้นความสูง (พิกัด z หรือองค์ประกอบที่ 3) ของทุกสิ่งอยู่เสมอ 1 (มันค่อนข้างคล้ายกับว่าจักรวาล 2 มิติเป็นอย่างไร เพียงแค่ "จาน" นอนราบไปตามพื้นของจักรวาล 3 มิติ - ในกรณีนี้พิกัดที่สามจะเป็น 0 เสมอ) จากนั้นคุณสามารถใช้เวทมนตร์นี้เป็นพิกัดสุดท้ายเป็นค่าคงที่เพราะคุณรู้ว่ามันเป็น 1 เสมอสำหรับทุกอินพุต
เช่นเดียวกันสำหรับการย้ายจุด 3D คุณต้องมีพิกัด 4D นั่นเป็นเหตุผลที่ว่าทำไมเมทริกซ์การแปลง 3D ทั้งหมดที่คุณเห็นจะ[0 0 0 1]
เป็นแถวสุดท้าย - คุณต้องไม่เปลี่ยนมิติที่ 4 มิฉะนั้นผลลัพธ์จะซับซ้อนเกินกว่าที่จะแสดงในรูปแบบ 3 มิติ!