เมทริกซ์การสลับเปลี่ยน
ในทางคณิตศาสตร์โดยเฉพาะในพีชคณิตเชิงเส้นและทฤษฎีเมทริกซ์ เมทริกซ์การสลับตำแหน่งถูกใช้เพื่อแปลง รูปแบบ เวกเตอร์ของเมทริกซ์ไปเป็นรูปแบบเวกเตอร์ของ เมทริกซ์ท รานสโพสโดยเฉพาะอย่างยิ่ง เมทริกซ์การสลับตำแหน่งK ( m , n )คือเมทริกซ์การเรียงสับเปลี่ยนขนาดnm × mn ซึ่งสำหรับเมทริกซ์A ขนาด m × n ใดๆ จะแปลง vec( A ) ไปเป็น vec( AT ) ดังนี้ :
- K ( m , n ) vec( A ) = vec( A T ) .
ในที่นี้ vec( A ) คือเวกเตอร์คอลัมน์ขนาด mn × 1 ที่ได้จากการเรียงคอลัมน์ของAซ้อนกัน:
โดยที่A = [ A ] กล่าวอีกนัยหนึ่ง vec( A ) คือเวกเตอร์ที่ได้จากการแปลงA เป็นเวกเตอร์ ตามลำดับคอลัมน์หลัก ในทำนอง เดียวกัน vec( A T ) คือเวกเตอร์ที่ได้จากการแปลงA เป็นเวกเตอร์ ตามลำดับแถวหลักวงจรและคุณสมบัติอื่นๆ ของการเรียงสับเปลี่ยนนี้ได้รับการศึกษาอย่างกว้างขวางสำหรับอัลกอริทึม การสลับตำแหน่งเมทริกซ์แบบในตัว
ในบริบทของทฤษฎีข้อมูลควอนตัมเมทริกซ์การสลับบางครั้งเรียกว่าเมทริกซ์การสลับหรือตัวดำเนินการสลับ[ 1 ]
คุณสมบัติ
- เมทริกซ์การสลับตำแหน่งเป็น เมทริกซ์การเรียงสับเปลี่ยนชนิดพิเศษและดังนั้นจึงเป็น เมทริก ซ์ตั้งฉาก โดยเฉพาะอย่างยิ่งK ( m , n )เท่ากับโดยที่คือการเรียงสับเปลี่ยนเหนือซึ่ง
- ดีเทอร์มิแนนต์ของK ( m , n )คือ.
- การแทนที่Aด้วยA Tในนิยามของเมทริกซ์การสลับแสดงให้เห็นว่าK ( m , n ) = ( K ( n , m ) ) Tดังนั้น ในกรณีพิเศษที่m = nเมทริกซ์การสลับจะเป็นเมทริกซ์ผกผันและสมมาตร
- การใช้งานหลักของเมทริกซ์การสลับตำแหน่ง และที่มาของชื่อ คือการสลับตำแหน่งของผลคูณโครเนกเกอร์ : สำหรับเมทริกซ์A ขนาด m × n ทุกตัว และเมทริกซ์Bขนาดr × q ทุกตัว
- คุณสมบัตินี้มักใช้ในการพัฒนาสถิติลำดับสูงของเมทริกซ์ความแปรปรวนร่วมของ Wishart [ 2 ]
- กรณีn=q=1สำหรับสมการข้างต้นระบุว่า สำหรับเวกเตอร์คอลัมน์v, w ใดๆ ที่มีขนาดm, rตามลำดับ
- คุณสมบัตินี้เป็นเหตุผลที่ทำให้เมทริกซ์นี้ถูกเรียกว่า "ตัวดำเนินการสลับ" ในบริบทของทฤษฎีสารสนเทศควอนตัม
- รูปแบบที่ชัดเจนสองแบบสำหรับเมทริกซ์การสลับตำแหน่งมีดังนี้: ถ้าe แทน เวกเตอร์แคนอนิกที่ jที่มีมิติr (กล่าวคือ เวกเตอร์ที่มีค่า 1 ใน พิกัดที่ jและ 0 ในที่อื่น) แล้ว
- เมทริกซ์การสลับสามารถแสดงได้ในรูปเมทริกซ์บล็อกดังต่อไปนี้:
- โดยที่ ค่า p,qของเมทริกซ์บล็อกnxm K กำหนดโดย
- ตัวอย่างเช่น,
รหัส
สำหรับเมทริกซ์ทั้งแบบสี่เหลี่ยมจัตุรัสและสี่เหลี่ยมผืนผ้าที่มีทั้งmแถวและnคอลัมน์ สามารถสร้างเมทริกซ์การสลับตำแหน่งได้โดยใช้โค้ดด้านล่าง
ไพธอน
import numpy as npdef comm_mat ( m , n ): # กำหนดการเรียงสับเปลี่ยนที่ใช้โดย K w = np . arange ( m * n ) . reshape (( m , n ), order = "F" ) . T . ravel ( order = "F" )# นำการเรียงสับเปลี่ยนนี้ไป ใช้กับแถว (เช่น แต่ละคอลัมน์) ของเมทริกซ์เอกลักษณ์และส่งคืนผลลัพธ์return np.eye ( m * n )[ w , :]หรืออีกทางเลือกหนึ่งคือ เวอร์ชันที่ไม่ต้องนำเข้าข้อมูล:
# Kronecker delta def delta ( i , j ): กลับint ( i == j )def comm_mat ( m , n ): # กำหนดการเรียงสับเปลี่ยนที่ใช้โดย K v = [ m * j + i for i in range ( m ) for j in range ( n )]# นำการเรียงสับเปลี่ยนนี้ไปใช้กับแถว (เช่น แต่ละคอลัมน์) ของเมทริกซ์เอกลักษณ์I = [[ delta ( i , j ) for j in range ( m * n )] for i in range ( m * n )] return [ I [ i ] for i in v ]MATLAB
ฟังก์ชัน P = com_mat ( m, n )% กำหนดการเรียงสับเปลี่ยนที่ใช้โดย K A = reshape ( 1 : m * n , m , n ); v = reshape ( A ' , 1 , []);% นำการเรียงสับเปลี่ยนนี้ไปใช้กับแถว (เช่น แต่ละคอลัมน์) ของเมทริกซ์เอกลักษณ์P = eye ( m * n ); P = P ( v ,:);อาร์
# เวอร์ชันเมทริกซ์แบบสปาร์ส comm_mat = function ( m , n ){ i = 1 : ( m * n ) j = NULL for ( k in 1 : m ) { j = c ( j , m * 0 : ( n -1 ) + k ) } Matrix :: sparseMatrix ( i = i , j = j , x = 1 ) }ตัวอย่าง
ให้แทนเมทริกซ์ต่อไปนี้:
มีการแปลงเป็นเวกเตอร์แบบเรียงตามคอลัมน์และเรียงตามแถว ดังต่อไปนี้ (ตามลำดับ):
เมทริกซ์การสลับที่เกี่ยวข้องคือ
(โดยแต่ละค่าหมายถึงศูนย์) และผลลัพธ์ที่ได้เป็นไปตามที่คาดไว้ดังนี้: