Friday, May 13, 2016


Supposing you had some initial point source locations, perhaps at the integers, and a standard deviation of a gaussian effect, you can undo the gaussian effect like so:

Set x(i)'s equal to the point source locations, and t^2 equal to the gaussian effect standard deviation...
Now setting this sum evaluated at each x(i) equal to the final intensity at xi gives a system of n linear equations in n unknowns that can be solved...
For example this could be the final distribution after a gaussian effect with a standard deviation of 1:
It has values .2, .25, .2 at x(i) = 1,2,3
The solve command will look like:
Plugging these coefficients into the equation and setting the standard deviation to a lesser value undoes the Gaussian effect, here I've stepped it back to t=.2:
The lower t is set the sharper the peaks...

Sunday, April 17, 2016

Rectangle warping

Solving this type of system of linear equations you can do any dimension rectangular grid and warp the picture any way even into 3 dimensions or over time!

Tuesday, February 23, 2016

Facebook page

I've collected all the best ideas on this blog and improved the presentation from these past 5 years and posted them over at a Facebook public page:

Windmill sail boat

Just a thought experiment... I wonder if you have a windmill turning a propeller on a boat if you could sail into the wind? I can kind of make an argument that it would go backwards, stay in one place, or go forward so I guess an experiment maybe with a scale model would have to be done...

Monday, February 15, 2016

Perfect pivot quick sort

Suppose you have n items to be sorted, for example:
The first step is to take the first four items from the list and arrange them in 2 pairs, so that the least and greatest of the four numbers is the first pair and the two in between are the next pair like so:
Now the repeating step is to take the next 2 items from the list and arrange the 3 pairs so the six items are in order reading down the left items then up the right like so:
adding 8,2 to
4,7 because these six items in order are 2,3,4,7,8,15
Now we can start a pile with 2 and 15 in it, and our four new numbers are just:
and repeat until all the numbers are exhausted for example it continues:
9,13 are added to
to get
then the 3 and the 13 join the piles so you have 2,15,3,13 and the four new numbers are:
to which you add 11,10 to get:
4, 11
7, 10
8, 9
and 4 and 11 get put onto the pile in progress to have 2,15,3,13,4,11

Now you can see that our bottom two number numbers must eventually be the median numbers of the set because every step found a number less and a number greater than them, and the pile can split in two for items less or greater than those two, this means you will have the perfect pivot to recursively apply the algorithm to the two halves!

Sunday, February 7, 2016

Maximizing CD Vector Magnitude Minimizes Length of Path through points

First defining some terms and a hypothesis for closed paths P on the plane through n points with x,y coordinates x[i], y[i] all in the first quadrant:
c and d so named because they are the cross and dot products of vectors from the origin to successive points on the path, and l is the sum of the lengths of the lines between successive points on the path each squared...

For example I plotted c,d values for the 720 possible closed paths through 7 random points all with the same starting point and got:

P[1] and P[-1] were the two solutions to the travelling salesman problem, or paths minimizing l through the points with the starting point fixed, and they also were the two points that maximized c^2+d^2, P[-1] being just P[1] traversing the points in reverse order...

**It looked to me even more generally decreasing c^2 +d^2 increased l proportionally but I'll have to investigate further**

Friday, January 29, 2016

within 6% Vector Coordinate Interpolation

For n points in any number of dimensions with coordinates P(n),
The function above interpolates the points within an error range of about 6% of the magnitude of the vector to each point... P(0) in the graph below is A, P(1) is B, up to P(6) being A again...
The above is 5 points of 2d vectors being interpolated... The nice thing about this formula is it applies to any number of points in any number of dimensions...

It goes very nearly through the midpoints between each pair of successive vertices, I think changing the e values in the formula to possibly two different numbers might be able to close in closer to the given points but maybe at the expense of not going as nicely through the midpoints...

The term inside the sum multiplying with the point vector is a normal distribution, with a value of 1 at a particular integer t value and tapering off on each side so that it's roughly 1/2 at the half integers on either side. The ideal would be a distribution with a peak of 1 at an integer t value and a value of exactly 1/2 at each half integer on either side and going completely to 0 everywhere at the integers on either side and beyond, but I think that's only really possible to approximate with a closed form function... Also if you go all the way to a triangular distribution over the interval so you make perfectly the polygon including the points you lose the nice property that the derivative is defined continuously everywhere...