I'm by no means a mathematician, but I've been fiddling with Excel trying to figure this out (using cww256's values). My numbers are crazy long (20 digits) and even then I don't find them to be an acceptable fit. I'm pretty much posting this in the hopes it gives someone an idea or at least know what not to try.
I'm under the assumption that the relationship between unit maintenance and unit number in any given turn is linear (y = mx + b), while the relationship between m (also b) and a given turn is a cubic function (y = ax^3 + bx^2 + cx + d), with both m and b having different values for a, b, and c. These are big assumptions, I know.
So I have....
Unit Maintenance = m * (Unit Count) + b
where...
Unit Count = # of units, even number (round down if necessary)
m = a(Turn Count ^ 3) + b(Turn Count ^ 2) + c(Turn Count) + d
b = w(Turn Count ^ 3) + x(Turn Count ^ 2) + y(Turn Count) + z
a = 1.84774123523232 * 10^-08
b = 4.87158099588671 * 10^-06
c = 8.56277320763297 * 10^-03
d = 4.91428948032809 * 10^-01
w = -1.30350464430793 * 10^-08
x = 3.52305933497015 * 10^-05
z = 1.07274556807765 * 10^-02
So how do these crazy numbers compare to actual values provided, you may ask? You can see this screen shot to find out:
c.turn is calculated unit maintenance for that turn, a.turn is actual unit maintenance for that turn, and d.turn is the difference between the two values. At the bottom it shows the largest difference, smallest difference, and average difference for each turn. The number on the far right is an overall average of the difference for each turn. As you can see, no issue for turn 1, semi-close for turns 100 and 200, but it's as far off as -7 gold for turn 300. Oh well, gave it my best shot.