Search
\[ \def\_#1{\mathbf{#1}} \def\bb#1{\mathbb{#1}} \]
Mějme $m$ bodů v rovině, $\_a_1,\ldots,\_a_m\in\bb R^2$. Chceme najít kružnici se středem $\_c\in\bb 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\bb 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 Eukleidovská 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 \[ f(\_x) = \sum_{i=1}^m {\rm dist}(\_x, \_a_i)^2 \]
d = dist(x, A)
x
A
d
[x_new] = make_GN_iter(x, A)
[x_new, success] = make_LM_iter(x, A, mu)
Poznámky:
main.m
fit_circle.m
ginput
print
f_history
report.pdf