Rank-2 Tensor · Interactive Module

Solving for Eigenvalues

The characteristic equation, lambda_1 and lambda_2, and what they mean physically

Theory Page
← Back to Quadratic Form

Where Do Eigenvalues Come From?

An eigenvalue answers this question: is there a special direction in which the tensor T acts as a pure stretch —> not rotating the vector, only scaling it?

We are looking for a vector e and a number lambda such that:

// The eigenvalue equation:
T . e = lambda . e

// This means: tensor T acting on vector e
// gives back the SAME direction, just scaled by lambda

// Rearranging:
T . e - lambda . e = 0
( T - lambda . I ) . e = 0

// For a non-zero solution e to exist:
det( T - lambda . I ) = 0  -> the characteristic equation
Physical Meaning in One Sentence

An eigenvalue lambda is the scaling factor the tensor applies along its principal axis —> the unique direction where the tensor's response is perfectly parallel to the input. In your demo these are the directions of the unit vectors e_1 and e_2.

Building the Quadratic Equation in Lambda

Starting from your tensor T with T11 = a, T12 = c, T21 = c, T22 = b, expand det(T - lambda . I) = 0 step by step:

// Step 1: Write T - lambda*I
T - lambda . I = | a - lambda     c     |
                  | c            b - lambda |

// Step 2: Take the determinant
det = (a - lambda)(b - lambda) - c . c

// Step 3: Expand the brackets
= ab - a.lambda - b.lambda + lambda² - c²

// Step 4: Collect terms
= lambda² - (a+b).lambda + (ab - c²) = 0

// Recognise the invariants (shown in demo also):
= lambda² - Trace.lambda + Det = 0

// This is a standard quadratic in lambda:
A = 1,  B = -(a+b),  C = (ab - c²)
The Invariants Appear Naturally

The characteristic equation is lambda² - Trace*lambda + Det = 0. The trace and determinant of your tensor appear as the coefficients. This is why they are called invariants —> they are the natural constants of the tensor's own equation.

Solving for lambda_1 and lambda_2

Apply the standard quadratic formula to lambda² - (a+b).lambda + (ab - c²) = 0:

// Quadratic formula: lambda = [-B +/- sqrt(B²-4AC)] / 2A
// Here A=1, B=-(a+b), C=(ab-c²)

lambda = [ (a+b) +/- sqrt( (a+b)² - 4(ab-c²) ) ] / 2

// Simplify the discriminant:
(a+b)² - 4(ab-c²)
= a² + 2ab + b² - 4ab + 4c²
= a² - 2ab + b² + 4c²
= (a-b)² + 4c²

// Final clean solution:

lambda_1 = [ (a+b) + sqrt( (a-b)² + 4c² ) ] / 2

lambda_2 = [ (a+b) - sqrt( (a-b)² + 4c² ) ] / 2
The Discriminant (a-b)² + 4c²

The term inside the square root is (a-b)² + 4c². This is always positive or zero —> so eigenvalues of a symmetric tensor are always real numbers, never complex. This is a fundamental theorem: symmetric tensors always have real eigenvalues.

What Each Part of the Formula Tells You

Part of Formula Mathematical Role Physical Meaning
(a+b) / 2 Centre value —> average of eigenvalues Mean resistance of the tensor in all directions —> the isotropic part
sqrt( (a-b)² + 4c² ) / 2 Half the spread between eigenvalues Degree of anisotropy —> how different the easy and hard directions are
lambda_1 (plus sign) Larger eigenvalue Hard axis —> maximum resistance direction, short ellipse semi-axis
lambda_2 (minus sign) Smaller eigenvalue Easy axis —> minimum resistance direction, long ellipse semi-axis
(a-b) Diagonal asymmetry How different x and y resistances are before coupling
2c Off-diagonal coupling How strongly x and y directions interact —> tilt of principal axes
Car Analogy - Reading the Formula

The Mean Resistance and the Spread

Think of the formula as two separate quantities added and subtracted from a central value. The centre (a+b)/2 is the average resistance of the car —> if you pushed it from infinitely many angles and averaged the resistance, you would get exactly this number. It never changes under rotation —> it is related to the trace.

The spread term sqrt((a-b)² + 4c²) / 2 tells you how far the easy and hard directions are from that average. A large spread means the car is highly asymmetric —> very easy forward, very hard sideways. A spread of zero means the car is a perfect sphere —> equal resistance in every direction.

lambda_1 = mean + spread is the hardest push direction. lambda_2 = mean - spread is the easiest push direction. The car's physical reality is completely captured by these two numbers.

What Happens at the Extremes

Case 1

c = 0 (No coupling —> principal frame)

1 Discriminant = sqrt( (a-b)² + 0 ) = |a - b|
2 lambda_1 = [ (a+b) + |a-b| ] / 2 = max(a, b)
3 lambda_2 = [ (a+b) - |a-b| ] / 2 = min(a, b)
4 Eigenvalues are just the diagonal entries a and b directly. Principal axes align with the coordinate axes —> this is exactly what you see in demo when c = 0
Case 2

a = b (Equal diagonal —> symmetric car)

1 Discriminant = sqrt( 0 + 4c² ) = 2|c|
2 lambda_1 = a + |c|   lambda_2 = a - |c|
3 The coupling c alone creates the difference between eigenvalues. Car analogy: a square car —> equal front-back and side-to-side resistance —> but the coupling c tilts the response diagonally
Case 3

a = b and c = 0 (Isotropic —> perfect circle)

1 Discriminant = sqrt( 0 + 0 ) = 0
2 lambda_1 = lambda_2 = a — both eigenvalues are identical
3 The ellipse becomes a circle of radius 1/sqrt(a). Rotating theta has zero effect on any component. Car analogy: a perfect sphere —> same resistance in every direction
When the Ellipse Breaks —> c² greater than ab

If c² becomes larger than ab then the determinant ab - c² goes negative. The discriminant sqrt((a-b)² + 4c²) becomes larger than (a+b), making lambda_2 negative. A negative eigenvalue means the quadratic form is no longer always positive —> the curve ax² + 2cxy + by² = 1 becomes a hyperbola, not an ellipse. Watch for this in demo when c is very large.

Complete Solution: a = 3, b = 1, c = 1

// Given: a = 3, b = 1, c = 1

// Step 1: Characteristic equation
lambda² - (3+1).lambda + (3*1 - 1²) = 0
lambda² - 4.lambda + 2 = 0
           ^Trace       ^Det

// Step 2: Discriminant
D = (a-b)² + 4c²
D = (3-1)² + 4*(1²)
D = 4 + 4 = 8
sqrt(D) = 2.828

// Step 3: Eigenvalues
lambda_1 = (4 + 2.828) / 2 = 3.414  -> hard axis (short semi-axis)
lambda_2 = (4 - 2.828) / 2 = 0.586  -> easy axis (long semi-axis)

// Step 4: Semi-axes of the ellipse
r_1 = 1 / sqrt(3.414) = 0.541  -> short axis length
r_2 = 1 / sqrt(0.586) = 1.306  -> long axis length

// Step 5: Verify invariants
lambda_1 + lambda_2 = 3.414 + 0.586 = 4.000 = Trace  confirmed
lambda_1 * lambda_2 = 3.414 * 0.586 = 2.001 = Det    confirmed
Verify in Demo

Set a = 3, b = 1, c = 1 in demo. The unit vectors e_1 and e_2 will be tilted at an angle —> not along the x or y axis —> because c is nonzero. The ellipse semi-axes will measure 0.541 and 1.306. Now drag t=theta: all four matrix entries change continuously but lambda_1 = 3.414 and lambda_2 = 0.586 remain perfectly constant throughout.

Eigenvalues in the Real World

🚗

Moment of Inertia

The eigenvalues of a car's inertia tensor are its three principal moments —> the resistance to spinning about each principal axis. Engineers compute these to predict how a car rolls, pitches, and yaws in a collision or during cornering.

🔩

Principal Stresses

In structural engineering, the eigenvalues of the stress tensor are the principal stresses —> the maximum and minimum normal stresses at a point. Materials fail when a principal stress exceeds the yield strength. Eigenvalues literally predict where a bridge will crack.

🌡️

Thermal Conductivity

In anisotropic materials like wood or crystals, the eigenvalues of the conductivity tensor give the thermal conductivities along the principal directions. Heat flows fastest along the large-eigenvalue axis —> the easy thermal axis.

🧬

Diffusion Tensor MRI

In brain imaging, each voxel has a diffusion tensor whose eigenvalues measure water diffusion rates along three axes. The largest eigenvalue reveals the direction of nerve fibres. Doctors use this to detect strokes and map neural pathways.

Everything in One Place

// Tensor:
T = | a   c |    T11=a, T12=c, T21=c, T22=b
    | c   b |

// Characteristic equation:
lambda² - (a+b).lambda + (ab-c²) = 0

// Eigenvalue solution:
lambda_1 = [ (a+b) + sqrt( (a-b)² + 4c² ) ] / 2
lambda_2 = [ (a+b) - sqrt( (a-b)² + 4c² ) ] / 2

// Ellipse semi-axes in the demo:
r_1 = 1 / sqrt(lambda_1)  -> short axis (hard direction)
r_2 = 1 / sqrt(lambda_2)  -> long axis (easy direction)

// Invariant checks:
lambda_1 + lambda_2 = a + b  = Trace
lambda_1 * lambda_2 = ab - c²  = Determinant
The Big Picture

Eigenvalues Are the Soul of the Tensor

The four entries a, b, c of your tensor change every time you rotate the coordinate frame. The components are like shadows —> they depend on which way the light is shining. But lambda_1 and lambda_2 never change. They are the true physical content of the tensor.

For the car: no matter how you orient your measuring axes around the parked car, the car has one direction where it rolls most easily and one where it resists most strongly. Those two resistance values are lambda_2 and lambda_1. They are properties of the car, not of your measuring frame. The quadratic formula extracts these physical truths from whatever coordinate description you happen to be using.

This is why solving the characteristic equation lambda² - Trace.lambda + Det = 0 is so powerful —> it strips away all the coordinate dependence and leaves you with only what is physically real.

← Back to Quadratic Form Next: Trace and Determinant Invariance → Back to Demo