- #1

#### member 428835

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.

You should upgrade or use an alternative browser.

- #1

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.

- #2

Mentor

- 14,376

- 8,470

- #3

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.

- #4

Mentor

- 14,376

- 8,470

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?

- #5

Yea I think that's exactly what it's doing.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?

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.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?

Do you know how to do this?

- #6

Mentor

- 14,376

- 8,470

Can you add any more on the M, ##\lambda##, ##\epsilon##, ##\Phi##, and K?

- #7

- 1,074

- 32

If you want to extract the element of a list of complex constants with the smallest real part then

will give you

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

will give you this

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:

Share:

- Replies
- 5

- Views
- 466

- Replies
- 0

- Views
- 464

- Replies
- 3

- Views
- 699

- Replies
- 3

- Views
- 1K

MATLAB
A vector of matrices

- Replies
- 10

- Views
- 2K

- Replies
- 10

- Views
- 532

- Replies
- 16

- Views
- 4K

- Replies
- 1

- Views
- 2K

Mathematica
Update a vector in a for loop

- Replies
- 5

- Views
- 1K

- Replies
- 3

- Views
- 1K