Highly ill-conditioned (close to singular) linear problem

  • Thread starter Thread starter anaemic1
  • Start date Start date
  • Tags Tags
    Linear
Click For Summary
The discussion revolves around a MATLAB linear problem where the matrix A is ill-conditioned due to its structure, with a high condition number primarily from a sparse second half. Despite efforts to improve the condition number using methods like SVD, the issue persists, although energy conservation checks remain valid with the linsolve function. The user also faces memory limitations when increasing the matrix size, noting that linsolve performs better with full matrices compared to sparse ones. Suggestions include splitting the matrix into blocks or exploring tensor product representations to simplify the problem. The user seeks advice on preconditioners or alternative solvers to effectively handle ill-conditioned systems.
anaemic1
Messages
3
Reaction score
0
Hello all,

I have a MATLAB Ax=b problem where A is a matrix generated from the eigenvalues/ vectors of another matrix, which is conditioned well (rcond >eps). A is around 5000 X 5000, complex, has its first half filled with values from the other matrix, and the other half has very few non-zero values (is mostly zeros). It is not suprising that the condition number for A is very high (I was able to reduce rcond to 1e-122 but still it is impossibly huge due to the second half contributing lots of zeros to the diagonal). I've literally tried everything but cannot improve the condition number beyond that. I've also tried 'svd' with tolerance levels but to no avail. There is a check on the validity of my answer, which is - total energy = 100% conserved. Surprisingly, this is true whenever I use linsolve in spite of the unreliable condition number. I suspect this might be due to the higher modes carrying more energy than the lower ones.

Another issue is "OUT OF MEMORY". Although I can recover variables using 'pack' and still complete the program run, I'm sure it will run out of steam after I increase the matrix size to a certain extent. The amazing thing is the program is way faster with linsolve i.e full matrices rather than sparse ones.

I have not used other sparse solvers like Super LU. I would definitely appreciate help from anyone with expertise in these issues or with solvers with capability to tackle ill-conditioned problems. Are there any kind of preconditioner/ scaling codes or do I have to change my system equations/ order?

Thanks and best regards,
Rama
 
Physics news on Phys.org
You could split the matrix into blocks and operate with those blocks. If the matrix has certain "mathematical" properties, then these could be used to simplify the problem. One could also try to write it as a tensor product and use this representation, but trivial algorithms will always go by ##O(n^3)## and ##O(n^2) ## is a lower bound.
 
I am studying the mathematical formalism behind non-commutative geometry approach to quantum gravity. I was reading about Hopf algebras and their Drinfeld twist with a specific example of the Moyal-Weyl twist defined as F=exp(-iλ/2θ^(μν)∂_μ⊗∂_ν) where λ is a constant parametar and θ antisymmetric constant tensor. {∂_μ} is the basis of the tangent vector space over the underlying spacetime Now, from my understanding the enveloping algebra which appears in the definition of the Hopf algebra...

Similar threads

  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 5 ·
Replies
5
Views
4K
  • · Replies 2 ·
Replies
2
Views
3K
Replies
2
Views
2K
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 2 ·
Replies
2
Views
5K
  • · Replies 44 ·
2
Replies
44
Views
5K
  • · Replies 7 ·
Replies
7
Views
2K