Sum of Cubes via Difference Tables

surprisetalk1 pts0 comments

Sum of cubes via difference tables - All this

And now it’s all this

I just said what I said and it was wrong

Or was taken wrong

Next post<br>Previous post

Sum of cubes via difference tables

July 19, 2026 at 9:07 PM by Dr. Drang

Yesterday I watched the most recent Numberphile video, in which Ben Sparks explains a few finite series and the equations that simplify the calculation of their sums. He derives the formulas graphically, and it’s all very cleverly done, especially the one for the sum of cubes.

The idea is to get a simple polynomial expression in n for

N=∑m=1nm3

As I said, Ben’s graphical method is really clever and easy to understand, and it leads to this expression:

N=14n2(n+1)2

I wanted to see if I could get that same result using a nongraphical and less clever method. The method that came to mind was to generate a handful of values, put them in a table, and start taking differences.

Here are some values of n, N, and the first four differences:

&Delta;<br>&Delta;²<br>&Delta;³<br>&Delta;⁴

19<br>18

27<br>37<br>24

36<br>64<br>61<br>30

100<br>125<br>91

225<br>216

441

The differences are calculated by looking in the preceding column and subtracting the value in the same row from the value in the following row. This sort of thing is fairly easy to do by hand but is really easy to do in a spreadsheet. Here’s a screenshot of the table in Numbers, where I’m displaying the formula for the first difference, &Delta;:

That formula can be filled into all the difference cells, which is why it’s so easy. (I included only the first six rows in the table above because I figured you’d trust me that all the values in the fourth difference column, &Delta;⁴, are the same.)

The constant values in the fourth difference column mean N is a fourth-degree polynomial in n:

N=a0+a1n+a2n2+a3n3+a4n4

Because the constant fourth difference is 6, we know that

a4=64!=624=14

This comes from the fact that differences are analogous to derivatives, and

d4Ndn4=4⋅3⋅2⋅1a4= 24a4

Once we know the degree of the polynomial and have a4, we can figure out the other coefficients by solving a set of four simultaneous equations for four different values of n and N. For example:

a0+a1⋅1+a2⋅12+a3⋅13+14⋅14=1

a0+a1⋅2+a2⋅22+a3⋅23+14⋅24=9

a0+a1⋅3+a2⋅32+a3⋅33+14⋅34=36

a0+a1⋅4+a2⋅42+a3⋅43+14⋅44=100

We could use any four of the six Ns we’ve calculated, but the first four are convenient. Let’s solve them in Python using NumPy and the solve function from the linalg submodule. We can do this interactively:

python:<br>from numpy import np

m = np.array([[1, 1, 1, 1], [1, 2, 4, 8], [1, 3, 9, 27], [1, 4, 16, 64]])<br>b = np.array([1 - 1**4/4, 9 - 2**4/4, 36 - 3**4/4, 100 - 4**4/4])<br>np.linalg.solve(m, b)

The last line returns

python:<br>array([ 1.77635684e-15, -3.99680289e-15, 2.50000000e-01, 5.00000000e-01])

Those first two elements of the solution array are at the lower limit of what a floating point number can be. So we can say

a0=0a1=0a2=14a3=12

Therefore,

N=14n4+12n3+14n2

or, after collecting terms,

N=14n2(n+1)2

which is the formula Ben got in the video.

Doing basically the same thing in Mathematica is

m = {{1, 1, 1, 1}, {1, 2, 4, 8}, {1, 3, 9, 27}, {1, 4, 16, 64}};<br>b = {1 - 1^4/4, 9 - 2^4/4, 36 - 3^4/4, 100 - 4^4/4};<br>LinearSolve[m, b]

which returns

{0, 0, 1/4, 1/2}

This is the same as the Python answer but with no need to think about floating point precision.

A third way to solve the simultaneous equations is to do it in a spreadsheet. Here’s how that looks in Numbers:

where

the block of yellow cells is the matrix m in the Python and Mathematica solutions;

the block of magenta cells is the inverse of m;

the block of cyan cells is the vector b in the Python and Mathematica solutions; and

the block of gray cells is the solution for a0 through a3, determined by multiplying the magenta matrix by the cyan vector.

The spreadsheet uses a combination of MINVERSE and MMULT, functions that are also in Excel and Google Sheets. As with the Python solution, there are floating point artifacts here. They’re mostly hidden by my choice to show only four decimal places, but that -0.0000 for a1 is a clue that these are not exact answers.

You might well ask why I’d bother using Python or Mathematica to solve the simultaneous equations if I already had a spreadsheet open to make the difference table. The answer is that I generally prefer working in an environment where my formulas and expressions are always visible. It makes things easier to debug, and I’m always debugging.

There are other ways to determine the coefficients. My favorite is a step-by-step procedure that simplifies the problem one polynomial degree at a time.

Given that we know a4=1/4 from the difference table above, we can make a new table for

P=N−14n4

and its differences. By subtracting the fourth-degree term from N, we expect P to be a third-degree polynomial. Here are the first five rows of the difference table for...

difference python table first four delta

Related Articles