Sunday, 19 August 2018

Analytic Number Theory

Ah, so you've heard of the Riemann zeta function, have you not, and no doubt you will want to start programming with it, yes?  If so, read on!

To know it in its contemporary form, you should have a basic knowledge of complex analysis, including Cauchy's theorem and contour integration.   (Note that Euler studied this function earlier without complex analysis but his analysis was limited to the R-z as a function of real variable, rather than a complex variable).

A flavour of the subject can be found here and here (the latter addresses analytic number theory under the headline of multiplicative number theory). Prepare to be dazzled by the spectral theory of automorphic forms.

Tuesday, 15 May 2018

The Los Alamos Background to the GSL

The GSL project was initiated in 1996 by Los Alamos physicists Mark Galassi and James Theiler. 

Friday, 23 March 2018

GNU Cim is Open Source Simula

Want to do some Simula? Try the GNU Cim compiler. It is written in C and produces C which is passed to a C compiler to be translated to machine code. (Simula was developed in the 1960s as a simulation language at the Norwegian Computing Center (Norsk Regnesentral) in Oslo. It had two incarnations, Simula I and Simula 67).

Monday, 26 February 2018

The Python Hackers Guide to Probability from the True Pioneer Himself and an Ode to Lesbesgue

A Python Hacker wanting to know probability from the founder of modern probability should read Foundations of the Theory of Probability by Kolmogorov. It is a monograph written "to give an axiomatic foundation for the theory of probability". Kolmogorov acknowledges a debt of gratitude to the Beauvais-born Monsieur Henri Lesbegue, specifically to "Lebesgue's theories of measure and integration" (due to the connection between measure of a set, and probability of an event).

Sunday, 4 June 2017

The Axiom Computer Algebra System

The Axiom computer algebra system can be downloaded in source or binary form across various platforms. A comprehensive online book is available.

The book starts with an introduction to Axiom, demonstrating its powers in both symbolic and numeric computation, and ends with a few Axiom programs to visualise functions in differential geometry.

What's cool about Axiom is it has its own programming language, which has regular data types you might expect such as lists and dictionaries, as well as algebraic types.  Having these algebraic types, allows you to define algorithms in their most general setting.

A great example would be the following:

R: Ring
power: (R, NonNegativeInteger): R -> R
power(x, n) == x ** n

Another interesting data structure permissible in Axiom is the infinite stream. Assume we have define the polynomial P(x) for all integers x in Axiom.

We can then declare the infinite stream of the derivatives of all such polynomials:

[D(p(i), x) for i in 1..]

The further elements in the stream are computed on demand (lazy evaluation).

Streams are used as an internal data structure for power series.

Monday, 29 May 2017

Neural Networks in Python

Neural nets can be programmed easily in Python using freely available APIs. Examples include Google TensorFlow and Microsoft CNTK (Cognitive Toolkit). Coding will still require knowledge of numpy.

Sunday, 8 May 2016

Topology for Top Thinkers (Particularly Pythonistas)

Topology is an important topic to understand for non-mathematicians as well as mathematicians. For example.

Pythonistas needing to program mathematics employing topological concepts can benefit enormously from understanding topology.  This might become increasingly important with applications of topology to physics and biological sciences.

It deals with properties of space unimpacted by continuous deformations e.g. stretching and bending.

Gottfried Leibniz was already thinking along the lines of a topological science as early as the 17th century with his "geometria situs" (Latin for geometry of place).

Today, there are many subfields of topology, including one intriguingly named differential topology, which deals with differential functions on differentiable manifolds.

Knot theory is another interesting aspect of topology is used to study the effect of certain enzymes on DNA.

A knot is an embedding of a circle in three dimensional Euclidean space. Note that the word "embedding" (also known as an "imbedding") has a very specific, technical meaning in mathematics.