Search
\[ \def\_#1{\mathbf{#1}} \def\x{\times} \def\R{\mathbb{R}} \def\mat#1{\begin{bmatrix}#1\end{bmatrix}} \def\matr#1{\begin{bmatrix*}[r]#1\end{bmatrix*}} \]
Je dáno $m$ bodů v rovině, $\_a_1,\ldots,\_a_m\in\R^2$. Hledáme kružnici se středem $\_c\in\R^2$ a poloměrem $r\ge 0$ takovou, že součet čtverců vzdáleností bodů od kružnice je nejmenší.
Označme jako $\_x=(\_c,r)\in\R^3$ vektor parametrů kružnice. Nechť ${\rm dist}(\_x, \_a)$ je orientovaná vzdálenost bodu $\_a$ od kružnice s parametry $\_x$. Tedy $\lvert{\rm dist}(\_x, \_a)\rvert$ je vzdálenost bodu $\_a$ od kružnice, přičemž pro $\_a$ vně kružnice je ${\rm dist}(\_x,\_a)>0$ a pro $\_a$ uvnitř kružnice je ${\rm dist}(\_x,\_a)<0$. Chceme minimalizovat funkci \begin{equation} f(\_x) = \sum_{i=1}^m {\rm dist}(\_x, \_a_i)^2 \label{eq:obj} \end{equation}
d = dist(x,A)
x
A
d
d(i)
x_new = make_GN_iter(x,A)
[x_new,success] = make_LM_iter(x,A,mu)
Poznámky:
main.m
fit_circle.m
.mat
ginput
print -depsc obr.eps
print -dsvg obr.svg
report.pdf
.m