Excellent GUI and command-line curve fitting tool
- John Allspaw in The art of capacity planning

[screenshot]

see more screenshots

Fityk [fi:tik] is a program for data processing and nonlinear curve fitting.

Primarily used

  • by scientists who analyse data from powder diffraction, chromatography, photoluminescence and photoelectron spectroscopy, infrared and Raman spectroscopy, and other experimental techniques,

  • to fit peaks – bell-shaped functions (Gaussian, Lorentzian, Voigt, Pearson VII, bifurcated Gaussian, EMG, Doniach-Sunjic, etc.),

but it is suitable for fitting any curve to 2D (x,y) data.

Features | Download | Documentation | Support

Features

  • intuitive graphical interface (and also command line interface),

  • support for many data file formats, thanks to the xylib library,

  • dozens of built-in functions and support for user-defined functions,

  • equality constraints,

  • fitting systematic errors of the x coordinate of points (for example instrumental zero error or sample displacement correction in powder diffraction),

  • manual, graphical placement of peaks and auto-placement using peak detection algorithm,

  • various optimization methods (standard Marquardt least-squares algorithm, Genetic Algorithms, Nelder-Mead simplex),

  • handling series of datasets,

  • automation with macros (scripts) and embedded Lua for more complex scripting

  • the accuracy of nonlinear regression verified with reference datasets from NIST,

  • an add-on for powder diffraction data (Pawley refinement)

  • modular architecture,

  • open source licence (GPLv2+).

Download

ico-win MS Windows: fityk-1.3.1-setup.exe

ico-osx Mac OS X (10.6 or later): fityk-1.3.1-osx.zip

ico-tux Linux: binary packages are available in many distros and on Flathub.

Source code: GitHub (releases)

Version 1.3.1 was released on 2016-12-19 (changelog).

Version 1.3.2, with minor changes, was released on 2022-08-06, but binaries haven’t been updated.

Documentation

Citing Fityk in academic papers: M. Wojdyr, J. Appl. Cryst. 43, 1126-1128 (2010) [reprint]

Questions?

Feel free to send questions, comments, requests, bug reports, and success stories. Asking for a new feature usually results in adding the request to the TODO list or, if it already is in the list, in assigning higher priority to it.