Updated 21 May 2007
Although a linear least squares fit of a circle to 2D data can be computed, this is not the solution which minimizes the distances from the points to the fitted circle (geometric error). The linear solution minimizes the algebraic error of a function something like
f(x) = ax'x + b'x + c = 0
Minising the geometric error is a nonlinear least squares problem. fitcircle allows you to compute either - it uses the algebraic fit as the initial guess for the geometric error minimization.
x = randn(2, 10);
% Linear least squares fit
[z, r] = fitcircle(x, 'linear')
% True best fit (minimizing geometric error)
[z, r] = fitcircle(x)
For more information look at the published demo file.
This submission is based on the paper:
"Least-squares fitting of circles and ellipses", W. Gander, G. H. Golub, R. Strebel, BIT Numerical Mathematics, Springer 1994
A similar submission for ellipses should be forthcoming
Richard Brown (2023). fitcircle.m (https://www.mathworks.com/matlabcentral/fileexchange/15060-fitcircle-m), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
- Mathematics and Optimization > Optimization Toolbox > Systems of Nonlinear Equations >
- Signal Processing > DSP System Toolbox > Statistics and Linear Algebra > Linear Algebra >
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.