Select the vector component if the real part is sufficiently small

  • Context: Mathematica 
  • Thread starter Thread starter member 428835
  • Start date Start date
  • Tags Tags
    Component Vector
Click For Summary

Discussion Overview

The discussion revolves around selecting vector components based on the smallest real part of complex numbers. Participants explore the implications of sorting complex vectors in a computational context, particularly using Mathematica, and the challenges that arise when the real parts approach zero.

Discussion Character

  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant seeks to select the entire vector component with the smallest real part from a list of complex numbers.
  • Another participant asks for clarification on whether the numbers in question are complex numbers or vectors with complex components.
  • A participant describes their specific situation involving a vector of complex numbers that changes as a parameter is iterated, leading to unexpected sorting behavior in Mathematica.
  • Concerns are raised about how Mathematica sorts these components, with questions about whether it uses the modulus of the complex numbers for ordering.
  • A participant explains their work on a quadratic eigenvalue problem, noting that the real parts of the eigenvalues can vanish while the imaginary components grow, suggesting a potential method for ordering based on imaginary components.
  • One participant provides code snippets for extracting elements with the smallest real part and ordering by imaginary components, but does not confirm their correctness or applicability to the original problem.

Areas of Agreement / Disagreement

Participants express uncertainty about the sorting mechanism used by Mathematica and whether it aligns with the expected behavior of the vector components. There is no consensus on the best approach to order the outputs or resolve the sorting issues.

Contextual Notes

Participants mention the need for more information on the parameters and variables involved in the quadratic eigenvalue problem, indicating that additional context may be necessary for a complete understanding of the sorting challenges.

member 428835
Hi PF!

Given a list of numbers, how do I select the element that has the smallest real part? I don't just want the real part though, I want the entire component.

I googled this and tried a few things but nothing works.
 
Physics news on Phys.org
Can you provide some context here? Are these complex numbers or vectors whose components are complex numbers or qaternions?
 
jedishrfu said:
Can you provide some context here? Are these complex numbers or vectors whose components are complex numbers or qaternions?
I'm given a single vector who's components are complex. I'm iterating through a parameter, and as I do, Mathematica automatically sorts them (unsure how, it's under the hood). The parameter value I loop through sometimes sends the real part of some components to zero. Then Mathematica sorts, but the output is different, causing me a headache to find the correct vector position.

Example: let's say after three iterations the output vector looks as follows for each iteration $$\begin{bmatrix}1.6+i\\6.5+0i\\4+21i\end{bmatrix}\to\begin{bmatrix}1.5+1.2i\\4.8+200i\\0+36i\end{bmatrix}\to \begin{bmatrix}1.2+1.5i\\0+53i\\0+400i\end{bmatrix}$$

Each vector component should be smoothly transitioning through iterations, so there should be no jumps, and in fact each progression should be monotonic in both real and imaginary components. Notice going from vector 2 to 3 the sorting changes. Clearly in vector 3, the 2nd and 3rd component should be changed. However, sometimes Mathematica sorts outputs very confusing.

So I'm trying to identify the correct way to order these outputs.
 
Honestly I don’t know how sorting is involved here. Is it using the modulus of the complex number to order the components of each vector or more correctly list if it’s being sorted?

Are you saying you have some parameter say “t” that you are iterating over and multiplying the first vector by “t” to get the next vector? So that you are tracing some particles trajectory in a 3D complex number space?
 
jedishrfu said:
Honestly I don’t know how sorting is involved here. Is it using the modulus of the complex number to order the components of each vector or more correctly list if it’s being sorted?
Yea I think that's exactly what it's doing.

jedishrfu said:
Are you saying you have some parameter say “t” that you are iterating over and multiplying the first vector by “t” to get the next vector? So that you are tracing some particles trajectory in a 3D complex number space?
I'm afraid it's a little more complicated. I'm solving the quadratic eigenvalue problem $$M+\lambda \epsilon \Phi + \lambda^2 K = 0$$ where ##\epsilon## is changing. As it changes, the eigenvalues change, but they do so smoothly. The real parts of the eigenvalues eventually vanish, but the complex components monotonically rise, but at different slopes. But if the quantities are well ordered (no overlap) then I'm actually thinking I could order these by their imaginary components, since these components should grow approximately linearly.

Do you know how to do this?
 
No, but it’s good you explained it better as someone might jump in and help.

Can you add any more on the M, ##\lambda##, ##\epsilon##, ##\Phi##, and K?
 
If you want to extract the element of a list of complex constants with the smallest real part then

Code:
SortBy[{1.5 + 1.2 I, 4.8 + 200 I, 0 + 36 I}, Re][[1]]

will give you

Code:
36 I

If you want to order a vector of complex constants by their imaginary components then this

Code:
SortBy[{1.5 + 1.2 I, 4.8 + 200 I, 0 + 36 I}, Im]

will give you this

Code:
{1.5 + 1.2 I, 0 + 36 I, 4.8 + 200 I}
 
Last edited:
  • Like
Likes   Reactions: jedishrfu and member 428835

Similar threads

  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 6 ·
Replies
6
Views
1K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 3 ·
Replies
3
Views
6K
  • · Replies 9 ·
Replies
9
Views
4K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 50 ·
2
Replies
50
Views
4K