Problem calculating eigenvalues and eigenvectors

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
1 replies · 2K views
Frank Einstein
Messages
166
Reaction score
1
Hello everyone. I am trying to construct a functioning version of randomfields (specifically 2D_karhunen_loeve_identification_example.py) in Matlab. For that, I have to calculate the Karhunen-Loève expansion of 2D data, since this is what it says in the documentation. I also have some sample data to test my results.
I have a matrix of size 144*7, being 144 the number of points, 5 the number of random variables and the first two, the X and Y points of each value. If I ignore the first two rows and calculate

[CODE lang="matlab" title="Eigenpair"][evec, eval]=eig(cov(realizations));
[/CODE]
the resulting eigenvectors and eigenvalues don't look at all like the ones of the sample data. I was wondering if this might happen because I am ignoring the grid positions at the time of calculating the covariance matrix.

Best regards.
Frank.

E. G. I will attach the stochastic realizations I have received and what I am expected to get
 

Attachments

  • 2D_sample_paths.txt
    2D_sample_paths.txt
    25 KB · Views: 227
  • 2D_identification_eigensolution_0.png
    2D_identification_eigensolution_0.png
    14.3 KB · Views: 224
  • 2D_identification_eigensolution_1.png
    2D_identification_eigensolution_1.png
    13.4 KB · Views: 243
  • 2D_identification_eigensolution_2.png
    2D_identification_eigensolution_2.png
    16.3 KB · Views: 221
  • 2D_identification_eigensolution_3.png
    2D_identification_eigensolution_3.png
    15.8 KB · Views: 221
  • 2D_identification_eigensolution_4.png
    2D_identification_eigensolution_4.png
    13.9 KB · Views: 244
on Phys.org
I'm struggling to understand your problem. What are the "grid positions" you're referring to?

I believe EIG does not return the eigenvalues / eigenvectors in any particular order. You may be comparing to a plot where they are sorted in order of descending eigenvalue magnitude.

Perform that sort and see if it improves your results.