Why does this shortcut for eigenvectors of 2x2 symmetric work?

Click For Summary
SUMMARY

The discussion focuses on the computation of eigenvectors for a 2x2 symmetric matrix using MATLAB code from the eig2image.m file. The user, Rick, questions why the calculation of the eigenvector component v2x, derived from the expression 2*b and subsequently normalized, yields a valid eigenvector. The response clarifies that v2x is a scalar and cannot represent an eigenvector in a 2D vector space, emphasizing the need for a vector representation in eigenvector calculations.

PREREQUISITES
  • Understanding of eigenvalues and eigenvectors in linear algebra.
  • Familiarity with MATLAB programming and syntax.
  • Knowledge of symmetric matrices and their properties.
  • Basic concepts of vector normalization.
NEXT STEPS
  • Study the properties of eigenvectors and eigenvalues in 2x2 symmetric matrices.
  • Learn about MATLAB functions for eigenvalue decomposition, specifically the 'eig' function.
  • Explore vector normalization techniques and their significance in linear algebra.
  • Investigate the implications of real numbers in vector spaces and eigenvector definitions.
USEFUL FOR

Mathematicians, data scientists, and engineers working with linear algebra, particularly those utilizing MATLAB for eigenvalue problems and matrix computations.

RickF-
Messages
1
Reaction score
0
Hi,

I'k looking at some MATLAB code specifically eig2image.m at:

http://www.mathworks.com/matlabcent...angi-vesselness-filter/content/FrangiFilter2D

So, I understand how the computations are done with respect to the eigenvector / eigenvalues and using (varitions of ) the quadratic equation etc. But my question is about the computation of the eigenvector using the following code (based on the MATLAB code) given matrix [a b; b d];

%% My code, just a scalar version of eig2image.m for understanding eigenvector decomposition

M = [1,2;2,3];

function [ L1,L2,v1x,v1y,v2x,v2y ] = SymmetricEig( M )

% | a b |
% | |
% | b d |

a = M(1,1);
b = M(1,2);
d = M(2,2);

tmp = sqrt((a - d)^2 + 4*b^2);
v2x = 2*b;
v2y = d - a + tmp;

% Normalize
mag = sqrt(v2x^2 + v2y^2);

v2x = v2x/mag; %% Why is v2x now the correct eigenvector value?
v2y = v2y/mag;

% The eigenvectors are orthogonal
v1x = -v2y;
v1y = v2x;

% Compute the eigenvalues
mu1 = 0.5*(a + d + tmp);
mu2 = 0.5*(a + d - tmp);

% Sort eigen values by absolute value abs(Lambda1)<abs(Lambda2)
check=abs(mu1)>abs(mu2);

L1=mu1;
L1(check)=mu2(check);
L2=mu2;
L2(check)=mu1(check);

Ix=v1x;
Ix(check)=v2x(check);
Iy=v1y;
Iy(check)=v2y(check);

end

Notice my comment above - Why is v2x now the correct eigenvector value? It was b multiplied by two and then normalized to the magnitude of v2x,v2y; Why does this work? (and it does). It must be a shortcut, factorization, etc. but I don't see it and haven't seen anyplace else that does this.

I'm just curious.

Thanks

Rick
 
Physics news on Phys.org
b is a real number, so v2x is a real number. A real number cannot be an eigenvector (in a 2D vector space).
What do you mean with "eigenvector value"?
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 4 ·
Replies
4
Views
6K
  • · Replies 5 ·
Replies
5
Views
6K
  • · Replies 17 ·
Replies
17
Views
9K
Replies
2
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
Replies
1
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K
Replies
6
Views
2K
Replies
3
Views
2K