Skip to content

Block Matrix Partitioning

Run the Block Matrix MicroSim Fullscreen

Edit the Block Matrix MicroSim with the p5.js editor

You can include this MicroSim on your website using the following iframe:

1
<iframe src="https://dmccreary.github.io/linear-algebra/sims/block-matrix/main.html" height="452px" scrolling="no"></iframe>

Description

A block matrix (or partitioned matrix) views a matrix as an array of smaller matrices called blocks or submatrices. This MicroSim lets you interactively partition an 8×8 matrix and see how the blocks are formed.

Key Features:

  • Draggable Partitions: Drag the red (horizontal) and blue (vertical) handles to resize blocks
  • Color-Coded Blocks: Each of the four blocks (A, B, C, D) has a distinct color
  • Preset Patterns: Choose from 2×2, row, column, or asymmetric partitions
  • Dimension Display: See the dimensions of each block update in real-time

Block Matrix Notation

A matrix M partitioned into four blocks is written:

\[M = \begin{bmatrix} A & B \\ C & D \end{bmatrix}\]

where A, B, C, D are submatrices with compatible dimensions:

  • A is (top rows) × (left columns)
  • B is (top rows) × (right columns)
  • C is (bottom rows) × (left columns)
  • D is (bottom rows) × (right columns)

Why Block Matrices?

Parallel Computation

Independent blocks can be processed on different cores or machines.

Structured Algorithms

Many algorithms exploit block structure: - Block LU decomposition - Strassen's matrix multiplication - Hierarchical matrices (H-matrices)

Conceptual Clarity

Complex systems naturally decompose into interacting subsystems that correspond to blocks.

Lesson Plan

Learning Objectives

After using this MicroSim, students will be able to:

  1. Partition a matrix into blocks of specified dimensions
  2. Write block matrix notation for a given partition
  3. Identify valid block decompositions for matrix operations
  4. Explain how block structure enables efficient computation

Exploration Activity (5 minutes)

  1. Default Partition: Observe the symmetric 4×4 / 4×4 split
  2. Drag Partitions: Move handles to create different block sizes
  3. Try Presets: Compare row partition vs column partition
  4. Check Dimensions: Verify that block dimensions sum to 8

Discussion Questions

  • What happens if you partition a matrix for block multiplication but the inner dimensions don't match?
  • When would you choose row partition vs 2×2 blocks?
  • How does block structure relate to parallel computing?

References