Algorithm for a tensorial Karhunen-Loeve Transformation?

Click For Summary

Discussion Overview

The discussion revolves around finding a numerical algorithm for performing a Karhunen-Loeve transformation specifically for tensors. Participants explore the mathematical formulation and potential numerical approaches to solve for eigentensors of a correlation bitensor, with a focus on implementation challenges and the adaptation of existing scalar algorithms to tensor expressions.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant seeks a numerical algorithm for the Karhunen-Loeve transformation of tensors, specifically for solving an eigenvalue equation involving a correlation bitensor.
  • Another participant suggests using properties of finite-rank operators and discusses the transformation of operators, indicating that if the operator norm is less than one, certain calculations can be performed.
  • A participant proposes that the numerical schemes for scalars could be generalized to tensors by constructing a correlation matrix and solving for eigenvalues and eigenvectors, but expresses uncertainty about the implementation details.
  • There is a suggestion to explore tensor libraries in programming languages like C++ that may offer routines relevant to the problem, along with a reference to a specific tensor extension in the GNU Scientific Library.

Areas of Agreement / Disagreement

Participants express various ideas and approaches, but there is no consensus on a specific algorithm or implementation method for the tensorial Karhunen-Loeve transformation. The discussion remains unresolved with multiple competing views and uncertainties about the implementation.

Contextual Notes

Participants note challenges related to the adaptation of scalar algorithms to tensor expressions and the well-posedness of the proposed eigenvalue formulations. There are also references to conditions on operator norms and the spectrum that may affect the calculations.

Aimless
Messages
128
Reaction score
0
Does anyone happen to know a good algorithm for a numerical Karhunen-Loeve transformation for tensors?

Specifically, I'm trying to solve for the eigentensors of a correlation bitensor, along the lines of
[tex]\int_{-\infty}^{\infty} d^4x' \, C_{abc'd'}(x,x') \phi^{c'd'}(x') = \lambda \phi_{ab}(x) \,[/tex] where the primes represent indices which transform at the point [itex]x'[/itex]. What I need to find is a numerical algorithm to solve this equation with support on a lattice of points.

I have a good handle on how to do this for scalars, but can't figure out how to adapt the algorithm to handle tensor expressions. Does anyone have any experience with this, and if so could you give me some pointers?
 
Physics news on Phys.org
Hey Aimless.

I'm not an expert by any means but just a few ideas.

One possibility that might help is to use some of the properties for finite-rank operators whereby transformations of the operators follow the conventional transformation. For example if you wanted to calculate I / (I - A) then you could calculate A, A^2, A^3 and so on as long as the operator norm is < 1. You would want to check the conditions on the norms and the spectrum for when you can do this (i.e. of the operator).

They use for example in applied probability when you need to find the transition matrix of a system and you've give a relationship between the time-derivative of the matrix in form of dP/dt = PQ where Q is a constant matrix, but P is a function of time (i.e. continuous time markov chains).

If your numerical schemes generalize effectively enough, then you can replace your scalar quantities with matrices and take it from there.
 
chiro said:
If your numerical schemes generalize effectively enough, then you can replace your scalar quantities with matrices and take it from there.

I've thought about trying something along these lines, and I suspect that this is the right idea; I'm just stuck on the implementation.

For a scalar correlation function [itex]C(x,x')[/itex], the easy solution is to just treat the problem as having support only on the lattice, construct the correlation matrix [itex]C(x_i,x_j); \, i,j=1...N[/itex], and solve for the eigenvalues and eigenvectors.

Presumably, I could do the same thing for the tensor expression; then my eigenvalue problem turns into something like [tex]\sum_{j} C_{a_ib_ic_jd_j}(x_i,x_j) \phi^{c_jd_j}(x_j) = \lambda \phi_{a_ib_i}(x_i) \, .[/tex] However, this is where I start to get unsure about implementation.

The next step is presumably to rewrite this expression as something along the lines of [tex]\sum_{j} C_{a_ib_ic_jd_j}(x_i,x_j) \phi^{c_jd_j}(x_j) - \lambda \delta_{ij} g_{a_ic_j} g_{b_id_j} \phi^{c_jd_j}(x_j) = 0 \, ,[/tex] where [itex]g_{a_ic_j}[/itex] is the bivector of parallel transport. Thus giving my eigenvalue equation as [tex]det \left( C_{a_ib_ic_jd_j}(x_i,x_j) - \lambda \delta_{ij} g_{a_ic_j} g_{b_id_j}\right) = 0 \, .[/tex] However, I'm not sure what this means, or even if it's well-posed.
 
Have you looked at tensor libraries in something like C++ and see if the API of such implementations includes routines corresponding to the techniques used in your problem?

The tensor libraries should have exactly the same kind of implementation features as the normal matrix ones plus the other stuff for the generalized nature of the tensors.

I did a quick google search and I saw this:

http://www.gnu.org/software/gsl/

It has a tensor extension component which might help you out with regards to implementation, even if it leads to an implementation rather than being the whole solution in itself.
 

Similar threads

Replies
2
Views
2K
  • · Replies 0 ·
Replies
0
Views
2K
  • · Replies 67 ·
3
Replies
67
Views
17K
  • · Replies 6 ·
Replies
6
Views
4K
  • · Replies 35 ·
2
Replies
35
Views
30K
  • · Replies 10 ·
Replies
10
Views
5K
  • · Replies 5 ·
Replies
5
Views
3K