Problem with Karhunen-Loève expansion in matlab

  • Context: MATLAB 
  • Thread starter Thread starter confused_engineer
  • Start date Start date
  • Tags Tags
    Expansion Matlab
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
2 replies · 2K views
confused_engineer
Messages
34
Reaction score
1
TL;DR
I want to perform the KL expansion in Matlab, but I cannot calculate the zero-mean uncorrelated random variables
I have copied the code of the accepted answer to this post in the official Matlab forums, since I am interested in performing the KL expansion myself.

[CODE lang="matlab" title="Calculation of random variables"]clc

clear all

y=[1,2,4;2,3,10];

y=y' %Reasons for transposing will become clear when you will read the second point given below.

[V,D]=eig(cov(y))

KLT = V' * y';[/CODE]

As far as I understand, the vector defined in the last line, KLT are the uncorrelated random variables. The eigenvectors are certainly orthnormal since

[CODE title="orthonormal eigenvectors"]V(:,2)'* V(:,1) %Eigenvectors
[/CODE]
returns zero and

[CODE title="orthonormal eigenvectors2"]V(:,2)'* V(:,2)
[/CODE]
returns one.

Also,
[CODE title="orthogonal RV"]
cov(KLT')[/CODE]

returns orthogonal results and

[CODE title="variance"]var(KLT')

[/CODE]
are the eigenvalues. However, if I writethe means aren't zero, as the theory says.

Can someone please tell me what am I doing wrong?

Best regards.
Confused Engineer.
 
Physics news on Phys.org
confused_engineer said:
However, if I writethe means aren't zero, as the theory says.

If you write... what? Exactly?
 
confused_engineer said:
Summary:: I want to perform the KL expansion in Matlab, but I cannot calculate the zero-mean uncorrelated random variables

I have copied the code of the accepted answer to this post in the official Matlab forums, since I am interested in performing the KL expansion myself.

[CODE lang="matlab" title="Calculation of random variables"]clc

clear all

y=[1,2,4;2,3,10];

y=y' %Reasons for transposing will become clear when you will read the second point given below.

[V,D]=eig(cov(y))

KLT = V' * y';[/CODE]

As far as I understand, the vector defined in the last line, KLT are the uncorrelated random variables. The eigenvectors are certainly orthnormal since

[CODE title="orthonormal eigenvectors"]V(:,2)'* V(:,1) %Eigenvectors
[/CODE]
returns zero and

[CODE title="orthonormal eigenvectors2"]V(:,2)'* V(:,2)
[/CODE]
returns one.

Also,
[CODE title="orthogonal RV"]
cov(KLT')[/CODE]

returns orthogonal results and

[CODE title="variance"]var(KLT')

[/CODE]
are the eigenvalues. However, if I writethe means aren't zero, as the theory says.

Can someone please tell me what am I doing wrong?

Best regards.
Confused Engineer.

Arjan82 said:
If you write... what? Exactly?
Sorry, if I write mean(KLT')