คูณเมทริกซ์สมมาตรด้วยเวกเตอร์ การคูณเมทริกซ์ คุณสมบัติของการคูณเมทริกซ์-เวกเตอร์

ในบทเรียนที่แล้ว เราดูกฎสำหรับการบวกและการลบเมทริกซ์ นี่เป็นการดำเนินการง่ายๆ ที่นักเรียนส่วนใหญ่เข้าใจได้ทันที

อย่างไรก็ตาม คุณยินดีตั้งแต่เนิ่นๆ ของแจกฟรีจบลงแล้ว - มาดูการคูณกันดีกว่า ฉันจะเตือนคุณทันที: การคูณเมทริกซ์สองตัวนั้นไม่ใช่การคูณตัวเลขในเซลล์ที่มีพิกัดเดียวกันเลยอย่างที่คุณคิด ทุกอย่างสนุกมากขึ้นที่นี่ และเราจะต้องเริ่มต้นด้วยคำจำกัดความเบื้องต้น

เมทริกซ์ที่ตรงกัน

ลักษณะที่สำคัญที่สุดอย่างหนึ่งของเมทริกซ์คือขนาดของมัน เราได้พูดคุยเกี่ยวกับเรื่องนี้มาแล้วเป็นร้อยครั้ง: การเขียน $A=\left[ m\times n \right]$ หมายความว่าเมทริกซ์มีแถว $m$ และคอลัมน์ $n$ พอดี เราได้พูดคุยไปแล้วถึงวิธีที่จะไม่สับสนระหว่างแถวกับคอลัมน์ สิ่งอื่นที่สำคัญในขณะนี้

คำนิยาม. เมทริกซ์ในรูปแบบ $A=\left[ m\times n \right]$ และ $B=\left[ n\times k \right]$ โดยที่จำนวนคอลัมน์ในเมทริกซ์แรกตรงกับจำนวนแถว ประการที่สองเรียกว่าสม่ำเสมอ

อีกครั้ง: จำนวนคอลัมน์ในเมทริกซ์แรกเท่ากับจำนวนแถวในเมทริกซ์ที่สอง! จากที่นี่เราได้ข้อสรุปสองประการพร้อมกัน:

  1. ลำดับของเมทริกซ์มีความสำคัญสำหรับเรา ตัวอย่างเช่น เมทริกซ์ $A=\left[ 3\times 2 \right]$ และ $B=\left[ 2\times 5 \right]$ มีความสอดคล้องกัน (2 คอลัมน์ในเมทริกซ์แรกและ 2 แถวในเมทริกซ์ที่สอง) แต่ในทางกลับกัน - เมทริกซ์ $B=\left[ 2\times 5 \right]$ และ $A=\left[ 3\times 2 \right]$ ไม่สอดคล้องกันอีกต่อไป (5 คอลัมน์ในเมทริกซ์แรกไม่ใช่ 3 แถว ในวินาที)
  2. สามารถตรวจสอบความสม่ำเสมอได้อย่างง่ายดายโดยการเขียนมิติทั้งหมดทีละรายการ จากตัวอย่างจากย่อหน้าก่อนหน้า: “3 2 2 5” - มีตัวเลขเหมือนกันตรงกลาง ดังนั้นเมทริกซ์จึงมีความสอดคล้องกัน แต่ “2 5 3 2” ไม่สอดคล้องกันเนื่องจากมีตัวเลขตรงกลางต่างกัน

นอกจากนี้ Captain Obviousness ดูเหมือนจะบอกเป็นนัยว่าเมทริกซ์จตุรัสที่มีขนาดเท่ากัน $\left[ n\times n \right]$ นั้นสอดคล้องกันเสมอ

ในทางคณิตศาสตร์ เมื่อลำดับของรายการวัตถุมีความสำคัญ (เช่น ในคำจำกัดความที่กล่าวไว้ข้างต้น ลำดับของเมทริกซ์มีความสำคัญ) เรามักจะพูดถึงคู่อันดับ เราพบกันที่โรงเรียน ฉันคิดว่ามันไม่ใช่เรื่องง่ายเลยที่พิกัด $\left(1;0 \right)$ และ $\left(0;1 \right)$ จะกำหนดจุดต่างๆ บนเครื่องบิน

ดังนั้น: พิกัดก็เรียงลำดับคู่ที่ประกอบด้วยตัวเลขเช่นกัน แต่ไม่มีอะไรขัดขวางไม่ให้คุณสร้างคู่ดังกล่าวจากเมทริกซ์ จากนั้นเราสามารถพูดได้ว่า: “คู่ลำดับของเมทริกซ์ $\left(A;B \right)$ จะสอดคล้องกันถ้าจำนวนคอลัมน์ในเมทริกซ์แรกเท่ากับจำนวนแถวในเมทริกซ์ที่สอง”

แล้วไงล่ะ?

ความหมายของการคูณ

พิจารณาเมทริกซ์ที่สอดคล้องกันสองตัว: $A=\left[ m\times n \right]$ และ $B=\left[ n\times k \right]$ และเรากำหนดการดำเนินการคูณให้กับพวกมัน

คำนิยาม. ผลคูณของเมทริกซ์ที่ตรงกันสองตัว $A=\left[ m\times n \right]$ และ $B=\left[ n\times k \right]$ คือเมทริกซ์ใหม่ $C=\left[ m\times k \ ขวา] $ องค์ประกอบที่คำนวณโดยใช้สูตร:

\[\begin(align) & ((c)_(i;j))=((a)_(i;1))\cdot ((b)_(1;j))+((a)_ (i;2))\cdot ((b)_(2;j))+\ldots +((a)_(i;n))\cdot ((b)_(n;j))= \\ & =\sum\limits_(t=1)^(n)(((a)_(i;t))\cdot ((b)_(t;j))) \end(align)\]

ผลิตภัณฑ์ดังกล่าวแสดงด้วยวิธีมาตรฐาน: $C=A\cdot B$

ผู้ที่เห็นคำจำกัดความนี้เป็นครั้งแรกจะมีคำถามสองข้อทันที:

  1. นี่มันเกมดุเดือดประเภทไหนกันนะ?
  2. ทำไมมันถึงยากขนาดนี้?

ก่อนอื่นสิ่งแรก เริ่มจากคำถามแรกกันก่อน ดัชนีทั้งหมดนี้หมายถึงอะไร? และจะไม่ทำผิดพลาดเมื่อทำงานกับเมทริกซ์จริงได้อย่างไร?

ก่อนอื่น เราสังเกตว่าบรรทัดยาวสำหรับการคำนวณ $((c)_(i;j))$ (ฉันใส่เครื่องหมายอัฒภาคระหว่างดัชนีเป็นพิเศษเพื่อไม่ให้สับสน แต่ไม่จำเป็นต้องใส่เข้าไป ทั่วไป - ฉันเองก็เบื่อที่จะพิมพ์สูตรในคำจำกัดความ) จริงๆ แล้วมันเป็นกฎง่ายๆ:

  1. ใช้แถว $i$th ในเมทริกซ์แรก
  2. นำคอลัมน์ $j$th ในเมทริกซ์ที่สอง
  3. เราได้ตัวเลขสองลำดับ เราคูณองค์ประกอบของลำดับเหล่านี้ด้วยตัวเลขเดียวกัน จากนั้นจึงบวกผลลัพธ์ที่ได้

กระบวนการนี้เข้าใจง่ายจากภาพ:


โครงการคูณเมทริกซ์สองตัว

อีกครั้ง: เราแก้ไขแถว $i$ ในเมทริกซ์แรก คอลัมน์ $j$ ในเมทริกซ์ที่สอง คูณองค์ประกอบด้วยตัวเลขเดียวกัน จากนั้นบวกผลลัพธ์ที่ได้ - เราจะได้ $((c)_(ij))$ . และอื่นๆ สำหรับ $1\le i\le m$ และ $1\le j\le k$ ทั้งหมด เหล่านั้น. “ความวิปริต” ดังกล่าวจะมีทั้งหมด $m\times k$

ในความเป็นจริง เราได้พบการคูณเมทริกซ์ในหลักสูตรของโรงเรียนแล้ว เพียงในรูปแบบที่ลดลงอย่างมากเท่านั้น ให้เวกเตอร์ได้รับ:

\[\begin(align) & \vec(a)=\left(((x)_(a));((y)_(a));((z)_(a)) \right); \\ & \overrightarrow(b)=\left(((x)_(b));((y)_(b));((z)_(b)) \right) \\ \end(จัดแนว)\]

จากนั้นผลคูณสเกลาร์จะเท่ากับผลรวมของผลิตภัณฑ์แบบคู่:

\[\overrightarrow(a)\times \overrightarrow(b)=((x)_(a))\cdot ((x)_(b))+((y)_(a))\cdot ((y )_(b))+((z)_(ก))\cdot ((z)_(b))\]

โดยพื้นฐานแล้วในสิ่งเหล่านั้น ปีที่ห่างไกลเมื่อต้นไม้เขียวขึ้นและท้องฟ้าสดใสขึ้น เราก็คูณเวกเตอร์แถว $\overrightarrow(a)$ ด้วยเวกเตอร์คอลัมน์ $\overrightarrow(b)$

วันนี้ไม่มีอะไรเปลี่ยนแปลง เพียงแต่ตอนนี้มีเวกเตอร์แถวและคอลัมน์เหล่านี้มากขึ้น

แต่พอทฤษฎี! เรามาดูกันดีกว่า ตัวอย่างจริง. เริ่มจากกรณีที่ง่ายที่สุดกันก่อน - เมทริกซ์จตุรัส

การคูณเมทริกซ์กำลังสอง

ภารกิจที่ 1. ทำการคูณ:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]\cdot \left[ \begin(array)(* (35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]\]

สารละลาย. เรามีเมทริกซ์สองตัว: $A=\left[ 2\times 2 \right]$ และ $B=\left[ 2\times 2 \right]$ เห็นได้ชัดว่ามีความสอดคล้องกัน (เมทริกซ์จัตุรัสที่มีขนาดเท่ากันมีความสอดคล้องกันเสมอ) ดังนั้นเราจึงทำการคูณ:

\[\begin(align) & \left[ \begin(array)(*(35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]\cdot \left[ \ start(array)(*(35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]=\left[ \begin(array)(*(35)(r)) 1\cdot \left(-2 \right)+2\cdot 3 & 1\cdot 4+2\cdot 1 \\ -3\cdot \left(-2 \right)+4\cdot 3 & -3\cdot 4+4\cdot 1 \\\end(array) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 4 & 6 \\ 18 & -8 \\\ สิ้นสุด (อาร์เรย์) \ ขวา] \end(จัดแนว)\]

นั่นคือทั้งหมด!

คำตอบ: $\left[ \begin(array)(*(35)(r))4 & 6 \\ 18 & -8 \\\end(array) \right]$

ภารกิจที่ 2 ทำการคูณ:

\[\left[ \begin(เมทริกซ์) 1 & 3 \\ 2 & 6 \\\end(เมทริกซ์) \right]\cdot \left[ \begin(array)(*(35)(r))9 & 6 \\ -3 & -2 \\\end(อาร์เรย์) \right]\]

สารละลาย. ขอย้ำอีกครั้งว่าเมทริกซ์มีความสอดคล้องกัน ดังนั้นเราจึงดำเนินการต่อไปนี้:\[\]

\[\begin(align) & \left[ \begin(เมทริกซ์) 1 & 3 \\ 2 & 6 \\\end(เมทริกซ์) \right]\cdot \left[ \begin(array)(*(35)( ) r)) 9 & 6 \\ -3 & -2 \\\end(array) \right]=\left[ \begin(array)(*(35)(r)) 1\cdot 9+3\cdot \ left(-3 \right) & 1\cdot 6+3\cdot \left(-2 \right) \\ 2\cdot 9+6\cdot \left(-3 \right) & 2\cdot 6+6 \ cdot \left(-2 \right) \\\end(array) \right]= \\ & =\left[ \begin(เมทริกซ์) 0 & 0 \\ 0 & 0 \\\end(เมทริกซ์) \right ] . \end(จัดแนว)\]

อย่างที่คุณเห็น ผลลัพธ์ที่ได้คือเมทริกซ์ที่เต็มไปด้วยเลขศูนย์

คำตอบ: $\left[ \begin(matrix) 0 & 0 \\ 0 & 0 \\\end(matrix) \right]$

จากตัวอย่างข้างต้น เห็นได้ชัดว่าการคูณเมทริกซ์ไม่ใช่การดำเนินการที่ซับซ้อน อย่างน้อยสำหรับเมทริกซ์จัตุรัสขนาด 2 คูณ 2

ในกระบวนการคำนวณ เราได้รวบรวมเมทริกซ์ระดับกลาง โดยที่เราอธิบายโดยตรงว่าตัวเลขใดรวมอยู่ในเซลล์ใดเซลล์หนึ่ง นี่คือสิ่งที่ควรทำเมื่อแก้ไขปัญหาจริง

คุณสมบัติพื้นฐานของผลคูณเมทริกซ์

โดยสังเขป. การคูณเมทริกซ์:

  1. ไม่สับเปลี่ยน: $A\cdot B\ne B\cdot A$ ในกรณีทั่วไป แน่นอนว่า มีเมทริกซ์พิเศษซึ่งมีความเท่าเทียมกัน $A\cdot B=B\cdot A$ (เช่น ถ้า $B=E$ เป็นเมทริกซ์เอกลักษณ์) แต่ในกรณีส่วนใหญ่วิธีนี้ใช้ไม่ได้ผล ;
  2. ในทางสัมพันธ์กัน: $\left(A\cdot B \right)\cdot C=A\cdot \left(B\cdot C \right)$ ไม่มีตัวเลือกตรงนี้: เมทริกซ์ที่อยู่ติดกันสามารถคูณได้โดยไม่ต้องกังวลว่าเมทริกซ์สองตัวนี้จะอยู่ทางซ้ายหรือทางขวา
  3. แบบกระจาย: $A\cdot \left(B+C \right)=A\cdot B+A\cdot C$ และ $\left(A+B \right)\cdot C=A\cdot C+B\cdot C $ (เนื่องจากการไม่สับเปลี่ยนของผลิตภัณฑ์ จึงจำเป็นต้องระบุการกระจายทางขวาและซ้ายแยกกัน

และตอนนี้ - ทุกอย่างเหมือนเดิม แต่มีรายละเอียดมากขึ้น

การคูณเมทริกซ์มีหลายวิธีคล้ายกับการคูณจำนวนแบบคลาสสิก แต่มีความแตกต่าง ที่สำคัญที่สุดก็คือ โดยทั่วไปแล้ว การคูณเมทริกซ์คือการไม่สลับสับเปลี่ยน.

ลองดูเมทริกซ์จากปัญหาที่ 1 อีกครั้ง เรารู้ผลคูณโดยตรงของมันแล้ว:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]\cdot \left[ \begin(array)(* (35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]=\left[ \begin(array)(*(35)(r))4 & 6 \\ 18 & -8 \\\end(อาร์เรย์) \right]\]

แต่ถ้าเราสลับเมทริกซ์ เราจะได้ผลลัพธ์ที่แตกต่างไปจากเดิมอย่างสิ้นเชิง:

\[\left[ \begin(array)(*(35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]\cdot \left[ \begin(array)(* (35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]=\left[ \begin(เมทริกซ์) -14 & 4 \\ 0 & 10 \\\end(เมทริกซ์) )\ขวา]\]

ปรากฎว่า $A\cdot B\ne B\cdot A$ นอกจากนี้ การดำเนินการคูณถูกกำหนดไว้สำหรับเมทริกซ์ที่สอดคล้องกันเท่านั้น $A=\left[ m\times n \right]$ และ $B=\left[ n\times k \right]$ แต่ก็ไม่มีใครรับประกันได้ว่า จะยังคงสม่ำเสมอ หากมีการสับเปลี่ยน ตัวอย่างเช่น เมทริกซ์ $\left[ 2\times 3 \right]$ และ $\left[ 3\times 5 \right]$ ค่อนข้างสอดคล้องกันในลำดับที่ระบุ แต่เป็นเมทริกซ์เดียวกัน $\left[ 3\times 5 \right] $ และ $\left[ 2\times 3 \right]$ ที่เขียนในลำดับย้อนกลับไม่สอดคล้องกันอีกต่อไป เศร้า. :(

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

อย่างไรก็ตาม การคูณเมทริกซ์มีความเชื่อมโยง:

\[\left(A\cdot B \right)\cdot C=A\cdot \left(B\cdot C \right)\]

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

ในปัญหาจริง บ่อยครั้งเราต้องคูณเมทริกซ์กำลังสองที่มีขนาด $\left[ n\times n \right]$ เซตของเมทริกซ์ดังกล่าวทั้งหมดเขียนแทนด้วย $((M)^(n))$ (นั่นคือ รายการ $A=\left[ n\times n \right]$ และ \ หมายถึงสิ่งเดียวกัน) และมันจะ จำเป็นต้องมีเมทริกซ์ $E$ ซึ่งเรียกว่าเมทริกซ์เอกลักษณ์

คำนิยาม. เมทริกซ์เอกลักษณ์ที่มีขนาด $n$ คือเมทริกซ์ $E$ โดยที่สำหรับเมทริกซ์จัตุรัสใดๆ $A=\left[ n\times n \right]$ จะมีความเท่าเทียมกัน:

เมทริกซ์ดังกล่าวจะมีลักษณะเหมือนเดิมเสมอ โดยมีเมทริกซ์อยู่บนเส้นทแยงมุมหลัก และมีเลขศูนย์อยู่ในเซลล์อื่นๆ ทั้งหมด

\[\begin(align) & A\cdot \left(B+C \right)=A\cdot B+A\cdot C; \\ & \left(A+B \right)\cdot C=A\cdot C+B\cdot C. \\ \end(จัดแนว)\]

กล่าวอีกนัยหนึ่ง หากคุณต้องการคูณเมทริกซ์หนึ่งด้วยผลรวมของเมทริกซ์สองตัว คุณสามารถคูณเมทริกซ์ด้วย "อีกสองตัว" แต่ละตัวแล้วบวกผลลัพธ์ได้ ในทางปฏิบัติ เรามักจะต้องทำการดำเนินการตรงกันข้าม: เราสังเกตเห็นเมทริกซ์เดียวกัน นำออกจากวงเล็บ ทำการบวก และทำให้ชีวิตของเราง่ายขึ้น :)

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

โอเค, ทั้งหมดนี้เป็นเพียงเทพนิยายเกี่ยวกับเมทริกซ์จตุรัส แล้วของสี่เหลี่ยมล่ะ?

กรณีของเมทริกซ์สี่เหลี่ยม

แต่ไม่มีอะไร - ทุกอย่างเหมือนกับสี่เหลี่ยมจัตุรัส

ภารกิจที่ 3 ทำการคูณ:

\[\left[ \begin(เมทริกซ์) \begin(เมทริกซ์) 5 \\ 2 \\ 3 \\\end(เมทริกซ์) & \begin(เมทริกซ์) 4 \\ 5 \\ 1 \\\end(เมทริกซ์) \ \\end(เมทริกซ์) \right]\cdot \left[ \begin(array)(*(35)(r)) -2 & 5 \\ 3 & 4 \\\end(array) \right]\]

สารละลาย. เรามีเมทริกซ์สองตัว: $A=\left[ 3\times 2 \right]$ และ $B=\left[ 2\times 2 \right]$ ลองเขียนตัวเลขที่ระบุขนาดเป็นแถว:

อย่างที่คุณเห็นตัวเลขสองตัวตรงกลางตรงกัน ซึ่งหมายความว่าเมทริกซ์มีความสม่ำเสมอและสามารถคูณได้ ยิ่งไปกว่านั้น ที่เอาต์พุต เราจะได้เมทริกซ์ $C=\left[ 3\times 2 \right]$:

\[\begin(align) & \left[ \begin(เมทริกซ์) \begin(เมทริกซ์) 5 \\ 2 \\ 3 \\\end(เมทริกซ์) & \begin(เมทริกซ์) 4 \\ 5 \\ 1 \\ \end(เมทริกซ์) \\\end(เมทริกซ์) \right]\cdot \left[ \begin(array)(*(35)(r)) -2 & 5 \\ 3 & 4 \\\end(array) \right]=\left[ \begin(array)(*(35)(r)) 5\cdot \left(-2 \right)+4\cdot 3 & 5\cdot 5+4\cdot 4 \\ 2 \cdot \left(-2 \right)+5\cdot 3 & 2\cdot 5+5\cdot 4 \\ 3\cdot \left(-2 \right)+1\cdot 3 & 3\cdot 5+1 \cdot 4 \\\end(array) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 2 & 41 \\ 11 & 30 \\ -3 & 19 \ \\end(อาร์เรย์) \right] \end(จัดแนว)\]

ทุกอย่างชัดเจน: เมทริกซ์สุดท้ายมี 3 แถวและ 2 คอลัมน์ ค่อนข้าง $=\left[ 3\times 2 \right]$

คำตอบ: $\left[ \begin(array)(*(35)(r)) \begin(array)(*(35)(r)) 2 \\ 11 \\ -3 \\\end(array) & \begin(เมทริกซ์) 41 \\ 30 \\ 19 \\\end(เมทริกซ์) \\\end(array) \right]$

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

ปัญหาที่ 4. ค้นหาผลคูณของเมทริกซ์ที่เป็นไปได้แบบคู่:

\\]; $B=\left[ \begin(เมทริกซ์) \begin(เมทริกซ์) 0 \\ 2 \\ 0 \\ 4 \\\end(เมทริกซ์) & \begin(เมทริกซ์) 1 \\ 0 \\ 3 \\ 0 \ \\end(เมทริกซ์) \\\end(เมทริกซ์) \right]$; $C=\left[ \begin(เมทริกซ์)0 & 1 \\ 1 & 0 \\\end(เมทริกซ์) \right]$

สารละลาย. ขั้นแรก ให้เขียนขนาดของเมทริกซ์:

\;\ B=\left[ 4\times 2 \right];\ C=\left[ 2\times 2 \right]\]

เราพบว่าเมทริกซ์ $A$ สามารถกระทบยอดกับเมทริกซ์ $B$ เท่านั้น เนื่องจากจำนวนคอลัมน์ของ $A$ คือ 4 และมีเพียง $B$ เท่านั้นที่มีจำนวนแถวนี้ ดังนั้นเราจึงสามารถค้นหาผลิตภัณฑ์ได้:

\\cdot \left[ \begin(array)(*(35)(r)) 0 & 1 \\ 2 & 0 \\ 0 & 3 \\ 4 & 0 \\\end(array) \right]=\ ซ้าย[ \begin(array)(*(35)(r))-10 & 7 \\ 10 & 7 \\\end(array) \right]\]

ฉันแนะนำให้ผู้อ่านทำตามขั้นตอนกลางอย่างอิสระ ฉันจะทราบเพียงว่าควรกำหนดขนาดของเมทริกซ์ผลลัพธ์ล่วงหน้าจะดีกว่าก่อนที่จะคำนวณ:

\\cdot \left[ 4\times 2 \right]=\left[ 2\times 2 \right]\]

กล่าวอีกนัยหนึ่ง เราเพียงแต่ลบค่าสัมประสิทธิ์ "การผ่าน" ที่รับรองความสอดคล้องของเมทริกซ์ออก

มีทางเลือกอะไรอีกบ้าง? แน่นอนว่า เราสามารถหา $B\cdot A$ ได้ เนื่องจาก $B=\left[ 4\times 2 \right]$, $A=\left[ 2\times 4 \right]$ ดังนั้นคู่อันดับ $\ left(B ;A \right)$ มีความสอดคล้องกัน และมิติของผลิตภัณฑ์จะเป็น:

\\cdot \left[ 2\times 4 \right]=\left[ 4\times 4 \right]\]

กล่าวโดยสรุป ผลลัพธ์จะเป็นเมทริกซ์ $\left[ 4\times 4 \right]$ ซึ่งสามารถคำนวณสัมประสิทธิ์ได้อย่างง่ายดาย:

\\cdot \left[ \begin(array)(*(35)(r)) 1 & -1 & 2 & -2 \\ 1 & 1 & 2 & 2 \\\end(array) \right]=\ ซ้าย[ \begin(array)(*(35)(r))1 & 1 & 2 & 2 \\ 2 & -2 & 4 & -4 \\ 3 & 3 & 6 & 6 \\ 4 & -4 & 8 & -8 \\\end(อาร์เรย์) \right]\]

แน่นอนว่าคุณสามารถเห็นด้วยกับ $C\cdot A$ และ $B\cdot C$ ได้ - แค่นั้นเอง ดังนั้นเราจึงเพียงเขียนผลิตภัณฑ์ผลลัพธ์:

มันง่าย.:)

คำตอบ: $AB=\left[ \begin(array)(*(35)(r)) -10 & 7 \\ 10 & 7 \\\end(array) \right]$; $BA=\left[ \begin(array)(*(35)(r)) 1 & 1 & 2 & 2 \\ 2 & -2 & 4 & -4 \\ 3 & 3 & 6 & 6 \\ 4 & -4 & 8 & -8 \\\end(อาร์เรย์) \right]$; $CA=\left[ \begin(array)(*(35)(r)) 1 & 1 & 2 & 2 \\ 1 & -1 & 2 & -2 \\\end(array) \right]$; $BC=\left[ \begin(array)(*(35)(r))1 & 0 \\ 0 & 2 \\ 3 & 0 \\ 0 & 4 \\\end(array) \right]$.

โดยทั่วไป ฉันขอแนะนำอย่างยิ่งให้ทำภารกิจนี้ด้วยตัวเอง และอีกหนึ่งงานที่คล้ายกันซึ่งก็คือ การบ้าน. ความคิดที่ดูเหมือนเรียบง่ายเหล่านี้จะช่วยให้คุณฝึกฝนขั้นตอนสำคัญๆ ทั้งหมดของการคูณเมทริกซ์ได้

แต่เรื่องราวไม่ได้จบเพียงแค่นั้น มาดูกรณีพิเศษของการคูณกันดีกว่า :)

เวกเตอร์แถวและเวกเตอร์คอลัมน์

การดำเนินการเมทริกซ์ที่พบบ่อยที่สุดอย่างหนึ่งคือการคูณด้วยเมทริกซ์ที่มีหนึ่งแถวหรือหนึ่งคอลัมน์

คำนิยาม. เวกเตอร์คอลัมน์คือเมทริกซ์ขนาด $\left[ m\times 1 \right]$ กล่าวคือ ประกอบด้วยหลายแถวและมีคอลัมน์เดียวเท่านั้น

เวกเตอร์แถวคือเมทริกซ์ขนาด $\left[ 1\times n \right]$ กล่าวคือ ประกอบด้วยหนึ่งแถวและหลายคอลัมน์

จริงๆแล้วเราได้พบเจอวัตถุเหล่านี้แล้ว ตัวอย่างเช่น เวกเตอร์สามมิติธรรมดาจากสามมิติ $\overrightarrow(a)=\left(x;y;z \right)$ ไม่มีอะไรมากไปกว่าเวกเตอร์แถว จากมุมมองทางทฤษฎี แทบไม่มีความแตกต่างระหว่างแถวและคอลัมน์ คุณจะต้องระมัดระวังเมื่อประสานกับเมทริกซ์ตัวคูณที่อยู่รอบๆ

ภารกิจที่ 5. ทำการคูณ:

\[\left[ \begin(array)(*(35)(r)) 2 & -1 & 3 \\ 4 & 2 & 0 \\ -1 & 1 & 1 \\\end(array) \right] \cdot \left[ \begin(array)(*(35)(r)) 1 \\ 2 \\ -1 \\\end(array) \right]\]

สารละลาย. เราได้ผลลัพธ์ของเมทริกซ์ที่ตรงกัน: $\left[ 3\times 3 \right]\cdot \left[ 3\times 1 \right]=\left[ 3\times 1 \right]$ มาหาชิ้นนี้กัน:

\[\left[ \begin(array)(*(35)(r)) 2 & -1 & 3 \\ 4 & 2 & 0 \\ -1 & 1 & 1 \\\end(array) \right] \cdot \left[ \begin(array)(*(35)(r)) 1 \\ 2 \\ -1 \\\end(array) \right]=\left[ \begin(array)(*(35 )(r)) 2\cdot 1+\left(-1 \right)\cdot 2+3\cdot \left(-1 \right) \\ 4\cdot 1+2\cdot 2+0\cdot 2 \ \ -1\cdot 1+1\cdot 2+1\cdot \left(-1 \right) \\\end(อาร์เรย์) \right]=\left[ \begin(array)(*(35)(r) ) -3 \\ 8 \\ 0 \\\end(อาร์เรย์) \right]\]

คำตอบ: $\left[ \begin(array)(*(35)(r))-3 \\ 8 \\ 0 \\\end(array) \right]$.

ภารกิจที่ 6. ทำการคูณ:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 & -3 \\\end(array) \right]\cdot \left[ \begin(array)(*(35) (r)) 3 & 1 & -1 \\ 4 & -1 & 3 \\ 2 & 6 & 0 \\\end(อาร์เรย์) \right]\]

สารละลาย. ทุกอย่างตกลงอีกครั้ง: $\left[ 1\times 3 \right]\cdot \left[ 3\times 3 \right]=\left[ 1\times 3 \right]$ เรานับผลิตภัณฑ์:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 & -3 \\\end(array) \right]\cdot \left[ \begin(array)(*(35) (r)) 3 & 1 & -1 \\ 4 & -1 & 3 \\ 2 & 6 & 0 \\\end(อาร์เรย์) \right]=\left[ \begin(array)(*(35)( ) r))5 & -19 & 5 \\\end(อาร์เรย์) \right]\]

คำตอบ: $\left[ \begin(matrix) 5 & -19 & 5 \\\end(matrix) \right]$

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

ฉันคิดว่าทุกอย่างชัดเจนที่นี่ เรามาดูส่วนสุดท้ายของบทเรียนของวันนี้กันดีกว่า

การยกกำลังเมทริกซ์

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

งานดังกล่าวได้รับการตกลงกันเสมอ:

\\cdot \left[ n\times n \right]=\left[ n\times n \right]\]

และถูกกำหนดในลักษณะเดียวกับองศาปกติทุกประการ:

\[\begin(align) & A\cdot A=((A)^(2)); \\ & A\cdot A\cdot A=((A)^(3)); \\ & \underbrace(A\cdot A\cdot \ldots \cdot A)_(n)=((A)^(n)) \\ \end(จัดแนว)\]

เมื่อมองแวบแรกทุกอย่างก็เรียบง่าย มาดูกันว่าในทางปฏิบัติมีลักษณะอย่างไร:

ภารกิจที่ 7 เพิ่มเมทริกซ์ให้เป็นกำลังที่ระบุ:

$((\left[ \begin(เมทริกซ์) 1 & 1 \\ 0 & 1 \\\end(เมทริกซ์) \right])^(3))$

สารละลาย. เอาล่ะ เรามาสร้างกันดีกว่า ก่อนอื่นมายกกำลังสอง:

\[\begin(align) & ((\left[ \begin(เมทริกซ์) 1 & 1 \\ 0 & 1 \\\end(เมทริกซ์) \right])^(2))=\left[ \begin(เมทริกซ์) ) 1 & 1 \\ 0 & 1 \\\end(เมทริกซ์) \right]\cdot \left[ \begin(เมทริกซ์) 1 & 1 \\ 0 & 1 \\\end(เมทริกซ์) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 1\cdot 1+1\cdot 0 & 1\cdot 1+1\cdot 1 \\ 0\cdot 1+1\cdot 0 & 0\cdot 1+1\cdot 1 \\\end(array) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 1 & 2 \\ 0 & 1 \ \\end(array) \right] \end(align)\]

\[\begin(align) & ((\left[ \begin(เมทริกซ์) 1 & 1 \\ 0 & 1 \\\end(เมทริกซ์) \right])^(3))=((\left[ \begin (เมทริกซ์) 1 & 1 \\ 0 & 1 \\\end(เมทริกซ์) \right])^(3))\cdot \left[ \begin(เมทริกซ์) 1 & 1 \\ 0 & 1 \\\end( เมทริกซ์) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 1 & 2 \\ 0 & 1 \\\end(array) \right]\cdot \left[ \begin(เมทริกซ์) 1 & 1 \\ 0 & 1 \\\end(เมทริกซ์) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 1 & 3 \\ 0 & 1 \\\end(อาร์เรย์) \right] \end(align)\]

แค่นั้นแหละ. :)

คำตอบ: $\left[ \begin(matrix)1 & 3 \\ 0 & 1 \\\end(matrix) \right]$

ปัญหาที่ 8. ยกเมทริกซ์ขึ้นเป็นกำลังที่ระบุ:

\[((\left[ \begin(เมทริกซ์) 1 & 1 \\ 0 & 1 \\\end(เมทริกซ์) \right])^(10))\]

สารละลาย. อย่าร้องไห้ในตอนนี้เกี่ยวกับความจริงที่ว่า “ปริญญามันใหญ่เกินไป” “โลกนี้ไม่ยุติธรรม” และ “ครูสูญเสียชายฝั่งไปหมดแล้ว” จริงๆ แล้วเป็นเรื่องง่าย:

\[\begin(align) & ((\left[ \begin(เมทริกซ์) 1 & 1 \\ 0 & 1 \\\end(เมทริกซ์) \right])^(10))=((\left[ \begin (เมทริกซ์) 1 & 1 \\ 0 & 1 \\\end(เมทริกซ์) \right])^(3))\cdot ((\left[ \begin(เมทริกซ์) 1 & 1 \\ 0 & 1 \\\ สิ้นสุด(เมทริกซ์) \right])^(3))\cdot ((\left[ \begin(เมทริกซ์) 1 & 1 \\ 0 & 1 \\\end(เมทริกซ์) \right])^(3))\ cdot \left[ \begin(เมทริกซ์) 1 & 1 \\ 0 & 1 \\\end(เมทริกซ์) \right]= \\ & =\left(\left[ \begin(เมทริกซ์) 1 & 3 \\ 0 & 1 \\\end(เมทริกซ์) \right]\cdot \left[ \begin(เมทริกซ์) 1 & 3 \\ 0 & 1 \\\end(เมทริกซ์) \right] \right)\cdot \left(\left[ \begin(เมทริกซ์) 1 & 3 \\ 0 & 1 \\\end(เมทริกซ์) \right]\cdot \left[ \begin(เมทริกซ์) 1 & 1 \\ 0 & 1 \\\end(เมทริกซ์) \right ] \right)= \\ & =\left[ \begin(เมทริกซ์) 1 & 6 \\ 0 & 1 \\\end(เมทริกซ์) \right]\cdot \left[ \begin(เมทริกซ์) 1 & 4 \\ 0 & 1 \\\end(เมทริกซ์) \right]= \\ & =\left[ \begin(เมทริกซ์) 1 & 10 \\ 0 & 1 \\\end(เมทริกซ์) \right] \end(align)\ ]

โปรดสังเกตว่าในบรรทัดที่สอง เราใช้ความสัมพันธ์ของการคูณ จริงๆ แล้วเราใช้มันในงานที่แล้ว แต่มันก็เป็นนัยตรงนั้น

คำตอบ: $\left[ \begin(matrix) 1 & 10 \\ 0 & 1 \\\end(matrix) \right]$

อย่างที่คุณเห็น ไม่มีอะไรซับซ้อนในการเพิ่มเมทริกซ์ให้เป็นกำลัง ตัวอย่างสุดท้ายสามารถสรุปได้:

\[((\left[ \begin(เมทริกซ์) 1 & 1 \\ 0 & 1 \\\end(เมทริกซ์) \right])^(n))=\left[ \begin(array)(*(35) (r)) 1 & n \\ 0 & 1 \\\end(array) \right]\]

ข้อเท็จจริงนี้พิสูจน์ได้ง่ายผ่านการอุปนัยทางคณิตศาสตร์หรือการคูณโดยตรง อย่างไรก็ตาม เป็นไปไม่ได้เสมอไปที่จะจับรูปแบบดังกล่าวเมื่อเพิ่มพลัง ดังนั้นควรระวัง: บ่อยครั้งการคูณเมทริกซ์หลาย ๆ ตัวแบบ "สุ่ม" กลายเป็นเรื่องง่ายและเร็วกว่าการมองหารูปแบบบางประเภท

โดยทั่วไปอย่ามองหาความหมายที่สูงกว่าเมื่อไม่มีเลย สุดท้าย ลองดูการยกกำลังเมทริกซ์ ขนาดใหญ่ขึ้น- เท่ากับ $\left[ 3\times 3 \right]$

ปัญหาที่ 9. เพิ่มเมทริกซ์ให้เป็นกำลังที่ระบุ:

\[((\left[ \begin(เมทริกซ์) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(เมทริกซ์) \right])^(3))\]

สารละลาย. อย่ามองหารูปแบบ เราทำงานล่วงหน้า:

\[((\left[ \begin(เมทริกซ์) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(เมทริกซ์) \right])^(3))=(( \left[ \begin(เมทริกซ์) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(เมทริกซ์) \right])^(2))\cdot \left[ \begin (เมทริกซ์)0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(เมทริกซ์) \right]\]

ขั้นแรก ลองยกกำลังสองเมทริกซ์นี้:

\[\begin(align) & ((\left[ \begin(เมทริกซ์) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(เมทริกซ์) \right])^( 2))=\left[ \begin(เมทริกซ์) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(เมทริกซ์) \right]\cdot \left[ \begin(เมทริกซ์) ) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(เมทริกซ์) \right]= \\ & =\left[ \begin(array)(*(35)(r )) 2 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 2 \\\end(array) \right] \end(align)\]

ตอนนี้เรามายกกำลังสามกันเถอะ:

\[\begin(align) & ((\left[ \begin(เมทริกซ์) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(เมทริกซ์) \right])^( 3))=\left[ \begin(array)(*(35)(r)) 2 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 2 \\\end(array) \right] \cdot \left[ \begin(เมทริกซ์) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(เมทริกซ์) \right]= \\ & =\left[ \begin( array)(*(35)(r)) 2 & 3 & 3 \\ 3 & 2 & 3 \\ 3 & 3 & 2 \\\end(อาร์เรย์) \right] \end(align)\]

นั่นคือทั้งหมดที่ ปัญหาได้รับการแก้ไขแล้ว

คำตอบ: $\left[ \begin(matrix) 2 & 3 & 3 \\ 3 & 2 & 3 \\ 3 & 3 & 2 \\\end(matrix) \right]$

อย่างที่คุณเห็นปริมาณการคำนวณมีขนาดใหญ่ขึ้น แต่ความหมายไม่เปลี่ยนแปลงเลย :)

นี่เป็นการสรุปบทเรียน ครั้งต่อไปเราจะพิจารณาการดำเนินการผกผัน: เราจะมองหาปัจจัยดั้งเดิมโดยใช้ผลิตภัณฑ์ที่มีอยู่

ดังที่คุณคงเดาได้อยู่แล้ว เราจะพูดถึงเมทริกซ์ผกผันและวิธีการค้นหา

การบรรยายครั้งที่ 6 อัลกอริธึมเชิงตัวเลขคู่ขนานสำหรับการแก้ปัญหาทั่วไปของคณิตศาสตร์เชิงคำนวณ: การคูณเมทริกซ์

การคูณเมทริกซ์ด้วยเวกเตอร์ บรรลุประสิทธิภาพสูงสุดที่เป็นไปได้ การใช้ประโยชน์จากความเท่าเทียมระดับกลาง องค์กร การคำนวณแบบขนานที่ p = n การใช้ชุดโปรเซสเซอร์ที่จำกัด การคูณเมทริกซ์ การวิเคราะห์เชิงปฏิบัติการระดับมหภาคของอัลกอริธึมการแก้ปัญหา การจัดระเบียบความเท่าเทียมบนพื้นฐานของการแบ่งปันข้อมูล

การคูณเมทริกซ์ด้วยเวกเตอร์

ปัญหาของการคูณเมทริกซ์ด้วยเวกเตอร์ถูกกำหนดโดยความสัมพันธ์

ดังนั้นการได้รับเวกเตอร์ผลลัพธ์จึงเกี่ยวข้องกับการทำซ้ำการดำเนินการที่คล้ายกันในการคูณแถวของเมทริกซ์และเวกเตอร์ การได้รับการดำเนินการดังกล่าวแต่ละครั้งเกี่ยวข้องกับการคูณองค์ประกอบของแถวของเมทริกซ์และเวกเตอร์อย่างชาญฉลาด และผลรวมที่ตามมาของผลิตภัณฑ์ผลลัพธ์ จำนวนการดำเนินการสเกลาร์ที่ต้องการทั้งหมดจะถูกประมาณโดยปริมาณ

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

บรรลุประสิทธิภาพสูงสุดที่เป็นไปได้ ()

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



การคูณแต่ละแถวด้วยเวกเตอร์เกี่ยวข้องกับการดำเนินการคูณตามองค์ประกอบอิสระและยังสามารถดำเนินการแบบขนานได้อีกด้วย

ผลรวมของผลิตภัณฑ์ผลลัพธ์ในแต่ละการดำเนินการของการคูณแถวเมทริกซ์ด้วยเวกเตอร์สามารถทำได้โดยใช้หนึ่งในตัวแปรที่พิจารณาก่อนหน้านี้ของอัลกอริธึมการรวม (อัลกอริธึมตามลำดับ, แผนน้ำตกแบบธรรมดาและแบบดัดแปลง)

ดังนั้นสูงสุด จำนวนที่ต้องการโปรเซสเซอร์ถูกกำหนดโดยขนาด

การใช้โปรเซสเซอร์จำนวนดังกล่าวสามารถแสดงได้ดังต่อไปนี้ โปรเซสเซอร์จำนวนมากถูกแบ่งออกเป็นกลุ่ม

,

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

ข้าว. 6.1. รูปแบบการคำนวณสำหรับการดำเนินการคูณแถวเมทริกซ์ด้วยเวกเตอร์

เวลาดำเนินการของอัลกอริธึมแบบขนานเมื่อใช้โปรเซสเซอร์ถูกกำหนดโดยเวลาดำเนินการของการดำเนินการคูณแบบขนานและเวลาดำเนินการของวงจรคาสเคด

ด้วยเหตุนี้ ตัวบ่งชี้ประสิทธิภาพของอัลกอริทึมจึงถูกกำหนดโดยความสัมพันธ์ต่อไปนี้:

สำหรับปัญหาของการคูณเมทริกซ์-เวกเตอร์ที่กำลังพิจารณา โทโพโลยีที่เหมาะสมที่สุดคือโครงสร้างที่ให้การรับส่งข้อมูลที่รวดเร็ว (เส้นทางของความยาวหน่วย) ในวงจรผลรวมแบบเรียงซ้อน (ดูรูปที่ 4.5) โทโพโลยีดังกล่าวเป็นโครงสร้างที่มีระบบการเชื่อมต่อที่สมบูรณ์ ( กราฟที่สมบูรณ์) และ ไฮเปอร์คิวบ์. โทโพโลยีอื่นๆ ส่งผลให้เวลาการสื่อสารเพิ่มขึ้นเนื่องจากเส้นทางการถ่ายโอนข้อมูลที่ยาวขึ้น ดังนั้นด้วยการเรียงลำดับโปรเซสเซอร์เชิงเส้นพร้อมระบบการเชื่อมต่อเฉพาะกับเพื่อนบ้านที่ใกล้ที่สุดทางซ้ายและขวา ( ไม้บรรทัดหรือ แหวน) สำหรับโครงร่างแบบเรียงซ้อน ความยาวของเส้นทางการส่งข้อมูลของแต่ละผลรวมบางส่วนที่ได้รับในการวนซ้ำ เท่ากับ หากเราถือว่าการส่งข้อมูลตามความยาวเส้นทางในโทโพโลยีที่มีโครงสร้างเชิงเส้นจำเป็นต้องมีการดำเนินการส่งข้อมูล จำนวนรวมของการดำเนินการแบบขนาน (ระยะเวลารวมของเส้นทาง) ของการส่งข้อมูลจะถูกกำหนดโดยค่า

(ไม่รวมการถ่ายโอนข้อมูลสำหรับการโหลดโปรเซสเซอร์ครั้งแรก)

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

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

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

การใช้ความเท่าเทียมระดับกลาง ()

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

เมื่อใช้จำนวนโปรเซสเซอร์ที่จำเป็นในการใช้โครงร่างน้ำตกที่แก้ไข เช่น ที่ นิพจน์นี้ให้ค่าประมาณของเวลาดำเนินการ (ที่ ).

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

ชุดโปรเซสเซอร์แบ่งออกเป็นกลุ่มโปรเซสเซอร์ที่ไม่ต่อเนื่องกัน

,

ในกรณีนี้ กลุ่ม , ประกอบด้วยโปรเซสเซอร์และใช้เพื่อดำเนินการวนซ้ำของอัลกอริธึมคาสเคด (กลุ่มนี้ใช้เพื่อใช้การคูณตามองค์ประกอบ) จำนวนโปรเซสเซอร์ทั้งหมด

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

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

จากการใช้อัลกอริธึมที่อธิบายไว้โปรเซสเซอร์จำนวนมากใช้ไปป์ไลน์เพื่อดำเนินการคูณแถวเมทริกซ์ด้วยเวกเตอร์ บนสายพานลำเลียงดังกล่าวสามารถมีเมทริกซ์แยกกันหลายแถวพร้อมกันในขั้นตอนการประมวลผลที่แตกต่างกัน ตัวอย่างเช่น หลังจากการคูณองค์ประกอบของแถวแรกและเวกเตอร์อย่างชาญฉลาดแล้ว ตัวประมวลผลของกลุ่มจะดำเนินการวนซ้ำครั้งแรกของอัลกอริธึมคาสเคดสำหรับแถวแรกของเมทริกซ์ และตัวประมวลผลของกลุ่มจะ ทำการคูณค่าของแถวที่สองของเมทริกซ์ตามองค์ประกอบ ฯลฯ สำหรับภาพประกอบในรูป 6.2 แสดงสถานการณ์ของกระบวนการคำนวณหลังจากการวนซ้ำไปป์ไลน์ 2 รอบที่

ข้าว. 6.2. สถานะของไปป์ไลน์สำหรับการดำเนินการคูณแถวเมทริกซ์ด้วยเวกเตอร์หลังจากทำซ้ำ 2 ครั้งเสร็จแล้ว

2. การประเมินตัวบ่งชี้ประสิทธิภาพของอัลกอริทึม. การคูณแถวแรกด้วยเวกเตอร์ตามโครงร่างแบบเรียงซ้อนจะเสร็จสมบูรณ์ตามปกติหลังจากดำเนินการ () การดำเนินการแบบขนาน สำหรับแถวอื่น ๆ - ตามโครงร่างไปป์ไลน์ของการจัดระเบียบการคำนวณ - การปรากฏตัวของผลการคูณของแต่ละแถวถัดไปจะเกิดขึ้นหลังจากการวนซ้ำไปป์ไลน์แต่ละครั้งเสร็จสิ้น ผลที่ตามมา, เวลารวมการดำเนินการคูณเมทริกซ์ด้วยเวกเตอร์สามารถแสดงได้ด้วยปริมาณ

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

ด้วยเหตุนี้ ตัวบ่งชี้ประสิทธิภาพของอัลกอริทึมจึงถูกกำหนดโดยความสัมพันธ์ต่อไปนี้:

3. การเลือกโทโพโลยีของระบบคอมพิวเตอร์. โทโพโลยีที่เหมาะสมของระบบคอมพิวเตอร์ถูกกำหนดโดยวงจรคอมพิวเตอร์โดยสมบูรณ์ - นี่คือความสมบูรณ์ ต้นไม้ไบนารีความสูง จำนวนการถ่ายโอนข้อมูลด้วยโทโพโลยีเครือข่ายดังกล่าวถูกกำหนดโดยจำนวนการวนซ้ำทั้งหมดที่ดำเนินการโดยไปป์ไลน์ เช่น

การเริ่มต้นการคำนวณเริ่มต้นด้วยใบของต้นไม้ ผลการรวมจะถูกสะสมในตัวประมวลผลรูท

การวิเคราะห์ความซับซ้อนของการดำเนินการสื่อสารที่ดำเนินการสำหรับระบบคอมพิวเตอร์ที่มีโทโพโลยีการสื่อสารระหว่างโปรเซสเซอร์อื่นๆ ควรจะดำเนินการเป็นงานอิสระ (ดูข้อ 3.4 เพิ่มเติม)

การจัดระบบคอมพิวเตอร์แบบขนานใน

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

รูปแบบการคำนวณดังกล่าวสามารถกำหนดได้ดังนี้ ลองนึกภาพชุดโปรเซสเซอร์เป็นลำดับเชิงเส้น (ดูรูปที่ 4.7):

โปรเซสเซอร์แต่ละตัว , ใช้เพื่อคูณองค์ประกอบของคอลัมน์เมทริกซ์และองค์ประกอบเวกเตอร์ การคำนวณที่ดำเนินการกับโปรเซสเซอร์แต่ละตัว , มีดังต่อไปนี้:

มีการร้องขอองค์ประกอบถัดไปของคอลัมน์เมทริกซ์

องค์ประกอบและมีการคูณ

มีการร้องขอผลลัพธ์ของการคำนวณของโปรเซสเซอร์ก่อนหน้านี้

มีการเพิ่มค่า;

ผลลัพธ์ที่ได้จะถูกส่งไปยังโปรเซสเซอร์ตัวถัดไป

ข้าว. 6.3. สถานะของไปป์ไลน์เชิงเส้นสำหรับการดำเนินการคูณแถวเมทริกซ์ด้วยเวกเตอร์ หลังจากดำเนินการวนซ้ำสองครั้ง

เมื่อเริ่มต้นโครงร่างที่อธิบายไว้ คุณต้องดำเนินการเพิ่มเติมหลายประการ:

เมื่อดำเนินการวนซ้ำครั้งแรก โปรเซสเซอร์แต่ละตัวจะร้องขอองค์ประกอบของเวกเตอร์เพิ่มเติม

ในการซิงโครไนซ์การคำนวณ (เมื่อดำเนินการวนซ้ำครั้งต่อไปของวงจร จะขอผลการคำนวณของโปรเซสเซอร์ก่อนหน้า) ในขั้นตอนการเริ่มต้น โปรเซสเซอร์ ดำเนินการ () วนรอบการรอ

นอกจากนี้ เพื่อให้เป็นเนื้อเดียวกันของวงจรที่อธิบายไว้สำหรับโปรเซสเซอร์ตัวแรกซึ่งไม่มีโปรเซสเซอร์ก่อนหน้า ขอแนะนำให้แนะนำการดำเนินการเพิ่มเติมที่ว่างเปล่า ( ).

สำหรับภาพประกอบในรูป รูปที่ 6.3 แสดงสถานะของกระบวนการคำนวณหลังจากการวนซ้ำครั้งที่สองของไปป์ไลน์ที่

2. การประเมินตัวบ่งชี้ประสิทธิภาพของอัลกอริทึม. การคูณแถวแรกด้วยเวกเตอร์ตามโครงร่างไปป์ไลน์ที่อธิบายไว้จะเสร็จสิ้นหลังจากการดำเนินการ () การดำเนินการแบบขนาน ผลลัพธ์ของการคูณบรรทัดต่อไปนี้จะเกิดขึ้นหลังจากการวนซ้ำไปป์ไลน์ครั้งต่อไปแต่ละครั้งเสร็จสิ้น (โปรดจำไว้ว่าการวนซ้ำของโปรเซสเซอร์แต่ละตัวนั้นรวมถึงการดำเนินการของการคูณและการบวกด้วย) ผลที่ได้คือ เวลาดำเนินการทั้งหมดของการดำเนินการคูณเมทริกซ์-เวกเตอร์สามารถแสดงเป็น:

การประมาณนี้ยังมากกว่าเวลาดำเนินการขั้นต่ำที่เป็นไปได้ของอัลกอริธึมแบบขนานที่ ประโยชน์ของการใช้โครงร่างการคำนวณไปป์ไลน์ตามที่ระบุไว้ในย่อหน้าก่อนหน้าคือในการลดปริมาณข้อมูลที่ส่งและในลักษณะที่ปรากฏก่อนหน้านี้ของผลการคำนวณบางส่วน

ตัวบ่งชี้ประสิทธิภาพของรูปแบบการคำนวณนี้ถูกกำหนดโดยความสัมพันธ์:

, ,

3. การเลือกโทโพโลยีของระบบคอมพิวเตอร์. โทโพโลยีที่จำเป็นสำหรับระบบคอมพิวเตอร์สำหรับการดำเนินการอัลกอริธึมที่อธิบายไว้นั้นถูกกำหนดโดยเฉพาะโดยโครงร่างการคำนวณที่เสนอ - นี่คือชุดโปรเซสเซอร์ที่เรียงลำดับเชิงเส้น ( ไม้บรรทัด).

การใช้ชุดโปรเซสเซอร์ที่จำกัด ()

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

แถวเวกเตอร์และเมทริกซ์จะถูกส่งไปยังโปรเซสเซอร์แต่ละตัวที่มีอยู่

การดำเนินการคูณแถวเมทริกซ์-เวกเตอร์จะดำเนินการโดยใช้อัลกอริธึมลำดับทั่วไป

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

3. การเลือกโทโพโลยีของระบบคอมพิวเตอร์. ตามลักษณะของการโต้ตอบระหว่างโปรเซสเซอร์ที่ดำเนินการในรูปแบบการคำนวณที่เสนอองค์กรของโปรเซสเซอร์ในรูปแบบของ ดาว(ดูรูปที่ 1.1) ตัวประมวลผลควบคุมของโทโพโลยีดังกล่าวสามารถใช้เพื่อโหลดตัวประมวลผลการประมวลผลด้วยข้อมูลเริ่มต้นและรับผลลัพธ์ของการคำนวณที่ดำเนินการ

การคูณเมทริกซ์

ปัญหาของการคูณเมทริกซ์-เมทริกซ์ถูกกำหนดโดยความสัมพันธ์

.

(เพื่อความง่ายในการนำเสนอ เราจะถือว่าเมทริกซ์คูณและเป็นรูปสี่เหลี่ยมจัตุรัสและมีลำดับ )

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


เวกเตอร์แต่ละตัวสามารถพิจารณาได้ว่าเป็นเมทริกซ์แบบคอลัมน์เดียวหรือแบบแถวเดียว เราจะเรียกเมทริกซ์แบบคอลัมน์เดียวว่าเวกเตอร์คอลัมน์ และเมทริกซ์แถวเดียวเรียกว่าเวกเตอร์แถว

ถ้า A เป็นเมทริกซ์ขนาด m*n แล้วเวกเตอร์คอลัมน์ b จะมีขนาด n และเวกเตอร์แถว b จะมีขนาด m

ดังนั้น ในการคูณเมทริกซ์ด้วยเวกเตอร์ เราต้องพิจารณาเวกเตอร์เป็นเวกเตอร์คอลัมน์ เมื่อคูณเวกเตอร์ด้วยเมทริกซ์ จะต้องถือเป็นเวกเตอร์แถว

คูณเมทริกซ์

เป็นเวกเตอร์เชิงซ้อน

เราได้รับผลลัพธ์

อย่างที่คุณเห็น เมื่อมิติเวกเตอร์ไม่เปลี่ยนแปลง เราสามารถมีคำตอบได้สองวิธี

ฉันอยากจะดึงความสนใจของคุณไปที่ความจริงที่ว่าเมทริกซ์ในรุ่นแรกและรุ่นที่สองแม้จะมีค่าเท่ากัน แต่ก็มีความแตกต่างกันโดยสิ้นเชิง (มีมิติที่แตกต่างกัน)

ในกรณีแรก เวกเตอร์จะถือเป็นคอลัมน์ และจำเป็น คูณเมทริกซ์ด้วยเวกเตอร์และในกรณีที่สอง เรามีเวกเตอร์แถว แล้วก็มี ผลคูณของเวกเตอร์และเมทริกซ์

บอทนี้ยังคูณเวกเตอร์และเมทริกซ์ที่มีค่าที่ซับซ้อนอีกด้วย ขึ้นอยู่กับเครื่องคิดเลขที่สมบูรณ์ยิ่งขึ้น: การคูณเมทริกซ์ด้วยค่าที่ซับซ้อนทางออนไลน์

คุณสมบัติของการคูณเมทริกซ์-เวกเตอร์

เมทริกซ์

คอลัมน์เวกเตอร์

เวกเตอร์แถว

หมายเลขตามอำเภอใจ

1. ผลคูณของเมทริกซ์ด้วยผลรวมของเวกเตอร์คอลัมน์ เท่ากับผลรวมของผลิตภัณฑ์ของเมทริกซ์ด้วยเวกเตอร์แต่ละตัว

2. ผลคูณของผลรวมของเวกเตอร์แถวและเมทริกซ์เท่ากับผลรวมของผลคูณของเวกเตอร์และเมทริกซ์

3. ตัวประกอบร่วมของเวกเตอร์สามารถนำไปนอกผลคูณของเมทริกซ์ด้วยเวกเตอร์/เวกเตอร์ด้วยเมทริกซ์

4. ผลคูณของเวกเตอร์แถวกับผลคูณของเมทริกซ์กับเวกเตอร์คอลัมน์ เทียบเท่ากับผลคูณของเวกเตอร์แถวกับเมทริกซ์กับเวกเตอร์คอลัมน์

คำจำกัดความ 1

ผลิตภัณฑ์เมทริกซ์ (C = AB) เป็นการดำเนินการสำหรับเมทริกซ์ A และ B ที่ตรงกันเท่านั้น โดยจำนวนคอลัมน์ของเมทริกซ์ A เท่ากับจำนวนแถวของเมทริกซ์ B:

C ⏟ ม. × n = A ⏟ ม. × p × B ⏟ p × n

ตัวอย่างที่ 1

เมทริกซ์ที่กำหนด:

  • A = a (i j) ขนาด m × n;
  • B = b (i j) ของมิติ p × n

Matrix C องค์ประกอบ c i j ซึ่งคำนวณโดยใช้สูตรต่อไปนี้:

c ฉัน j = a ฉัน 1 × b 1 j + a ฉัน 2 × b 2 j + . . + a i p × b p j , i = 1 , . . . ม., เจ = 1, . . . ม

ตัวอย่างที่ 2

ลองคำนวณผลคูณ AB=BA:

ก = 1 2 1 0 1 2 , ข = 1 0 0 1 1 1

คำตอบโดยใช้กฎการคูณเมทริกซ์:

A ⏟ 2 × 3 × B ⏟ 3 × 2 = 1 2 1 0 1 2 × 1 0 0 1 1 1 = 1 × 1 + 2 × 0 + 1 × 1 1 × 0 + 2 × 1 + 1 × 1 0 × 1 + 1 × 0 + 2 × 1 0 × 0 + 1 × 1 + 2 × 1 = = 2 3 2 3 ⏟ 2 × 2

B ⏟ 3 × 2 × A ⏟ 2 × 3 = 1 0 0 1 1 1 × 1 2 1 0 1 2 = 1 × 1 + 0 × 0 1 × 2 + 0 × 1 1 × 1 + 0 × 2 0 × 1 + 1 × 0 0 × 2 + 1 × 1 0 × 1 + 1 × 2 1 × 1 + 1 × 0 1 × 2 + 1 × 1 1 × 1 + 1 × 2 = 1 2 1 0 1 2 1 3 3 ⏟ 3×3

พบผลิตภัณฑ์ A B และ BA A แต่เป็นเมทริกซ์ที่มีขนาดต่างกัน: A B ไม่เท่ากับ BA A

คุณสมบัติของการคูณเมทริกซ์

คุณสมบัติของการคูณเมทริกซ์:

  • (A B) C = A (B C) - การเชื่อมโยงของการคูณเมทริกซ์
  • A (B + C) = A B + AC - การกระจายตัวของการคูณ
  • (A + B) C = A C + B C - การกระจายตัวของการคูณ
  • แล (AB) = (แลม A) B
ตัวอย่างที่ 1

มาตรวจสอบคุณสมบัติหมายเลข 1 กันดีกว่า: (A B) C = A (B C) :

(A × B) × A = 1 2 3 4 × 5 6 7 8 × 1 0 0 2 = 19 22 43 50 × 1 0 0 2 = 19 44 43 100,

ก (ข × ค) = 1 2 3 4 × 5 6 7 8 1 0 0 2 = 1 2 3 4 × 5 12 7 16 = 19 44 43 100.

ตัวอย่างที่ 2

มาตรวจสอบคุณสมบัติหมายเลข 2 กัน: A (B + C) = A B + AC:

ก × (B + C) = 1 2 3 4 × 5 6 7 8 + 1 0 0 2 = 1 2 3 4 × 6 6 7 10 = 20 26 46 58,

เอบี + เอค = 1 2 3 4 × 5 6 7 8 + 1 2 3 4 × 1 0 0 2 = 19 22 43 50 + 1 4 3 8 = 20 26 46 58.

ผลคูณของเมทริกซ์สามตัว

ผลคูณของเมทริกซ์ A B C สามตัวคำนวณได้ 2 วิธี:

  • หา AB และคูณด้วย C: (A B) C;
  • หรือหา B C ​​ก่อนแล้วจึงคูณ A (B C)
​​​​ตัวอย่างที่ 3

คูณเมทริกซ์ได้ 2 วิธี:

4 3 7 5 × - 28 93 38 - 126 × 7 3 2 1

อัลกอริทึมของการกระทำ:

  • ค้นหาผลคูณของเมทริกซ์ 2 ตัว
  • แล้วหาผลคูณของเมทริกซ์ 2 ตัวอีกครั้ง

1). เอบี = 4 3 7 5 × - 28 93 38 - 126 = 4 (- 28) + 3 × 38 4 × 93 + 3 (- 126) 7 (- 28) + 5 × 38 7 × 93 + 5 (- 126 ) = 2 - 6 - 6 21

2). A B C = (A B) C = 2 - 6 - 6 21 7 3 2 1 = 2 × 7 - 6 × 2 2 × 3 - 6 × 1 - 6 × 7 + 21 × 2 - 6 × 3 + 21 × 1 = 2 0 0 3 .

เราใช้สูตร A B C = (A B) C:

1). BC = - 28 93 38 - 126 7 3 2 1 = - 28 × 7 + 93 × 2 - 28 × 3 + 93 × 1 38 × 7 - 126 × 2 38 × 3 - 126 × 1 = - 10 9 14 - 12

2). A B C = (A B) C = 7 3 2 1 - 10 9 14 - 12 = 4 (- 10) + 3 × 14 4 × 9 + 3 (- 12) 7 (- 10) + 5 × 14 7 × 9 + 5 (- 12) = 2 0 0 3

ตอบ: 4 3 7 5 - 28 93 38 - 126 7 3 2 1 = 2 0 0 3

การคูณเมทริกซ์ด้วยตัวเลข

คำจำกัดความ 2

ผลคูณของเมทริกซ์ A ตามจำนวน k คือเมทริกซ์ B = A k ที่มีขนาดเท่ากันซึ่งได้มาจากเมทริกซ์ดั้งเดิมโดยการคูณองค์ประกอบทั้งหมดด้วยจำนวนที่กำหนด:

ข ฉัน, เจ = k × ฉัน, เจ

คุณสมบัติของการคูณเมทริกซ์ด้วยตัวเลข:

  • 1 × ก = ก
  • 0 × A = เมทริกซ์ศูนย์
  • k (A + B) = k A + k B
  • (k + n) A = k A + n A
  • (k × n) × A = k (n × A)
ตัวอย่างที่ 4

ลองหาผลคูณของเมทริกซ์ A = 4 2 9 0 คูณ 5 กัน

5 ก = 5 4 2 9 0 5 × 4 5 × 2 5 × 9 5 × 0 = 20 10 45 0

การคูณเมทริกซ์ด้วยเวกเตอร์

คำจำกัดความ 3

หากต้องการค้นหาผลคูณของเมทริกซ์และเวกเตอร์ คุณต้องคูณโดยใช้กฎ "แถวต่อคอลัมน์":

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

A B = a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯a 2 n ⋯ ⋯ ⋯ ⋯ ⋯ a m 1 a m 2 ⋯ a m n b 1 b 2 ⋯ b 1 n = a 11 × b 1 + a 12 × b 2 + ⋯ + a 1 n × b n a 21 × b 1 + a 22 × b 2 + ⋯ + a 2 n × b n ⋯ ⋯ ⋯ ⋯ am m 1 × b 1 + a m 2 × b 2 + ⋯ + a m n × b n = c 1 s 2 ⋯ 1 ม

  • หากคุณคูณเมทริกซ์ด้วยเวกเตอร์แถว เมทริกซ์ที่จะคูณจะต้องเป็นเวกเตอร์คอลัมน์โดยเฉพาะ และจำนวนคอลัมน์จะต้องตรงกับจำนวนคอลัมน์ในเวกเตอร์แถว:

A B = a a ⋯ a b b ⋯ b = a 1 × b 1 a 1 × b 2 ⋯a 1 × bn a 2 × b 1 a 2 × b 2 ⋯a 2 × bn ⋯ ⋯ ⋯ ⋯⋯ a n × b 1 a n × b 2 ⋯ a n × b n = c 11 c 12 ⋯⋯ c 1 n c 21 c 22 ⋯ c 2 n ⋯ ⋯ ⋯ ⋯ ⋯ cn 1 c n 2 ⋯⋯ c n n

ตัวอย่างที่ 5

ลองหาผลคูณของเมทริกซ์ A และเวกเตอร์คอลัมน์ B:

เอบี = 2 4 0 - 2 1 3 - 1 0 1 1 2 - 1 = 2 × 1 + 4 × 2 + 0 × (- 1) - 2 × 1 + 1 × 2 + 3 × (- 1) - 1 × 1 + 0 × 2 + 1 × (- 1) = 2 + 8 + 0 - 2 + 2 - 3 - 1 + 0 - 1 = 10 - 3 - 2

ตัวอย่างที่ 6

ลองหาผลคูณของเมทริกซ์ A และเวกเตอร์แถว B:

ก = 3 2 0 - 1 , B = - 1 1 0 2

AB = 3 2 0 1 × - 1 1 0 2 = 3 × (- 1) 3 × 1 3 × 0 3 × 2 2 × (- 1) 2 × 1 2 × 0 2 × 2 0 × (- 1) 0 × 1 0 × 0 0 × 2 1 × (- 1) 1 × 1 1 × 0 1 × 2 = - 3 3 0 6 - 2 2 0 4 0 0 0 0 - 1 1 0 2

คำตอบ: AB = - 3 3 0 6 - 2 2 0 4 0 0 0 0 - 1 1 0 2

หากคุณสังเกตเห็นข้อผิดพลาดในข้อความ โปรดไฮไลต์แล้วกด Ctrl+Enter

ในระบบ MatLab การดำเนินการทางคณิตศาสตร์กับเมทริกซ์และเวกเตอร์นั้นค่อนข้างง่าย ก่อนอื่นให้เราพิจารณาการดำเนินการอย่างง่ายของการบวกและการคูณเมทริกซ์และเวกเตอร์ ให้เวกเตอร์สองตัวมา

ก = ; เวกเตอร์แถว %
ข = ; เวกเตอร์คอลัมน์ %

จากนั้นการคูณเวกเตอร์ทั้งสองนี้สามารถเขียนได้ดังนี้

ค = ก*ข; % ค=1+2+3+4+5=16
ง = ข*ก; % d – เมทริกซ์ขององค์ประกอบ 5x5

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

การบวกและการลบเวกเตอร์สองตัวเขียนได้ดังนี้:

ก1 = ;
ก2 = ;
ค = a1+a2; % ค = ;
ค = a2-a1; % ค = ;

โปรดทราบว่าการดำเนินการบวกและการลบสามารถทำได้ระหว่างเวกเตอร์คอลัมน์สองตัวหรือเวกเตอร์สองแถว มิฉะนั้น MatLab จะแสดงข้อความแสดงข้อผิดพลาดเนื่องจาก ไม่สามารถเพิ่มเวกเตอร์ประเภทต่างๆ ได้ นี่เป็นกรณีของการดำเนินการทางคณิตศาสตร์ที่ผิดกฎหมายทั้งหมด: หากไม่สามารถคำนวณได้ MatLab จะรายงานข้อผิดพลาดและโปรแกรมจะสิ้นสุดในบรรทัดที่เกี่ยวข้อง

การดำเนินการคูณและการบวกระหว่างเมทริกซ์จะดำเนินการในลักษณะเดียวกัน:

ก = ;
B = อัน(3);
ค = ก+บี; % การบวกของเมทริกซ์สองตัวที่มีขนาดเท่ากัน
ง = A+5; % การบวกเมทริกซ์และจำนวน
อี = A*B; % การคูณเมทริกซ์ A ด้วย B
ฉ = ข*ก; % การคูณของเมทริกซ์ B ด้วย A
ก = 5*ก; % การคูณเมทริกซ์ด้วยตัวเลข

การดำเนินการในการคำนวณเมทริกซ์ผกผันตลอดจนการย้ายเมทริกซ์และเวกเตอร์มีการเขียนดังนี้:

ก = ; เวกเตอร์แถว %
ข = ก'; % คอลัมน์เวกเตอร์ที่สร้างโดย
% โดยการย้ายเวกเตอร์แถว a
ก = ; เมทริกซ์องค์ประกอบ % 3x3
ข = ก*ก; %B = – เวกเตอร์แถว
ค = A*ข; %C = – เวกเตอร์คอลัมน์
D = ก*ก*ก; % D = 45 – ตัวเลข ผลรวมขององค์ประกอบของเมทริกซ์ A
อี = เอ'; % E – เมทริกซ์ขนย้าย A
F = เชิญ(A); % F – เมทริกซ์ผกผัน A
ก = ก^-1; % G – เมทริกซ์ผกผัน A

จากตัวอย่างข้างต้น เห็นได้ชัดว่าการดำเนินการของการย้ายเมทริกซ์และเวกเตอร์นั้นระบุด้วยสัญลักษณ์ ‘ (อะพอสทรอฟี) ซึ่งวางอยู่หลังชื่อของเวกเตอร์หรือเมทริกซ์ การคำนวณค่าผกผันของเมทริกซ์สามารถทำได้โดยการเรียกใช้ฟังก์ชัน inv() หรือโดยการเพิ่มเมทริกซ์ยกกำลัง -1 ผลลัพธ์ในทั้งสองกรณีจะเหมือนกัน และมีวิธีการคำนวณสองวิธีเพื่อความสะดวกในการใช้งานเมื่อใช้อัลกอริธึมที่แตกต่างกัน

หากในกระบวนการคำนวณจำเป็นต้องคูณหารหรือเพิ่มองค์ประกอบของเวกเตอร์หรือเมทริกซ์ทีละองค์ประกอบจากนั้นจะใช้ตัวดำเนินการต่อไปนี้สำหรับสิ่งนี้:

.* - การคูณตามองค์ประกอบ
./ และ.\ - การหารแบบองค์ประกอบต่อองค์ประกอบ
.^ - การยกกำลังตามองค์ประกอบ

ลองดูว่าตัวดำเนินการเหล่านี้ทำงานอย่างไรโดยใช้ตัวอย่างต่อไปนี้

ก = ; เวกเตอร์แถว %
ข = ; เวกเตอร์แถว %
ค = ก.*ข; %ค=
A = อัน(3); % 3x3 เมทริกซ์ประกอบด้วยเมทริกซ์
ข = ; % เมทริกซ์ 3x3
C = A.*B; % 3x3 เมทริกซ์ประกอบด้วย
ง = ก./บี; % 3x3 เมทริกซ์ประกอบด้วย
จ = ก.\B; % 3x3 เมทริกซ์ประกอบด้วย
ฟ = อ.^2; % กำลังสององค์ประกอบของเมทริกซ์ A

เพื่อสรุปส่วนนี้ เราจะพิจารณาฟังก์ชันต่างๆ ที่เป็นประโยชน์เมื่อทำงานกับเวกเตอร์และเมทริกซ์

หากต้องการค้นหาค่าสูงสุดขององค์ประกอบเวกเตอร์ ให้ใช้ฟังก์ชันมาตรฐาน max() ซึ่งจะส่งคืนค่าสูงสุดที่พบขององค์ประกอบและตำแหน่ง (ดัชนี):

ก = ;
= สูงสุด(ก); % v = 6, i = 2;

โวลต์ = สูงสุด(ก); % โวลต์ = 6;

ตัวอย่างข้างต้นแสดงให้เห็นสอง วิธีทางที่แตกต่างเรียกใช้ฟังก์ชัน max() ในกรณีแรกทั้งค่าสูงสุดขององค์ประกอบและดัชนีในเวกเตอร์จะถูกกำหนดและในกรณีที่สอง - เฉพาะค่าสูงสุดขององค์ประกอบเท่านั้น

ในกรณีของเมทริกซ์ ฟังก์ชันนี้จะกำหนดค่าสูงสุดที่อยู่ในคอลัมน์ ดังแสดงในตัวอย่างด้านล่าง:

ก = ;
= สูงสุด(A); %วี=,ฉัน=
วี = สูงสุด(A); %V=

ไวยากรณ์ทั้งหมดของฟังก์ชัน max() สามารถพบได้โดยการพิมพ์คำสั่งในหน้าต่างคำสั่ง MatLab

ช่วย<название функции>

ฟังก์ชัน min() ทำงานในลักษณะเดียวกัน ซึ่งกำหนดค่าต่ำสุดขององค์ประกอบของเวกเตอร์หรือเมทริกซ์และดัชนี

ฟังก์ชั่นที่มีประโยชน์อีกประการหนึ่งสำหรับการทำงานกับเมทริกซ์และเวกเตอร์คือฟังก์ชัน sum() ซึ่งคำนวณผลรวมของค่าขององค์ประกอบของคอลัมน์เวกเตอร์หรือเมทริกซ์:

ก = ;
s = ผลรวม (ก); % ส = 3+5+4+2+1=15
ก = ;
S1 = ผลรวม(A); %S1=
S2 = ผลรวม(ผลรวม(A)); % S2=39

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

หากต้องการเรียงลำดับค่าองค์ประกอบของเวกเตอร์หรือเมทริกซ์ตามลำดับจากน้อยไปมากหรือจากมากไปหาน้อย ให้ใช้ฟังก์ชัน sort() ดังนี้

ก = ;

b1 = เรียงลำดับ(a); %b1=
b2 = sort(a, 'ลงมา'); %b2=
b3 = sort(a, 'ขึ้นไป'); %b3=

สำหรับเมทริกซ์

ก = ;
B1 = เรียงลำดับ(A); %B1=
B2 = เรียงลำดับ(A, 'ลง'); %B2=

ในโจทย์เชิงปฏิบัติหลายๆ ข้อ คุณมักจะต้องหาองค์ประกอบเฉพาะในเวกเตอร์หรือเมทริกซ์ ซึ่งสามารถทำได้โดยใช้ฟังก์ชัน find() มาตรฐาน ซึ่งใช้เงื่อนไขอาร์กิวเมนต์ตามเงื่อนไขที่พบองค์ประกอบที่ต้องการ เช่น

ก = ;
b1 = ค้นหา (a == 2); % b1 = 4 – ดัชนีขององค์ประกอบ 2
b2 = ค้นหา (a ~= 2); % b2 = – ดัชนีที่ไม่มี 2
b3 = ค้นหา (a > 3); % b3 =

ในตัวอย่างที่ให้มา สัญลักษณ์ '==' หมายถึงการตรวจสอบความเท่าเทียมกัน และสัญลักษณ์ '~=' ตรวจสอบความไม่เท่าเทียมกันของค่าขององค์ประกอบของเวกเตอร์ a ตัวดำเนินการเหล่านี้จะอธิบายรายละเอียดเพิ่มเติมในส่วนตัวดำเนินการแบบมีเงื่อนไข

ฟังก์ชันที่มีประโยชน์อีกฟังก์ชันหนึ่งสำหรับการทำงานกับเวกเตอร์และเมทริกซ์คือฟังก์ชัน Mean() สำหรับการคำนวณค่าเฉลี่ยเลขคณิต ซึ่งทำงานดังนี้:

ก = ;
ม. = ค่าเฉลี่ย (ก); % ม. = 3
ก = ;
M1 = ค่าเฉลี่ย(A); % M1 =
M2 = ค่าเฉลี่ย (ค่าเฉลี่ย (A)); % M2 = 4.333