LMreducedCircleFit {conicfit} | R Documentation |
Geometric circle fit (minimizing orthogonal distances) based on the Levenberg-Marquardt method
Description
LMreducedCircleFit
applies a Geometric circle fit
(minimizing orthogonal distances) based on the standard Levenberg-Marquardt scheme in the "reduced" (a,b) parameter space
Usage
LMreducedCircleFit(XY, ParIni, LambdaIni = 1, epsilon = 1e-06,
IterMAX = 50)
Arguments
XY |
array of sample data |
ParIni |
initial guess (a, b) |
LambdaIni |
initial value for the correction factor lambda |
epsilon |
tolerance (small threshold) |
IterMAX |
maximum number of (main) iterations, usually 10-20 will suffice |
Value
vector(a , b , R) |
vector with the estimates for the circle: center (a,b) and radius R |
Author(s)
Jose Gama
Source
Nikolai Chernov, 2014 Fitting ellipses, circles, and lines by least squares http://people.cas.uab.edu/~mosya/cl/
Nikolai Chernov, 2010 Circular and linear regression: Fitting circles and lines by least squares Chapman & Hall/CRC, Monographs on Statistics and Applied Probability, Volume 117
References
Nikolai Chernov, 2014 Fitting ellipses, circles, and lines by least squares http://people.cas.uab.edu/~mosya/cl/
Nikolai Chernov, 2010 Circular and linear regression: Fitting circles and lines by least squares Chapman & Hall/CRC, Monographs on Statistics and Applied Probability, Volume 117
Examples
xy<-calculateCircle(0,0,200,50,randomDist=TRUE,noiseFun=function(x) (x+rnorm(1,mean=0,sd=50)))
plot(xy[,1],xy[,2],xlim=c(-250,250),ylim=c(-250,250));par(new=TRUE)
c7 <- LMreducedCircleFit(xy)
xyc7<-calculateCircle(c7[1],c7[2],c7[3])
plot(xyc7[,1],xyc7[,2],xlim=c(-250,250),ylim=c(-250,250),col='pink',type='l')