Vermeulen.ca

# Topics in mathematics 1a 264 37 93 acceptable addition alias author bloom border brings c3 certain checking collection companion compatible died driven filtering filters finite focused formatted gathering generic graphics head imaging instruments mis misc nb networks neural october orbit parameters partially programmer pycuda scipy searches seeks seemed simulated simulator solving stone strong tax thegreenplace transforms ubc understood variables visualization Various links to interesting math topics, mainly focused on numerical methods. 2010-Jul-14: The Levy Distribution can take on shapes that resemble the returns on financial securities.  2010-Jul-06: A rather good list of The Most Important Algorithms. I have used about 12 of these (that I know of) and written implementations of about 10 of them over the years. 2010-Jun-30: The Mandelbox is another attempt at taking the Mandelbrot set to the third dimension. Very nice stuff.  2010-Jun-29: The Two Child Problem is very similar to the Monty Hall problem. 2010-Jun-26: Finding Probability Distribution Parameters from Percentiles uses the SciPy library to estimate the parameters that would result in a probability distribution that would match certain observations.  2010-Jun-15: The Pattern-Seeking Fallacy talks about how we like to find patterns in things. 2010-Jun-11: An article about the mis-use of statistics in science (especially health science), this is discussed here on Slashdot. It finishes with a nice example of Bayesian statistics at work (which might be applicable to financial calculations like stock valuations). A long explanation of Bayes' Theorem and another example which includes the Monty Hall problem. Some more examples of using Bayes' Theorem: Making Sense with Numbers, Bayesian spam filtering, Naive Bayes classifier, Bayesian networks, A Brief Introduction to Graphical Models and Bayesian Networks and the Wikipedia article on Bayes' theorem.   2010-May-31: Pandas is a project to optimize NumPy for time series and cross-sectional data analysis, including storage, regression and plotting.  2010-May-28: How Fisher-Yates shuffling works.  2010-May-25: Martin Gardner is no more, I'd like to say thanks as some of his articles in Scientific American helped shaped by life path. The Gathering for Gardner convention. 2010-May-18: The NIST Digital Library of Mathematical Functions. Has lots of neat stuff like: which you can scribble onto your white board. 2010-May-05: The limitations of floating point arithmetic (IEEE 754) and some of the programming pitfalls that result. 2010-Jan-29: FuzzyPy is a library for working with fuzzy sets, graphs and math in Python.  2010-Jan-08: Some articles on the Weibull distribution which can be used to model the probability of failure of devices. The significant difference between this and the normal distribution is that the Weibull is a one-sided curve, so all the events happen above a reference point rather than being distributed on either side of the reference point. This makes sense for things like time to failure given that a component cannot fail before it is put into use (well, if you include manufacturing defects and shipping issues it could...). Using Microsoft Excel for Weibull Analysis, by William Dorner, is a good hands-on introduction. The NIST Engineering Statistics Handbook has some useful pages on this here and here. Python's random module has a weibullvariate function The Wikipedia article on the Weibull distribution. The Wikipedia article on Generalized extreme value distributions (GEV) which includes the Weibull case.  2009-Nov-27: The Mandelbulb is a 3D version of the Mandelbrot set. An excellent set of pictures from this are here. A Python project to explore it is here.  2009-Nov-27: obspy.signal is a module that provides signal processing routines suited for seismology.  2009-Nov-04: An implementation of the Talbot method for numerical inversion of the Laplace Transform. A second version of this using mpmath for extended precision.   2009-Oct-23: skidmarks is a module that searches for runs (non-randomness) in sequences, this includes a Wald-Wolfowitz test.  2009-Oct-09: ruffus is a module that implements light-weight computational pipelines.  2009-Sep-22: papy provides parallel pipelines for Python.  2009-Sep-21: OpenOpt is a numerical optimization framework. The project home page is here and more recently here. Some additional modules, FuncDesigner and DerApproximator have been added to assist.  2009-Sep-21: Mr is a module to provide functions for working with Carmichael numbers.  2009-Sep-18: pyncomb is a collection of functions for working with combinatorial objects (permutations, subsets, ...).  2009-Sep-02: PyIMSL is a Python wrapper for the IMSL C Numerical Library for Math and Statistics.  2009-Aug-14: pulp-or (see also Optimization with PuLP) is a linear programming optimization system.  2009-Aug-13: Gigbayes is a Bayesian learning filter that tries to extract jobs that are of interest to its user from the Craigslists. The author has strong praise for jQuery and uses Reverend to do the Bayesian filtering.  2009-Aug-11: Bruce Schneier describes the concept of self-enforcing protocols, which can be applied to real-world problems like sales tax cheating and voting fraud. 2009-Jul-24: obspy.signal is a package of signal processing routines for seismology.  2009-Jul-24: Getting started with the SciPy library is a short introduction to Scientific Python.  2009-Jul-24: This article discusses IEEE floating point arithmetic in Python including such nastiness as the concepts of infinity (inf) and not-a-number (nan).  2009-Jul-20: Some notes on how to work with probability distributions supported by SciPy.  2009-Jul-20: The MinMax algorithm in Python. This is an algorithm used to search the move space in complex games for minimizing the maximum possible loss.  2009-Jul-16: Searching for solutions to the game "muggins" or "fives" that is played with dominoes.  2009-Jul-15: Disco is an implementation of the Monte Carlo UCT technique for playing the Game of Go.  2009-Jun-17: ZunZun.com provides a online curve and surface data fitting service. 2009-Jun-15: The odd combination of XKCD and Python leads to exploration of the Knapsack problem and two solutions in Python.  2009-Jun-11: mpmath, multiple precision arithmetic in Python. The project's home page is here  2009-Jun-09: Micorsoft's Solver Foundation appears to be a constraint-bounded optimization solver toolkit. 2009-Jun-04: A demonstration of the CORDIC algorithm for polar-to-rectangular coordinate conversions, this implements sine and cosine functions using a series of integer shifts and additions. CORDIC has been used for other transcendental functions and was used in the HP-35 calculator.  2009-May-19: Lancos Gamma Approximation.   2009-May-11: A new pattern has been found in prime (and other) numbers involving the frequency of the first digit. 2009-May-08: FuzzPy brings fuzzy logic to Python.  2009-May-01: simplestats is a module for simple statistical analysis, home page is here.  2009-Apr-14: escript, a python based environment for implementing mathematical models, in particular partial differential equations. Now here on PyPI.  2009-Mar-31: pythonOCC (here on PyPI) is a set of open-source Python bindings for the 3D modeling and simulation library: OpenCascade.  2009-Mar-27: bvp_solver is a boundary value problem solver.  2009-Mar-25: Theano is a Python library for defining, optimizing and evaluating mathematical expressions.  2009-Mar-24: Bloom filters are another interesting application for hashing functions. They are used for testing, in a probabilistic fashion, whether an element is a member of a set. pybloom is a Python implementation of a bloom filter.  2009-Mar-23: Computing Normal Probabilities in IronPython includes a function for calculating phi(x) which is then used to calculate the normal probability - this is implemented in standard Python code so will work with CPython too.  2009-Mar-20: pySTEP is a light Genetic Programming API.  2009-Mar-13: pycuda (home page is here, the documentation is here) provides access to Nvidia's CUDA parallel computation API. So if you really want to crunch a lot of numbers, now is your chance to do it from the comforts of Python. The July'08 meeting of ChiPy is taking a look at CUDA. An introductory presentation on using PyCuda. PyopenCL is a Python wrapper for OpenCL.   2009-Mar-09: Convex Optimization a book by Stephen Boyd and Lieven Vandenberghe. 2009-Feb-24: MayaVi a 3D data visualization package for Python, the second version adds support for numpy arrays. This is being included with the Enthought Python system.    2009-Feb-23: DOLFIN solves ordinary and partial differential equations using the FEniCS environment.  2009-Feb-23: PyBrain is going to be a library for machine learning on Python.  2009-Feb-21: Fast geometric hashing is being applied to the problem of automated astrometry.  2009-Feb-13: Evolution optimization strategy presents a genetic algorithm for solving search and optimization problems. The first comment to this shows how to do the same thing with pyevolve.   2009-Feb-03: brian is a clock-driven simulator for spiking neural networks.  2009-Jan-30: SimPy, (also here) process-based, discrete-event simulation in Python  2009-Jan-24: Coopr is a Python repository for optimization packages.  2008-Dec-31: jsMath (discussed here) allows one to use TeX markup to write formulas that are displayed as part of a web page - this is an alternative to using MathML using JavaScript to do the equation rendering. 2008-Dec-14: Using genetic programming to arrive at a good approximation to the Mona Lisa using 50 polygons. An FAQ including links to the source and program for this is here. Another example of this applied to a real photograph. 2008-Dec-11: pymc is a Markov Chain Monte Carlo sampling toolkit.  2008-Dec-11: pyevolve is a genetic algorithms framework for Python.  2008-Dec-09: SciMath provides scientific and mathematical calculations beyond those offered by SciPy.  2008-Dec-09: The State of Graphs in Python, discusses the current lack of support for graph theory in Python. It includes a link back to some early thoughts on this using dictionaries and lists from Guido.  2008-Dec-08: PyDDE is an equation solver for delay differential equations.  2008-Dec-03: Using the stepping stone algorithm to solve the transhipment problem, which is a cost-minimization optimization issue.   2008-Nov-27: BIP provides Bayesian inference tools for Python.  2008-Nov-20: A couple of recommendations for some math books: Mathematics: A Very Short Introduction (I've read this and found some sections to be quite approachable but others were insurmountable and, on the whole, it seemed quite disjointed so I can't say I would recommend it) and the rather large: The Princeton Companion to Mathematics 2008-Nov-17: Walker's alias method for random objects with different probabilities.   2008-Nov-14: Numdifftools is a package for automatic numerical differentiation.  2008-Nov-13: The Error Correcting Codes page has a good set of links on this subject. The author has written a book called: The Art of Error Correcting Coding. 2008-Nov-10: Project Euler is an ongoing mathematical programming challenge. Sort of a programming brain-teaser collection. 2008-Nov-05: Generating random numbers with an arbitrary distribution.  2008-Nov-04: The Gillespies SSA algorithm implemented in Python. This is used to model the spread of disease from an infected individual to a population.  2008-Oct-29: The problem of testing a server's response to load can call upon the Poisson distribution and queueing theory. 2008-Oct-29: pebl is a Python environment for Bayesian learning. The project home page is here.  2008-Oct-28: python-graph is a library for working with graphs in Python. The project homepage is here.  2008-Oct-27: clnum adds rational numbers and arbitrary precision floating point numbers to Python.  2008-Oct-22: Some code for working out what the sample size might have been for some experiment on the basis of a claim that is made. 2008-Oct-22: MDP is a Modular toolkit for Data Processing. It sounds like neural net type software.  2008-Oct-11: The Drools Solver can be used to solve some types of constraint-based problems such as planning problems like lesson and exam scheduling. 2008-Oct-01: A Slashdot review of Advanced Excel for Scientific Data Analysis by Robert de Levie, ISBN: 9780195370225sounds rather interesting. 2008-Sep-25: aipy is an Astronomical Interferometry package written in Python. It includes deconvolution code in Python.  2008-Sep-25: This article approximates the Zeta function (for large values) with 1/x, the author uses some simple matplotlib calls to analyze the problem graphically.  2008-Sep-24: The cvxopt convex optimization package appears to contain a lot of other useful functions for linear algebra and even eigenvectors.  2008-Sep-22: In Generating correlated random numbers the author applies a method described in Generating Correlated Random Numbers to generate correlated random numbers with Python.   2008-Aug-29: PyIMSL provides wrappers for the IMSL C Numerical Library.  2008-Aug-12: py-nnma provides non-negative matrix approximation functions.  2008-Aug-11: pymbolic is a lightweight library to perform symbolic calculations such as derivatives, polynomials expansion or expression simplification.  2008-Aug-11: PyUblas is a glue layer between Numpy and the Boost.Ublas (basic linear algebra package) for use with Boost.Python. Also available here on PyPi.  2008-Jul-30: The Gamma and Error functions are being considered for addition to the Python 2.7 standard libraries.  2008-Jul-16: Newton's method can be used to implement a faster division algorithm.  2008-Jul-13: gnofract4d is a fractal image generation program (which can view the Mandelbrot set among other things).   2008-Jun-26: munkres.py is an implementation of the Munkres algorithm (also known as Kuhn-Munkres or the Hungarian algorithm) which is used to solve the Assignment Problem. The assignment problem is used to determine the best way to use n workers to do n jobs at least cost when the cost to complete a particular job depends on which worker does it. pyLAPJV is another approach to this problem, this implements the Jonker-Volgenant algorithm.  2008-Jun-25: A view of the popular Python libraries that make up a useful scientific computing/visualization software stack/platform.   2008-Jun-24: GDAL - Geospatial Data Abstraction Library, also available here on PiPi.  2008-Jun-19: A page of free online math books, well currently just one. 2008-Jun-16: pymunk (home page is here) is a Python wrapper for the 2D physics library called Chipmunk.  2008-Jun-15: pyephem is a package for performing astronomical calculations. This is now on Launchpad.   2008-Jun-13: The NIST Digital Library of Mathematical Functions from NIST has been in preview for some time and is still a long ways from complete. Some discussion of how to setup your browser to view this (it uses the MathML markup language so only FireFox can do much with it at the moment) is here on Slashdot. 2008-Jun-11: scipy-clusteris used for generating, visualizing and analyzing hierarchical clusters.  2008-May-27: Genetic Algorithm Library, this is a rather extensive library for genetic algorithms and includes a lot of background documentation.  2008-May-13: NZMATH (here on the cheeseshop) is a number theory calculation system written in Python.  2008-May-12: Object oriented Bayesian Inference in Python.  2008-May-05: Random.org is a web site devoted to providing random numbers. randomorg is a Python package that can interface with it. 2008-Apr-25: Non-Transitive Dice also known as Efron's dice makes a rather rigged game. 2008-Apr-21: meshpy (here on the cheeseshop) is a finite element mesh generator written partially in Python.  2008-Apr-21: fempy is a small finite element package written in Python.  2008-Apr-16: For a science project a German schoolboy, Nico Marquardt, has revised NASA's Apophis asteroid orbit figures to follow what changes might happen if the asteroid hits a satellite when it pases near earth in 2029. This might make the chances of an earth-impact in 2036 much higher, up to 1 in 450.  2008-Apr-13: Robust topological sorting and Tarjan's algorithm in Python talks about sorting graphs in the presence of cyclic links, this could be useful in things like garbage collection, dependency generation and revision control.  2008-Apr-11: FixedPoint is a pure Python module for manipulating fixed point numbers of essentially arbitrary precision. This includes both basic and transcendental functions.  2008-Mar-20: Erasure Codes can be used to transform N blocks of data into N+M blocks of data for redundancy purposes allowing the original N blocks to be recreated from some of the N+M blocks in the event of data corruption or loss. zfec is an implementation of a fast erasure codec that can be used with Python (it is part of the AllMyData project).   2008-Mar-04: LastWave is signal processing software that can do wavelet and fractal analysis. 2008-Mar-04: iWand is a GUI for the pycwt wavelet analysis software.  2008-Mar-01: SympyCore is a pure Python computer algebra system.  2008-Feb-26: Search for the maximum value in each row of a matrix that is known to be totally monotone.   2008-Feb-26: Gauss-Jordan elimination in Python for solution of systems of linear equations.  2008-Feb-26: Various Python based solvers for mathematical problems such as linear equations and optimization.  2008-Feb-13: PyChem is a multivariate analysis package using wxPython for the GUI.  2008-Feb-12: Using simulated annealing to solve a problem in vocabulary learning. The idea is to learn the more common words first to maximize the number of sentences that can be understood at an earlier time. An additional presentation on this approach.  2008-Jan-24: SUMMON, a module for rapid prototyping of 2D visualizations. Also can be found here.  2008-Jan-18: A simple genetic algorithm   2007-Dec-23: GNU's Octave version 3.0 has been released. Octave is a numerical computing environment that seeks to be MATLAB compatible.  2007-Dec-17: cassowarypy is a Python wrapper for a linear constraint solver called cassowary.  2007-Nov-12: SAGE is open source software for mathematics. It offers functions similar to those found in Magma, Maple, Mathematica and MATLAB.  2007-Oct-22: earth_distance, is a collection of modules for working with points on a spherical object.  2007-Oct-11: SYSTAT makes statistical and curve fitting data analysis software. 2007-Oct-05: sympy, is a computer algebra system in Python (home page). This has reached version 0.5.4 now.  2007-Sep-17: The MathWorld article on the Fibonacci Numbers. 2007-Sep-17: A module for the Fibonacci search for minima of functions, which is apparently a bit faster than the Golden search, which is a bit faster than a binary search. 2007-Sep-17: paida is a Python package for scientific data analysis and plotting.  2007-Sep-13: The Starship estimation method for the generalized lambda distribution. There's not a lot on the web about the generalized lambda distribution and this is about the only code I've been able to find (apart from some written for use in the "R" environment).  2007-Aug-25: MOSEK is a commercial optimization package (that is available for some free use) that has an API with a Python interface  2007-Aug-24: pyformex, a Python implementation of Formex algebra, this is useful in creating 3D geometrical structures (and may be used in finite element preprocessing and medical imaging tasks)  2007-Aug-24: An example of using MatPlotLib to create PNG formatted graphs  2007-Aug-24: Scientific Computing Associates Inc. makes a number of number crunching packages (including things to distribute a problem over a number of processors).  Their NetWorkSpaces product can be used with Python and it is available under a dual licence model allowing for free use in open source projects and a paid mode in commercial products.  2007-Aug-24: Amoeba, maximizes a function of 1 or more variables using the simplex method of Nelder and Mead  2007-Aug-24: ScientificPython is a collection of Python modules for scientific computation, in Nov'06 they added some support for parallel computation.  2007-Aug-24: Pythonika, a MathLink module for Mathematica that makes it possible to write and run Python code within a Mathematica notebook.  2007-Aug-24: igraph is a Python module (home page) that provides high performance graph data structures and algorithms, this is based on the C code igraph engine so is very fast.  2007-Aug-24: evogrid, Distributed Evolutionary Computation Framework  2007-Aug-24: PyVISA, a module to control GPIB, RS232 and USB connected instruments through the VISA (Virtual Instrument Software Architecture) system  2007-Aug-24: PyTables, an interface to the HDF5 libraries, this provides an hierarchical database for efficient management of very large amounts of data.  2007-Aug-24: python-cluster, a package to algorithmically group items into clusters within a list based on some sort of "nearness" metric PyNGL is a Python module for visualizing scientific data  2007-Aug-24: Model Builder, a design and simulation tool for ordinary differential equations.  2007-Aug-24: Paida, a pure Python scientific analysis package. Needs Python 2.3 and TCL/Tk, includes some curve fitting capabilities.  2007-Aug-24: SyFi, Symbolic Finite Elements (home page: syfi.sf.net)  2007-Aug-24: The 2006 SciPy conference will be held Aug 17-18 at CalTech in Pasadena, CA.  2007-Aug-24: OpenBayes, bayesian network in Python  2007-Aug-24: PyWavelets, discrete wavelet transform in Python. This is a module for calculating Simple and Inverse Discrete Wavelet Transforms as well as wavelet Packets and the Stationary Wavelet Transform.  2007-Aug-24: Difficulties encountered in the installation of matplotlib  2007-Aug-24: PyIE, an Inference Engine in Python  2007-Aug-24: Python Lover's Evolutionary Algorithms  2007-Aug-24: According to this, Fermilab uses a Python package called Enstore to manage a 3 PetaByte data store to which they are adding about 25TeraBytes per day.  2007-Aug-24: SciPy_core, is now in beta, this is destined to replace the old numeric Python package for doing numerical analysis with Python. SciPy can now be found at www.scipy.org. SciPy includes modules for graphics and plotting, optimization, integration, special functions, signal and image processing, genetic algorithms, ODE solvers and others.  2007-Aug-24: Numerical and combinatorial problems solved using Genetic Algorithms in Python.  2007-Aug-24: PGAPy, a Python wrapper for the pgapack, parallel genetic algorithm library  2007-Aug-24: papyros, another attempt to add parallel processing to Python  2007-Aug-24: seppo, a simple attempt to add parallel processing to Python  2007-Aug-24: Swiginac provides symbolic formula manipulation from within Python, ah the good old days of MACSYMA return!  2007-Aug-24: Veusz, a scientific plotting package aimed at making PostScript output  2007-Aug-24: constraint, a constraint satisfaction problem solver. Here is Python-constraint, which might be the same thing.  2007-Aug-24: DAP, data access protocol, a client/server protocol for serving up large blocks of data for scientific analysis in visulaization. The home page for this is pyDAP.org.  2007-Aug-24: Pyslice, a module to support parametric modelling  2007-Aug-24: Is Python fast enough to do number crunching? This artical shows it to be about 1/17th the speed of C++, but unless your problem is really large, or it must be solved in a very short time this means that Python may well be acceptable.  2007-Aug-24: NetworkX, is a network analysis library, written in Python, that includes the Dijstra algorithm and has some graphing capability  2007-Aug-24: PyX is another graph plotting package for Python  2007-Aug-24: DISLIN, (home page is www.dislin.de) is a graph plotting library that can be used from Python  2007-Aug-24: Using Python to do statistical calculations.   Mandelbrot suggests hunting for financial patterns. Mandelbrot died in October 2010 at age 85, he will certainly be remembered for the Mandelbrot Set, but he should also be remembered for questioning 20th century financial models.   Integer sequences and Lychrel Numbers.  The Netlib Repository of numerical analysis software.  The Numerical Recipes web site, this has the full text of the second edition of Numerical Recipes in C on line and you can purchase the code here too  Math toolkit for real-time programming reviewed on Slashdot.