Jump to content

- - - - -

Polygonal Numbers - Backwards Derivations

  • Please log in to reply
No replies to this topic

#1 doc_starz



  • Members
  • PipPip
  • 18 posts

Posted 17 June 2011 - 06:25 AM

About a year ago I posted an inquiry about deriving a polygonal (figurate) number backwards ;

This was the original post

I received excellent feedback from a number of people (thanks folks), and I realized I needed to clarify what I was after.

I've done that and I could use a hand and would appreciate feedback by all and any who feel inclined.

What Im after is a formula ( and or algorithm) , that I can take and then code, write into a program or script that will do the following ;

Any number from 1 to say 6 digits is input and then evaluated to see whether it qualifies as a polygonal number and if so how many sides it would have. Previously I said I wanted to determine if it was a figurate, but really I'm just after form symmetry here, and since figurates are polygonal, right now it doesn't matter to me whether a number is polygonal AND a centered figurate of some kind or similar. Really all I want to know is whether a given numeric value has form symmetry and regular edges...

But there's a bit of catch, I'm also wanting to evaluate 'graininess'... what do I mean by that? Basically, instead of just determining whether or not a given value is a specific fit for an exact polygonal number of x sides, I want to also find out for those numbers that are NOT proper exact polygonal numbers, what polygonal number they would be closest to...

Likely I'm looking at some kind of remainder value to be used as a unit measure for grain resolution. In other words say a given value of large magnitude, 6 digits is not a perfect triangular number but its closest to a value of a triangular number than any other polygon type and is over or under by a certain number which is calculated and displayed.

Don Blaze gave me some good direction with some of the formulas he displayed at the link (above), I'm getting the basic logic I think however I tried this particular formula and couldn't get it to work as is with a variety of inputs.

It DOES work if I use a square number like 25, and if I enter the values of 4 for 's' and 25 for n, his formula ;


returns the value of 5, which divided into 25 does of course reveal the # of sides ; four, which is what I'm after
but I cant take any given value and feed it into the formula and get consistent results that are accurate, i.e. if I enter values for other polygonals I don't get the correct side #'s

Imagine you were looking at any of the values on this link ;


For example ;

Say we chose a nonagonal of 6069 or a hexagonal of 3160, or a pentagonal of 2882 as our single input value and we want our formula or algorithm to simply spit out the number of values as the resultant, so we'd get either a 9 a 6 or a 5

How would this formula look, function? I would honestly love and appreciate some help with this, and if I can see us arrive at a functioning routine I'm quite happy to share back the applet I code up for any who might find it helpful or meaningful

Once we get that wrapped, however here is the next step and its what I'm really after as the end result, being able to take any given number whether its a proper polygonal value or not and determining its closest fit or approximation to the polygonal number and providing a graininess gauge based on remainder values.

Here are some examples of simple smaller number ;



Some larger numbers, note some numbers may have integer values to the fourth decimal position ;


So any one of the above values constitute the ONLY input for the formula, algorithm, and the formula using fixed constants, operators, and similar then yields an output which is a numeric value that species the number of sides of the polygon that the number either fits exactly OR comes closest to fitting and in the case of the latter provides a remainder value as some sort of graininess factor.

This graininess factor is used to discerned the degree of form symmetry or asymmetry of the value.

Likely the question will come up, how far off can a value be from a given "closest match" polygonal number to qualify before the asymmetry makes the match meaningless? A logical range will have to be hard wired in so that for those values that are too far away from matching a given polygonal number return a null or some kind of flag to alert the code that no match is found. I'm open to suggestions here but Id like to have the option to make this programmtically adjustable so I can tweak and
tune and fiddle with this as an option I can calibrate. Obviously values that are too far away from a closest match will have to be classified as an asymmetric blob.

Why would I want to do this some may ask? Ok, my reason is a bit weird but I think many will find it interesting and warranted.

Im interested in population dynamics, specifically in simple marine organisms and other values found in natural systems.

One example of this is Verhultz Equations yielding cyclic waxing and waning values that are repetitive over time are one of the areas Im focusing on, see ;

Ive corresponded over the years with Ray Tomes of ;

Id like to be able to capture values over time and compare the geometric fluctuations in the cycles themselves, Tomes seems to think that numeric values associated with dynamic, systemic change within a given natural system will reveal geometric relations - Id like to be able to experiment essentially with this.

If we can derive this function it will come in handy for comparative analysis.

Thanks folks for any help you can offer!