Animation 14

Eigenvectors pictured

symmetry-eigenbasis-stretch.mp4

These are sparse samples decoded from the current MP4, not newly rendered illustrations. They can support checks of the sampled states and labels, but cannot establish continuous motion, timing, transitions, or the absence of problems between samples. Use the full MP4 when judging those properties.

1280 × 720 · 24 fps · 14.5 s · 348 frames · 12 samples

MP4 SHA-256 627d8caf6e17df54a5c6851f9ca579314a2d120308ea56741b74c40388b9f31e

Frame manifest · Context markdown · Download complete review packet

Chapter context

Section: Primer -- Eigenfunctions. Excerpts are verbatim; line numbers refer to the included chapter markdown.

Caption

Eigenvectors pictured

Image description

Stretching in ordinary and eigenvector bases

Before the animation

Chapter lines 614–616

$(x,y)$ basis: components mix$(u,v)$ basis: components do not mix
$\displaystyle \begin{aligned}\mathbf r&=\frac12\begin{pmatrix}s+s^{-1}&s-s^{-1}\\s-s^{-1}&s+s^{-1}\end{pmatrix}\mathbf r_{\mathrm{in}}\\&=\frac12\left[(s+s^{-1})x+(s-s^{-1})y\right]\hat{\mathbf x}\\&\quad+\frac12\left[(s-s^{-1})x+(s+s^{-1})y\right]\hat{\mathbf y}\end{aligned}$$\displaystyle \begin{aligned}\mathbf r&=\begin{pmatrix}s&0\\0&s^{-1}\end{pmatrix}\mathbf r_{\mathrm{in}}\\&=su\hat{\mathbf u}+s^{-1}v\hat{\mathbf v}\end{aligned}$

Chapter lines 618–618

This is readily understood visually:

After the animation

Chapter lines 626–626

Now for a bunch of terminology. The "natural" basis vectors are the eigenvectors, the values a transformation scales these by are the eigenvalues and the basis they form is called the eigenbasis. When the "vectors" are functions, we call them eigenfunctions. As the transformation matrix is diagonal in the eigenbasis, the procedure for finding an eigenbasis is typically called diagonalization.

Generation source

Run the main script without arguments. It draws the eigenbasis-stretch frames with Pillow and encodes them with FFmpeg. It has no local Python imports or input movie.

Mapping evidence and limits

render() sets the exact symmetry-eigenbasis-stretch output stem. Constants specify 1280 x 720 at 24 fps. No matching validation JSON is present; attribution is by source/output name and pipeline, not a recorded movie hash.

Source SHA-256 values identify the exact downloadable bytes in this packet. The source mapping and recorded checks explain the likely generation pipeline; they do not prove that these exact source bytes produced the movie. A GitHub link pinned to a commit is provided only when the delivered source bytes exactly match that path at the build's Git HEAD.

Decoded contact sheet

Extraction method: Twelve evenly spaced decoded frame indices, including first and last. Native-resolution JPEGs from the encoded MP4; timestamps read from FFmpeg showinfo. No source rerendering. Frame indices are zero-based. Sparse samples do not establish continuous motion or capture every transition.. Frame indices are zero-based.

Timestamped decoded frames from symmetry-eigenbasis-stretch.mp4
Open contact sheet at full size

Full-size sampled frames

Decoded frame from symmetry-eigenbasis-stretch.mp4 at 00:00.000 · frame 0
00:00.000 · frame 0 · Full-size frame
Decoded frame from symmetry-eigenbasis-stretch.mp4 at 00:01.333 · frame 32
00:01.333 · frame 32 · Full-size frame
Decoded frame from symmetry-eigenbasis-stretch.mp4 at 00:02.625 · frame 63
00:02.625 · frame 63 · Full-size frame
Decoded frame from symmetry-eigenbasis-stretch.mp4 at 00:03.958 · frame 95
00:03.958 · frame 95 · Full-size frame
Decoded frame from symmetry-eigenbasis-stretch.mp4 at 00:05.250 · frame 126
00:05.250 · frame 126 · Full-size frame
Decoded frame from symmetry-eigenbasis-stretch.mp4 at 00:06.583 · frame 158
00:06.583 · frame 158 · Full-size frame
Decoded frame from symmetry-eigenbasis-stretch.mp4 at 00:07.875 · frame 189
00:07.875 · frame 189 · Full-size frame
Decoded frame from symmetry-eigenbasis-stretch.mp4 at 00:09.208 · frame 221
00:09.208 · frame 221 · Full-size frame
Decoded frame from symmetry-eigenbasis-stretch.mp4 at 00:10.500 · frame 252
00:10.500 · frame 252 · Full-size frame
Decoded frame from symmetry-eigenbasis-stretch.mp4 at 00:11.833 · frame 284
00:11.833 · frame 284 · Full-size frame
Decoded frame from symmetry-eigenbasis-stretch.mp4 at 00:13.125 · frame 315
00:13.125 · frame 315 · Full-size frame
Decoded frame from symmetry-eigenbasis-stretch.mp4 at 00:14.458 · frame 347
00:14.458 · frame 347 · Full-size frame