Globtim.jl Documentation
Global optimization of continuous functions via polynomial approximation
The Problem
Finding all local minima of a continuous function over a bounded domain is fundamentally hard. Standard optimization algorithms (gradient descent, BFGS, etc.) find one local minimum from a given starting point — but how do you know there isn't a better one elsewhere?
The Approach
Globtim solves this by replacing your function with a polynomial approximation. Why polynomials?
- Smooth functions are well-approximated by polynomials — Chebyshev and Legendre bases provide well-conditioned polynomial approximations whose accuracy improves with degree for smooth functions
- Polynomial critical points can be enumerated — Setting ∇p(x) = 0 gives a polynomial system with finitely many solutions (bounded by Bezout's theorem), which can be computed numerically via homotopy continuation or exactly via symbolic methods
- Refinement on the original function — Each polynomial critical point seeds a local optimization (BFGS) on the original function, which can converge to a nearby true critical point
The result: a systematic search for local minima across the entire domain, not just the nearest one.
Algorithm Overview
f(x) --> Polynomial p(x) --> Solve grad(p) = 0 --> Refine with BFGS --> Candidate minima
(Chebyshev/Legendre) (HomotopyContinuation.jl)Challenging 1D function — multi-frequency oscillations at varying polynomial degrees:

Styblinski-Tang 2D — classic test function with polynomial approximation:

For functions that vary on different scales in different regions, Globtim uses adaptive subdivision to build piecewise polynomial approximations that maintain accuracy everywhere.
Installation
julia> ]
pkg> add GlobtimAdditional Dependencies
- Visualization:
add CairoMakieoradd GLMakie - Exact solving: Install msolve (symbolic method based on Groebner basis computations)
Getting Started
For a detailed walkthrough, see Getting Started.
Ecosystem
Globtim is part of a three-package ecosystem for global optimization:
| Package | Description | Repository |
|---|---|---|
| Globtim | Core polynomial approximation and critical point finding | GitHub |
| GlobtimPostProcessing | Refinement, validation, parameter recovery, campaign analysis | GitHub |
| GlobtimPlots | Visualization (CairoMakie/GLMakie) for experiments and campaigns | GitHub |
Globtim (experiments) --> GlobtimPostProcessing (analysis) --> GlobtimPlots (visualization)Install companion packages:
pkg> add GlobtimPostProcessing
pkg> add GlobtimPlots