From c3b9ceab97e788a8052273644a5840de65c59a8b Mon Sep 17 00:00:00 2001 From: Leonardo Florez-Valencia Date: Tue, 8 Mar 2016 18:00:06 -0500 Subject: [PATCH] More simple testing data --- data/circles.png | Bin 0 -> 4877 bytes data/inertia.lyx | 454 +++++++++++++++++++++++++++++++++++++++++++ data/line_rad_25.png | Bin 0 -> 6540 bytes data/test.png | Bin 0 -> 4705 bytes data/test2.png | Bin 0 -> 3812 bytes data/test3.png | Bin 0 -> 5600 bytes 6 files changed, 454 insertions(+) create mode 100644 data/circles.png create mode 100644 data/inertia.lyx create mode 100644 data/line_rad_25.png create mode 100644 data/test.png create mode 100644 data/test2.png create mode 100644 data/test3.png diff --git a/data/circles.png b/data/circles.png new file mode 100644 index 0000000000000000000000000000000000000000..8788dc6bda78bb2502a2af9eccbb95a66cf89564 GIT binary patch literal 4877 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

0)F%9 zyi)x_a7bCY+!>PJH>X_NaeDLEZ`b#whV`nz{-9J30v z*UAq@g*L1E4$OhjcZ|s3R!Dk>EDf7j)^O|VJD;C=_EX(B`kF!Xh794Idr`Y7E4M}$6w!Dwg&(;{d46C95VeKJ1_kH=|EBXv{+snJY_RyB7T*#vs8 zzFaGT-}D{Y(A+)UCh+>IpKB$+A(15IOk_GVZZO>GoX{uRb?tB#wh}3yW(*^zAFxW; z$&|#ebao0qA8h+ddjJLYa UD#2g%Eka}Nu8S8GI7_$v2Yz=nasU7T literal 0 HcmV?d00001 diff --git a/data/inertia.lyx b/data/inertia.lyx new file mode 100644 index 0000000..51740ff --- /dev/null +++ b/data/inertia.lyx @@ -0,0 +1,454 @@ +#LyX 2.1 created this file. For more info see http://www.lyx.org/ +\lyxformat 474 +\begin_document +\begin_header +\textclass article +\use_default_options true +\maintain_unincluded_children false +\language english +\language_package default +\inputencoding auto +\fontencoding global +\font_roman default +\font_sans default +\font_typewriter default +\font_math auto +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 +\font_tt_scale 100 +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\quotes_language english +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +\begin_inset Formula +\[ +\boldsymbol{\iota}=\left[\begin{array}{ccc} +\iota_{00} & \iota_{01} & \iota_{02}\\ +\iota_{10} & \iota_{11} & \iota_{12}\\ +\iota_{20} & \iota_{21} & \iota_{22} +\end{array}\right] +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\left[\begin{array}{ccc} +{\displaystyle \sum_{i=1}^{n}m_{i}\left(x_{i1}^{2}+x_{i2}^{2}\right)} & -{\displaystyle \sum_{i=1}^{n}m_{i}x_{i0}x_{i1}} & -{\displaystyle \sum_{i=1}^{n}m_{i}x_{i0}x_{i2}}\\ +-{\displaystyle \sum_{i=1}^{n}m_{i}x_{i0}x_{i1}} & {\displaystyle \sum_{i=1}^{n}m_{i}\left(x_{i0}^{2}+x_{i2}^{2}\right)} & -{\displaystyle \sum_{i=1}^{n}m_{i}x_{i1}x_{i2}}\\ +-{\displaystyle \sum_{i=1}^{n}m_{i}x_{i0}x_{i2}} & -{\displaystyle \sum_{i=1}^{n}m_{i}x_{i1}x_{i2}} & {\displaystyle \sum_{i=1}^{n}}m_{i}\left(x_{i0}^{2}+x_{i1}^{2}\right) +\end{array}\right] +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left[\begin{array}{ccc} +\left(x_{i1}^{2}+x_{i2}^{2}\right) & -x_{i0}x_{i1} & -x_{i0}x_{i2}\\ +-x_{i0}x_{i1} & \left(x_{i0}^{2}+x_{i2}^{2}\right) & -x_{i1}x_{i2}\\ +-x_{i0}x_{i2} & -x_{i1}x_{i2} & \left(x_{i0}^{2}+x_{i1}^{2}\right) +\end{array}\right] +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left[\begin{array}{ccc} +\left|\mathbf{p}_{i}\right|^{2}-x_{i0}^{2} & -x_{i0}x_{i1} & -x_{i0}x_{i2}\\ +-x_{i0}x_{i1} & \left|\mathbf{p}_{i}\right|^{2}-x_{i1}^{2} & -x_{i1}x_{i2}\\ +-x_{i0}x_{i2} & -x_{i1}x_{i2} & \left|\mathbf{p}_{i}\right|^{2}-x_{i2}^{2} +\end{array}\right] +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left(\left[\begin{array}{ccc} +\left|\mathbf{p}_{i}\right|^{2} & 0 & 0\\ +0 & \left|\mathbf{p}_{i}\right|^{2} & 0\\ +0 & 0 & \left|\mathbf{p}_{i}\right|^{2} +\end{array}\right]-\left[\begin{array}{ccc} +x_{i0}^{2} & x_{i0}x_{i1} & x_{i0}x_{i2}\\ +x_{i0}x_{i1} & x_{i1}^{2} & x_{i1}x_{i2}\\ +x_{i0}x_{i2} & x_{i1}x_{i2} & x_{i2}^{2} +\end{array}\right]\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left(\left|\mathbf{p}_{i}\right|^{2}\mathbf{I}-\mathbf{p}_{i}\mathbf{p}_{i}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left|\mathbf{p}_{i}\right|^{2}\mathbf{I}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top} +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}\mathbf{I}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top} +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)^{\top}\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)\mathbf{I}-\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)^{\top} +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}^{\top}-\boldsymbol{\mu}^{\top}\right)\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)\mathbf{I}-\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)\left(\mathbf{p}_{i}^{\top}-\boldsymbol{\mu}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}^{\top}\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)-\boldsymbol{\mu}^{\top}\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)\right)\mathbf{I}-\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}\left(\mathbf{p}_{i}^{\top}-\boldsymbol{\mu}^{\top}\right)-\boldsymbol{\mu}\left(\mathbf{p}_{i}^{\top}-\boldsymbol{\mu}^{\top}\right)\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\mathbf{p}_{i}^{\top}\boldsymbol{\mu}-\boldsymbol{\mu}^{\top}\mathbf{p}_{i}+\boldsymbol{\mu}^{\top}\boldsymbol{\mu}\right)\mathbf{I}-\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}\mathbf{p}_{i}^{\top}-\mathbf{p}_{i}\boldsymbol{\mu}^{\top}-\boldsymbol{\mu}\mathbf{p}_{i}^{\top}+\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\boldsymbol{\mu}-\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}^{\top}\mathbf{p}_{i}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}^{\top}\boldsymbol{\mu}\right)\mathbf{I}-\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\boldsymbol{\mu}^{\top}-\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\right)\boldsymbol{\mu}-\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}^{\top}\mathbf{p}_{i}+\left(\sum_{i=1}^{n}m_{i}\right)\boldsymbol{\mu}^{\top}\boldsymbol{\mu}\right)\mathbf{I}-\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}-\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}-\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\right)\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\right)\boldsymbol{\mu}-\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}^{\top}\mathbf{p}_{i}+\left(\sum_{i=1}^{n}m_{i}\right)\boldsymbol{\mu}^{\top}\boldsymbol{\mu}\right)\mathbf{I}+\left(-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-\left(\sum_{i=1}^{n}m_{i}\right)\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\mu}=\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{{\displaystyle \sum_{k=1}^{n}}m_{k}}=\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M} +\] + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Formula +\[ +\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\right)\boldsymbol{\mu}-\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}^{\top}\mathbf{p}_{i}+M\boldsymbol{\mu}^{\top}\boldsymbol{\mu}\right)\mathbf{I}+\left(-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-M\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\right)\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}-\sum_{i=1}^{n}m_{i}\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)^{\top}\mathbf{p}_{i}+M\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)^{\top}\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)\right)\mathbf{I}+\left(-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-M\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{\left({\displaystyle \sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}}\right)\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)}{M}-\sum_{i=1}^{n}m_{i}\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)^{\top}\mathbf{p}_{i}+\frac{\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}^{\top}\right)\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)}{M}\right)\mathbf{I}+\left(-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-M\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\sum_{i=1}^{n}m_{i}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}^{\top}\right)\mathbf{p}_{i}\right)\mathbf{I}+\left(-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-M\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\mathbf{I}^{\top}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\sum_{i=1}^{n}m_{i}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}^{\top}\right)\mathbf{p}_{i}\right)^{\top}+\left(-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-M\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\mathbf{I}^{\top}\left(\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}\right)^{\top}-\left(\frac{1}{M}\sum_{i=1}^{n}m_{i}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}^{\top}\right)\mathbf{p}_{i}\right)^{\top}\right)+\left(-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-M\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\mathbf{I}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\right)+\left(\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}-M\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\mathbf{I}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\right)+\left(\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)^{\top}+\sum_{i=1}^{n}m_{i}\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)\mathbf{p}_{i}^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}-M\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\mathbf{I}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\right)+\left(\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)^{\top}+\sum_{i=1}^{n}m_{i}\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)\mathbf{p}_{i}^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}-\frac{1}{M}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\mathbf{I}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\right)+\left(\frac{1}{M}\sum_{i=1}^{n}m_{i}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\mathbf{p}_{i}^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}^{\top}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\right)\mathbf{I}+\left(\frac{1}{M}\sum_{i=1}^{n}m_{i}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\mathbf{p}_{i}^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}\right)^{\top} +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\right)\mathbf{I}+\left(\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}\right) +\] + +\end_inset + + +\end_layout + +\begin_layout Standard +-------------------------------------------------------------------------------- +---------------------------------------- +\end_layout + +\begin_layout Standard +\begin_inset Formula +\[ +\boldsymbol{\iota}_{n}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M_{n}}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\right)\mathbf{I}+\left(\frac{1}{M_{n}}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}_{n}=\left(\sum_{i=1}^{n}m_{i}\left|\mathbf{p}_{i}\right|^{2}-\frac{1}{M_{n}}\left|{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right|^{2}\right)\mathbf{I}+\left(\frac{1}{M_{n}}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}_{n}=\left(\alpha_{n}-\frac{1}{M_{n}}\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}\right)\mathbf{I}+\left(\frac{1}{M_{n}}\boldsymbol{\beta}_{n}\boldsymbol{\beta}_{n}^{\top}-\boldsymbol{\gamma}_{n}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}_{n+1}=\left(\alpha_{n+1}-\frac{1}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n+1}^{\top}\boldsymbol{\beta}_{n+1}\right)\mathbf{I}+\left(\frac{1}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n+1}\boldsymbol{\beta}_{n+1}^{\top}-\boldsymbol{\gamma}_{n+1}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}_{n+1}-\boldsymbol{\iota}_{n}=\left(\alpha_{n+1}-\alpha_{n}\right)\mathbf{I}-\frac{1}{M_{n+1}}\left(\boldsymbol{\beta}_{n+1}^{\top}\boldsymbol{\beta}_{n+1}\mathbf{I}-\boldsymbol{\beta}_{n+1}\boldsymbol{\beta}_{n+1}^{\top}\right)+\frac{1}{M_{n}}\left(\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}\mathbf{I}-\boldsymbol{\beta}_{n}\boldsymbol{\beta}_{n}^{\top}\right)-\left(\boldsymbol{\gamma}_{n+1}-\boldsymbol{\gamma}_{n}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}_{n+1}-\boldsymbol{\iota}_{n}=\left(\alpha_{n+1}-\alpha_{n}\right)\mathbf{I}-\frac{M_{n}}{M_{n+1}}\frac{1}{M_{n}}\left(\boldsymbol{\beta}_{n+1}^{\top}\boldsymbol{\beta}_{n+1}\mathbf{I}-\boldsymbol{\beta}_{n+1}\boldsymbol{\beta}_{n+1}^{\top}\right)+\frac{1}{M_{n}}\left(\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}\mathbf{I}-\boldsymbol{\beta}_{n}\boldsymbol{\beta}_{n}^{\top}\right)-\left(\boldsymbol{\gamma}_{n+1}-\boldsymbol{\gamma}_{n}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\boldsymbol{\iota}_{n+1}-\boldsymbol{\iota}_{n}=\left(\alpha_{n+1}-\alpha_{n}\right)\mathbf{I}-\frac{1}{M_{n}}\left[\left(\frac{M_{n}}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n+1}^{\top}\boldsymbol{\beta}_{n+1}+\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}\right)\mathbf{I}-\left(\frac{M_{n}}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n+1}\boldsymbol{\beta}_{n+1}^{\top}+\boldsymbol{\beta}_{n}\boldsymbol{\beta}_{n}^{\top}\right)\right]-\left(\boldsymbol{\gamma}_{n+1}-\boldsymbol{\gamma}_{n}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +\alpha_{n+1}-\alpha_{n}=\sum_{i=1}^{n+1}m_{i}\left|\mathbf{p}_{i}\right|^{2}-\sum_{i=1}^{n}m_{i}\left|\mathbf{p}_{i}\right|^{2} +\] + +\end_inset + + +\begin_inset Formula +\[ +\alpha_{n+1}-\alpha_{n}=m_{n+1}\left|\mathbf{p}_{n+1}\right|^{2} +\] + +\end_inset + + +\begin_inset Formula +\[ +\frac{M_{n}}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n+1}^{\top}\boldsymbol{\beta}_{n+1}+\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}=\frac{M_{n}}{M_{n}+m_{n+1}}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}+m_{n+1}\mathbf{p}_{n+1}\right)^{\top}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}+m_{n+1}\mathbf{p}_{n+1}\right)+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +=\frac{M_{n}}{M_{n}+m_{n+1}}\left(\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}+m_{n+1}\mathbf{p}_{n+1}^{\top}\right)\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}+m_{n+1}\mathbf{p}_{n+1}\right)+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right) +\] + +\end_inset + + +\begin_inset Formula +\[ +=\frac{M_{n}}{M_{n}+m_{n+1}}\left(\boldsymbol{\beta}_{n}^{\top}+m_{n+1}\mathbf{p}_{n+1}^{\top}\right)\left(\boldsymbol{\beta}_{n}+m_{n+1}\mathbf{p}_{n+1}\right)+\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n} +\] + +\end_inset + + +\begin_inset Formula +\[ +=\frac{M_{n}}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}+2m_{n+1}\frac{M_{n}}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n}^{\top}\mathbf{p}_{n+1}+m_{n+1}^{2}\frac{M_{n}}{M_{n}+m_{n+1}}\mathbf{p}_{n+1}^{\top}\mathbf{p}_{n+1}+\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n} +\] + +\end_inset + + +\begin_inset Formula +\[ +=\left(\frac{2M_{n}+m_{n+1}}{M_{n}+m_{n+1}}\right)\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}+\frac{2m_{n+1}M_{n}}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n}^{\top}\mathbf{p}_{n+1}+\frac{m_{n+1}^{2}M_{n}}{M_{n}+m_{n+1}}\mathbf{p}_{n+1}^{\top}\mathbf{p}_{n+1} +\] + +\end_inset + + +\begin_inset Formula +\[ +=\frac{1}{M_{n}+m_{n+1}}\left[\boldsymbol{\beta}_{n}^{\top}\left(\left(2M_{n}+m_{n+1}\right)\boldsymbol{\beta}_{n}+2m_{n+1}M_{n}\mathbf{p}_{n+1}\right)+m_{n+1}^{2}M_{n}\mathbf{p}_{n+1}^{\top}\mathbf{p}_{n+1}\right] +\] + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/data/line_rad_25.png b/data/line_rad_25.png new file mode 100644 index 0000000000000000000000000000000000000000..8d4ca75f93c3d59368db7f9e057122d4ded78956 GIT binary patch literal 6540 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 literal 0 HcmV?d00001 diff --git a/data/test.png b/data/test.png new file mode 100644 index 0000000000000000000000000000000000000000..e54ce70a26001753f9655f8515afa52eb6c6964a GIT binary patch literal 4705 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 A>Hq)$ literal 0 HcmV?d00001 diff --git a/data/test2.png b/data/test2.png new file mode 100644 index 0000000000000000000000000000000000000000..7453ca43fc0357e88648b16ecce015f204f82960 GIT binary patch literal 3812 zcmeHJdr(tX9{$}+u7q6CG|JVY)F4JHxwtJ@*J7(TQB*__U6c!Gi4b|zwYnOrWkqg4 zlyr((s#$zg;sdlU1VT_-R1AU-kWpl9i!DV;wL~)bsIMAXyK`3(GA?U+k*Ph`3 z;I0V`4{^UvcvC*qMO*ND0N|4v#cHOnT(M%=2O28#N3NcDte z?f`>gLuV+W)_vFgLtKR4n_}jQ`qAmm#&Htm7|lPr)AyLUec3aMZ11~mb>~_B$QJT$ z2HDd7FrDa0&amGRaTevY70<4hSU}9CjQ^V8EXs(Zzs~#9S0H9z_dkVjlr8`S)P9la zIjEYGib>1G3vxc4XRAiwi1)K$k3*9&T+ny@gJ8NzP_(tyG z=PK@99d@i5->^Ge&oav55-9I>EHf)m$N7zk4eY&X~r^IiY z7uVwcxcD3kL~$uC#t>aX5jb#z$B z4{O{z&g)0qeqqsi{Ii#{%#Fs?7z!JUGqO|O@{t$k(p)(Ao|(JXIKm_DN*swe-@Ox9IkUJxJmle{j@aKC#6lV3{Kpd=t$mT)WZj z1frNXZu{eGCfwBy|YYpSzmp2!7j3%<@0DQ=t`wcs*d3m)%bTN{=NxL`nxoY zE_f@uq>S6*pxWwDST7-q2TE;n!+4&`O?~NnMP1gjf1S6BtQUEzfjb}7(v+9+rr8iP{I12{G7zS$}hHi-h#g8}4Fh?c`ZJ z%+@t=35rKQCS(voI*&Lk2W^pwS%QtZ>HM3pyO-BxEe<+s7a0_)R5~&m@UTQ}6`pd* z2i>PZ$-Czz=!kK%bPv6li0Z=`2dO?>6v@$ajiwS8p)huFE`%ID1Af$KZRH7G?dD|ku$-JB@oKe-&2fY9f zOG3Y#MVaJV%4?_ca4J7LGQuU_2WT64K+>(KuCLQ+#mT?ec4{Nm+k*)s>0tI VvkQY;h0la&T4+eb45Lz&^&h3S=3)Q< literal 0 HcmV?d00001 diff --git a/data/test3.png b/data/test3.png new file mode 100644 index 0000000000000000000000000000000000000000..2d29c73049cb95c5aaf927065b980b23fe542e36 GIT binary patch literal 5600 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