1
$\begingroup$

I'm trying to plot a set of points with 20 digits precision which are taken from orderless list of numbers:

list={{1.7860408575894382005, -1.5587924375666050683},{1.7860408575896091911, -1.5587924375666726723},{1.7860408575896003445, -1.5587924375666730112},{1.7860408575895940105, -1.5587924375666762970},{1.7860408575896193031, -1.5587924375666770038},{1.7860408575895905033, -1.5587924375666808657},{1.7860408575895894882, -1.5587924375666854095},{1.7860408575894538176, -1.5587924375666871838},{1.7860408575896283332, -1.5587924375666872935},{1.7860408575895979651, -1.5587924375666883003},{1.7860408575895975652, -1.5587924375666883389},{1.7860408575895984311, -1.5587924375666884496},{1.7860408575895972755, -1.5587924375666884974},{1.7860408575895971074, -1.5587924375666887107},{1.7860408575895988804, -1.5587924375666888427},{1.7860408575895970482, -1.5587924375666889264},{1.7860408575895902831, -1.5587924375666890936},{1.7860408575895970722, -1.5587924375666891093},{1.7860408575895971488, -1.5587924375666892409},{1.7860408575895972490, -1.5587924375666893170},{1.7860408575895991916, -1.5587924375666895019},{1.7860408575895992167, -1.5587924375666903927},{1.7860408575895988047, -1.5587924375666914027},{1.7860408575895921132, -1.5587924375666915399},{1.7860408575895978411, -1.5587924375666923294},{1.7860408575895942880, -1.5587924375666927315},{1.7860408575895962978, -1.5587924375666928856},{1.7860408575896329117, -1.5587924375667037317},{1.7860408575896290997, -1.5587924375667246910},{1.7860408575894943502, -1.5587924375667396021},{1.7860408575896133102, -1.5587924375667461466},{1.7860408575895836952, -1.5587924375667615202},{1.7860408575895418352, -1.5587924375667622819}}

where every first number from the list is a real part of complex number and every second is an imaginary part.

Being inspired by @Carl Woll ideas from https://mathematica.stackexchange.com/a/153969/87389 and https://mathematica.stackexchange.com/a/146122/87389 I tried to implement them in my code. I create a function

plotting[xleft_,xright_,yup_,ydown_]:=Show[ListPlot[list,FrameLabel->{Re(\[Omega]),Im(\[Omega])},BaseStyle->{PrintPrecision->16}],PlotRange->{{xleft,xright},{yup,ydown}}, Frame -> True, ImageSize -> {700}, AspectRatio->1]

which allows me to plot points from (xleft,xright) range in x-axis and (yup,ydown) range in y-axis. (Of course if the points are in that ranges.) Let me plot some points from a specific range:

plotting[xleft=1.7860408575894,xright=1.7860408575897,yup=-1.5587924375666,ydown=-1.5587924375668]

enter image description here

As you can see these numbers from orderless list are coverging to some point. It reminds a spiral. But if I want to go deeper

pierwszyoverton=Show[plotting[xleft=1.7860408575895,xright=1.7860408575897,yup=-1.5587924375666,ydown=-1.5587924375668],BaseStyle->{PrintPrecision->16}]

by changing the last digit from 4 to 5 in xleft I obtain such a graph enter image description here

I want to go deeper by manually changing ranges because I want to extract these points which are the closest to the center of that spiral-like graph which allows me to use Wynn algorithm to accelerate the covergence and find the limit.

Thank you kindly for every idea.

Best regards,

kozapdh

$\endgroup$
1
  • $\begingroup$ You might also be interested in the plot manipulation tools developed in the answers to How to manipulate 2D plots? $\endgroup$
    – MarcoB
    Sep 18, 2022 at 19:48

1 Answer 1

2
$\begingroup$

Rescale your values so they are easier to manage and plot, then use ListPlot to manually find the approximate coordinates of the point in the rescaled list closest to the center of the spiral:

rescaled = Transpose[Rescale/@Transpose[list]];
ListPlot[
  rescaled,
  AspectRatio -> Automatic,
  PlotRange -> {{0.814, 0.82}, {0.462, 0.472}}
]

plot of points close to the center of the spiral

With this in hand, find the actual point in your rescaled list closest to your visual estimate using Nearest. Then use Position to find the position of that point in the rescaled list, and Extract the corresponding point at the same position in the original list.

Extract[
  list, 
  Position[
    rescaled,
    First@Nearest[rescaled,{0.817, 0.464}]
  ]
]

(* Out: {{1.7860408575895972490,-1.558792437566689317}} *)
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.