I was envisioning a project where I could use my Banded Inverse Root Nonuniform Scatter (from here on BIRNS) equation. In this project I need control over not just the random band, but the scatter. Specifically, I want to know how many of the numbers (percentage) would be within a certain range.
Graphing the full BIRNS function is difficult because it has two inputs. However, the two inputs is just to make it symmetrical—we can get rid of half the function and assume the histogram will be a mirror image in the opposite direction.
The input into the random function is α which has a range from 0 <= α < 1. The question being asked is a frequency question: how many numbers lay between a given range. Unlike a normal histogram our range isn't even increment. For example, a normal histogram is usually sometime like a point representing the number of values between 0 and .1, .1 and .2, .2 and .3, ext. Our ranges are like this: 0 to .1, 0. to .2, 0 to .3, ext.
The trimmed down function to be analyzed is
. In order to get percentages we need to normalize the function for the input range. We obtain this through finding the minimum and maximum values for the function. While the function isn't linear, it is always either increasing or decreasing in value. Thus, we can just use the end points for the min and max values.
,
,
. In order to normalize this function we have to subtract off the minimum, and then divide by the range (Δy) which looks like this:
. So when we expand our function becomes
, and will make the range 0 <f(x) ≤ 1.
S is our scatter coefficient with a range S ≠ 1, 0 < S < ∞. If we to graph the function, S ≈ 1 will be almost linear, S > 1 will slope more and more steeply downward, and 0 < S < 1 will slope more and more steeply upward.
In the above graph, S ≈ 1 and the function is linear. Note that S can not be 1 or it will produce a divide-by-zero condition. However, we can analyze what the function does as S approaches 1 to see why this function becomes linear. For this, we can look at the limit of the function as S approaches 1:
. The result of 1 – x is exactly what the graph looks like.
Here with S = 16 we can see a sharp downward trend the gradually tapers off as x approaches 1. Again, we can see this relationship be using a limit:
. Thus larger values of S lead to a function that produces numbers weighted toward 0. This is why it worked so well for BIRNS which aimed to distribute the majority of the results close to the linear function. The larger value of S the closer to the the linear function because the output of f(x) was used as the random addition to the linear function. If that output was a usually a small number then there is usually not much deviation from the linear function.
And here the reverse with S = 1/16 we can see a gradual tapper that becomes more and more sharp as x approaches 1. Again, the limit will show us what happens:
. Thus smaller fractional values of S lead to a function that produces numbers weighted toward 1. Input of fractional values will not work in the BIRNS example, but they will work in the partial function.
All of this is useful for the function I wish to design. I can have random number weighted toward 0 or 1, and if need be, not weighted and almost uniformly random. So how do we know what the output will look like? For this, I'm going to produce a plot of two frequency graphs. One is a standard histogram, and the other is a sum if frequencies.
Here we see a frequency plot. The blue is a histogram, and the red a frequency sum. Blue uses the scale on the right side, and the red the scale on the left. How you read the data is as follows. The blue line is the occurrence of values, with the value being on the horizontal axis, and the occurrence on the vertical. For example, number close to 10% make up about 30% of the the function's output. The red graph is the point of this article. It has to be read from left to right and indicate the percentage the horizontal values, starting at 0, represent. For example, 45% of the results will be between 0 and 10%, and over 75% of the number are between 0 and 30%. 90% of the number are at or below an input of 50%. And this is exactly what I would need to know.