2013-11-05 20:30:34 +01:00
\documentclass [a4paper] { scrartcl}
\usepackage { amssymb, amsmath} % needed for math
2013-11-13 08:50:04 +01:00
\usepackage { mathtools} % \xRightarrow
2013-11-05 20:30:34 +01:00
\usepackage [utf8] { inputenc} % this is needed for umlauts
\usepackage [english] { babel} % this is needed for umlauts
\usepackage [T1] { fontenc} % this is needed for correct output of umlauts in pdf
\usepackage [margin=2.5cm] { geometry} %layout
\usepackage { hyperref} % links im text
\usepackage { braket} % needed for \Set
\usepackage { parskip}
\usepackage [colorinlistoftodos] { todonotes}
\usepackage { pgfplots}
\pgfplotsset { compat=1.7,compat/path replacement=1.5.1}
\usepackage { tikz}
2013-11-22 23:23:03 +01:00
\usepackage [framed,amsmath,thmmarks,hyperref] { ntheorem}
\usepackage { framed}
2013-12-05 23:27:17 +01:00
\usepackage { nicefrac}
2013-11-22 23:23:03 +01:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Define theorems %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\theoremstyle { break}
\setlength \theoremindent { 0.7cm}
\theoremheaderfont { \kern -0.7cm\normalfont \bfseries }
\theorembodyfont { \normalfont } % nicht mehr kursiv
2013-11-30 18:34:24 +01:00
\def \mdr { \ensuremath { \mathbb { R} } }
2013-12-05 23:27:17 +01:00
\renewcommand { \qed } { \hfill \blacksquare }
2013-11-30 18:34:24 +01:00
2013-11-23 01:19:21 +01:00
\newframedtheorem { theorem} { Theorem}
2013-11-22 23:23:03 +01:00
\newframedtheorem { lemma} [theorem]{ Lemma}
\newtheorem { plaindefinition} { Definition}
\newenvironment { definition} { \begin { plaindefinition} } { \end { plaindefinition} }
\newenvironment { definition*} { \begin { plaindefinition*} } { \end { plaindefinition*} }
\newtheorem { example} { Example}
\theoremstyle { nonumberplain}
\newtheorem { proof} { Proof:}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2013-11-05 20:30:34 +01:00
\title { Minimal distance to a cubic function}
\author { Martin Thoma}
\hypersetup {
pdfauthor = { Martin Thoma} ,
pdfkeywords = { } ,
pdftitle = { Minimal Distance}
}
\def \mdr { \ensuremath { \mathbb { R} } }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Begin document %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin { document}
\maketitle
\begin { abstract}
2013-11-25 08:13:14 +01:00
When you want to develop a selfdriving car, you have to plan which path
it should take. A reasonable choice for the representation of
paths are cubic splines. You also have to be able to calculate
how to steer to get or to remain on a path. A way to do this
2013-11-22 21:40:15 +01:00
is applying the \href { https://en.wikipedia.org/wiki/PID_ algorithm} { PID algorithm} .
2013-11-25 08:13:14 +01:00
This algorithm needs to know the signed current error. So you need to
be able to get the minimal distance of a point to a cubic spline combined with the direction (left or right).
2013-11-22 21:40:15 +01:00
As you need to get the signed error (and one steering direction might
be prefered), it is not only necessary to
get the minimal absolute distance, but also to get all points
on the spline with minimal distance.
In this paper I want to discuss how to find all points on a cubic
2013-11-05 20:30:34 +01:00
function with minimal distance to a given point.
2013-11-22 21:40:15 +01:00
As other representations of paths might be easier to understand and
to implement, I will also cover the problem of finding the minimal
distance of a point to a polynomial of degree 0, 1 and 2.
2013-11-05 20:30:34 +01:00
\end { abstract}
\section { Description of the Problem}
Let $ f: \mdr \rightarrow \mdr $ be a polynomial function and $ P \in \mdr ^ 2 $
2013-11-25 08:13:14 +01:00
be a point. Let $ d _ { P,f } : \mdr \rightarrow \mdr _ 0 ^ + $
2013-11-22 23:23:03 +01:00
be the Euklidean distance $ d _ { P,f } $ of a point $ P $ and a point $ \left ( x, f ( x ) \right ) $ :
\[ d _ { P,f } ( x ) : = \sqrt { ( x _ P - x ) ^ 2 + ( y _ P - f ( x ) ) ^ 2 } \]
2013-11-05 20:30:34 +01:00
2013-11-22 21:40:15 +01:00
Now there is \todo { Should I proof this?} { finite set} $ x _ 1 , \dots , x _ n $ such that
2013-11-22 23:23:03 +01:00
\[ \forall \tilde x \in \mathbb { R } \setminus \{ x _ 1 , \dots , x _ n \} : d _ { P,f } ( x _ 1 ) = \dots = d _ { P,f } ( x _ n ) < d _ { P,f } ( \tilde x ) \]
2013-11-05 20:30:34 +01:00
2013-11-22 23:23:03 +01:00
Essentially, you want to find the minima $ x _ 1 , \dots , x _ n $ for given
$ f $ and $ P $ .
But minimizing $ d _ { P,f } $ is the same as minimizing $ d _ { P,f } ^ 2 $ :
\begin { align}
d_ { P,f} (x)^ 2 & = \sqrt { (x_ P - x)^ 2 + (y_ P - f(x))^ 2} ^ 2\\
& = x_ p^ 2 - 2x_ p x + x^ 2 + y_ p^ 2 - 2y_ p f(x) + f(x)^ 2
\end { align}
2013-11-22 21:40:15 +01:00
2013-11-23 01:18:22 +01:00
\todo [inline] { Hat dieser Satz einen Namen? Gibt es ein gutes Buch,
aus dem ich den zitieren kann? Ich habe ihn aus \href { https://github.com/MartinThoma/LaTeX-examples/tree/master/documents/Analysis I} { meinem Analysis I Skript} (Satz 21.5).}
\begin { theorem} \label { thm:required-extremum-property}
2013-11-25 08:13:14 +01:00
Let $ x _ 0 $ be a relative extremum of a differentiable function $ f: \mathbb { R } \rightarrow \mathbb { R } $ .
2013-11-23 01:18:22 +01:00
Then: $ f' ( x _ 0 ) = 0 $ .
2013-11-22 23:23:03 +01:00
\end { theorem}
2013-11-23 01:18:22 +01:00
%bzw. 22.3
%\begin{theorem}[Minima of polynomial functions]\label{thm:minima-of-polynomials}
% Let $n \in \mathbb{N}, n \geq 2$, $f$ polynomial function of
% degree $n$, $x_0 \in \mathbb{R}$, \\
% $f'(x_0) = f''(x_0) = \dots = f^{(n-1)} (x_0) = 0$
% and $f^{(n)} > 0$.
%
% Then $x_0$ is a local minimum of $f$.
%\end{theorem}
2013-11-22 23:23:03 +01:00
\clearpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Constant functions %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2013-11-05 20:30:34 +01:00
\section { Minimal distance to a constant function}
2013-11-22 21:40:15 +01:00
Let $ f ( x ) = c $ with $ c \in \mdr $ be a constant function.
2013-11-05 20:30:34 +01:00
2013-11-05 20:47:41 +01:00
\begin { figure} [htp]
\centering
\begin { tikzpicture}
\begin { axis} [
legend pos=north west,
axis x line=middle,
axis y line=middle,
grid = major,
width=0.8\linewidth ,
height=8cm,
grid style={ dashed, gray!30} ,
xmin=-5, % start the diagram at this x-coordinate
xmax= 5, % end the diagram at this x-coordinate
ymin= 0, % start the diagram at this y-coordinate
ymax= 3, % end the diagram at this y-coordinate
axis background/.style={ fill=white} ,
xlabel=$ x $ ,
ylabel=$ y $ ,
tick align=outside,
minor tick num=-3,
enlargelimits=true,
tension=0.08]
\addplot [domain=-5:5, thick,samples=50, red] { 1} ;
\addplot [domain=-5:5, thick,samples=50, green] { 2} ;
\addplot [domain=-5:5, thick,samples=50, blue] { 3} ;
\addplot [black, mark = *, nodes near coords=$P$,every node near coord/.style={anchor=225}] coordinates { (2, 2)} ;
2013-11-22 21:40:15 +01:00
\addplot [blue, mark = *, nodes near coords=$P_{h,\text{min}}$,every node near coord/.style={anchor=225}] coordinates { (2, 3)} ;
\addplot [green, mark = x, nodes near coords=$P_{g,\text{min}}$,every node near coord/.style={anchor=120}] coordinates { (2, 2)} ;
\addplot [red, mark = *, nodes near coords=$P_{f,\text{min}}$,every node near coord/.style={anchor=225}] coordinates { (2, 1)} ;
2013-11-05 20:47:41 +01:00
\draw [thick, dashed] (axis cs:2,0) -- (axis cs:2,3);
\addlegendentry { $ f ( x ) = 1 $ }
\addlegendentry { $ g ( x ) = 2 $ }
\addlegendentry { $ h ( x ) = 3 $ }
\end { axis}
\end { tikzpicture}
2013-11-22 23:23:03 +01:00
\caption { Three constant functions and their points with minimal distance}
2013-11-22 21:40:15 +01:00
\label { fig:constant-min-distance}
2013-11-05 20:47:41 +01:00
\end { figure}
2013-11-05 20:30:34 +01:00
Then $ ( x _ P,f ( x _ P ) ) $ has
minimal distance to $ P $ . Every other point has higher distance.
2013-11-22 21:40:15 +01:00
See Figure~\ref { fig:constant-min-distance} .
2013-11-05 20:30:34 +01:00
2013-11-22 23:23:03 +01:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Linear functions %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2013-11-05 20:30:34 +01:00
\section { Minimal distance to a linear function}
Let $ f ( x ) = m \cdot x + t $ with $ m \in \mdr \setminus \Set { 0 } $ and
2013-11-22 21:40:15 +01:00
$ t \in \mdr $ be a linear function.
2013-11-05 20:30:34 +01:00
2013-11-05 20:47:41 +01:00
\begin { figure} [htp]
\centering
\begin { tikzpicture}
\begin { axis} [
legend pos=north east,
axis x line=middle,
axis y line=middle,
grid = major,
width=0.8\linewidth ,
height=8cm,
grid style={ dashed, gray!30} ,
xmin= 0, % start the diagram at this x-coordinate
xmax= 5, % end the diagram at this x-coordinate
ymin= 0, % start the diagram at this y-coordinate
ymax= 3, % end the diagram at this y-coordinate
axis background/.style={ fill=white} ,
xlabel=$ x $ ,
ylabel=$ y $ ,
tick align=outside,
minor tick num=-3,
enlargelimits=true,
tension=0.08]
\addplot [domain=-5:5, thick,samples=50, red] { 0.5*x} ;
\addplot [domain=-5:5, thick,samples=50, blue] { -2*x+6} ;
\addplot [black, mark = *, nodes near coords=$P$,every node near coord/.style={anchor=225}] coordinates { (2, 2)} ;
\addlegendentry { $ f ( x ) = \frac { 1 } { 2 } x $ }
\addlegendentry { $ g ( x ) = - 2 x + 6 $ }
\end { axis}
\end { tikzpicture}
\caption { The shortest distance of $ P $ to $ f $ can be calculated by using the perpendicular}
2013-11-22 21:40:15 +01:00
\label { fig:linear-min-distance}
2013-11-05 20:47:41 +01:00
\end { figure}
2013-11-05 20:30:34 +01:00
2013-11-22 21:40:15 +01:00
Now you can drop a perpendicular $ f _ \bot $ through $ P $ on $ f ( x ) $ . The slope of $ f _ \bot $
is $ - \frac { 1 } { m } $ . Now you can calculate $ f _ \bot $ :\nobreak
2013-11-05 20:30:34 +01:00
\begin { align}
f_ \bot (x) & = - \frac { 1} { m} \cdot x + t_ \bot \\
\Rightarrow y_ P & = - \frac { 1} { m} \cdot x_ P + t_ \bot \\
2013-11-22 21:40:15 +01:00
\Leftrightarrow t_ \bot & = y_ P + \frac { 1} { m} \cdot x_ P
\end { align}
Now find the point $ ( x, f ( x ) ) $ where the perpendicular crosses the function:
\begin { align}
2013-11-05 20:30:34 +01:00
f(x) & = f_ \bot (x)\\
\Leftrightarrow m \cdot x + t & = - \frac { 1} { m} \cdot x + \left (y_ P + \frac { 1} { m} \cdot x_ P \right )\\
\Leftrightarrow \left (m + \frac { 1} { m} \right ) \cdot x & = y_ P + \frac { 1} { m} \cdot x_ P - t\\
\Leftrightarrow x & = \frac { m} { m^ 2+1} \left ( y_ P + \frac { 1} { m} \cdot x_ P - t \right )
\end { align}
2013-11-22 21:40:15 +01:00
There is only one point with minimal distance. See Figure~\ref { fig:linear-min-distance} .
2013-11-05 20:47:41 +01:00
\clearpage
2013-11-22 21:40:15 +01:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Quadratic functions %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2013-11-05 20:30:34 +01:00
\section { Minimal distance to a quadratic function}
Let $ f ( x ) = a \cdot x ^ 2 + b \cdot x + c $ with $ a \in \mdr \setminus \Set { 0 } $ and
2013-11-22 21:40:15 +01:00
$ b, c \in \mdr $ be a quadratic function.
2013-11-05 20:30:34 +01:00
\begin { figure} [htp]
\centering
\begin { tikzpicture}
\begin { axis} [
legend pos=north west,
axis x line=middle,
axis y line=middle,
grid = major,
width=0.8\linewidth ,
height=8cm,
grid style={ dashed, gray!30} ,
xmin=-3, % start the diagram at this x-coordinate
xmax= 3, % end the diagram at this x-coordinate
ymin=-0.25, % start the diagram at this y-coordinate
ymax= 9, % end the diagram at this y-coordinate
axis background/.style={ fill=white} ,
xlabel=$ x $ ,
ylabel=$ y $ ,
%xticklabels={-2,-1.6,...,7},
%yticklabels={-8,-7,...,8},
tick align=outside,
minor tick num=-3,
enlargelimits=true,
tension=0.08]
\addplot [domain=-3:3, thick,samples=50, red] { 0.5*x*x} ;
\addplot [domain=-3:3, thick,samples=50, green] { x*x} ;
\addplot [domain=-3:3, thick,samples=50, blue] { x*x + x} ;
\addplot [domain=-3:3, thick,samples=50, orange] { x*x + 2*x} ;
\addplot [domain=-3:3, thick,samples=50, black] { -x*x + 6} ;
\addlegendentry { $ f _ 1 ( x ) = \frac { 1 } { 2 } x ^ 2 $ }
\addlegendentry { $ f _ 2 ( x ) = x ^ 2 $ }
\addlegendentry { $ f _ 3 ( x ) = x ^ 2 + x $ }
\addlegendentry { $ f _ 4 ( x ) = x ^ 2 + 2 x $ }
\addlegendentry { $ f _ 5 ( x ) = - x ^ 2 + 6 $ }
\end { axis}
\end { tikzpicture}
\caption { Quadratic functions}
\end { figure}
2013-11-22 23:23:03 +01:00
\subsection { Calculate points with minimal distance}
2013-11-23 01:18:22 +01:00
In this case, $ d _ { P,f } ^ 2 $ is polynomial of degree 4.
We use Theorem~\ref { thm:required-extremum-property} :\nobreak
2013-11-22 23:23:03 +01:00
\begin { align}
2013-11-23 01:18:22 +01:00
0 & \overset { !} { =} (d_ { P,f} ^ 2)'\\
& = -2 x_ p + 2x -2y_ p f'(x) + \left (f(x)^ 2 \right )'\\
& = -2 x_ p + 2x -2y_ p f'(x) + 2 f(x) \cdot f'(x) \rlap { \hspace * { 3em} (chain rule)} \label { eq:minimizingFirstDerivative} \\
2013-11-25 08:13:14 +01:00
\Leftrightarrow 0 & \overset { !} { =} -x_ p + x -y_ p f'(x) + f(x) \cdot f'(x) \rlap { \hspace * { 3em} (divide by 2)} \label { eq:minimizingFirstDerivative} \\
& = -x_ p + x -y_ p (2ax+b) + (ax^ 2+bx+c)(2ax+b)\\
& = -x_ p + x -y_ p \cdot 2ax- y_ p b + (2 a^ 2 x^ 3+2 a b x^ 2+2 a c x+ab x^ 2+b^ 2 x+bc)\\
& = -x_ p + x -2y_ p ax- y_ p b + (2a^ 2 x^ 3 + 3 ab x^ 2 + 2acx + b^ 2 x + bc)\\
2013-12-05 23:27:17 +01:00
& = 2a^ 2 x^ 3 + 3 ab x^ 2 + (1 -2y_ p a+ 2ac + b^ 2)x +(bc-by_ p-x_ p)\label { eq:quadratic-derivative-eq-0}
2013-11-22 23:23:03 +01:00
\end { align}
2013-11-23 01:18:22 +01:00
%\begin{align}
% 0 &\overset{!}{=}(d_{P,f}^2)''\\
% &= 2 - 2y_p f''(x) + \left ( 2 f(x) \cdot f'(x) \right )' \rlap{\hspace*{3em}(Eq. \ref{eq:minimizingFirstDerivative})}\\
% &= 2 - 2y_p f''(x) + 2 \cdot \left ( f'(x) \cdot f'(x) + f(x) \cdot f''(x) \right ) \rlap{\hspace*{3em}(product rule)}\\
% &= 2 - 2y_p f''(x) + 2 \cdot \left ( f'(x)^2 + f(x) \cdot f''(x) \right )\\
% &= 12a^2 x^2 + 12abx + 2(1 -2y_p a+ 2ac + b^2)
%\end{align}
2013-11-22 23:23:03 +01:00
This is an algebraic equation of degree 3.
2013-11-23 01:18:22 +01:00
There can be up to 3 solutions in such an equation. Those solutions
can be found with a closed formula.
2013-11-22 23:23:03 +01:00
2013-11-23 01:18:22 +01:00
\todo [inline] { Where are those closed formulas?}
2013-11-22 23:23:03 +01:00
2013-11-23 01:18:22 +01:00
\begin { example}
Let $ a = 1 , b = 0 , c = 1 , x _ p = 0 , y _ p = 1 $ .
So $ f ( x ) = x ^ 2 + 1 $ and $ P ( 0 , 1 ) $ .
2013-11-22 23:23:03 +01:00
\begin { align}
0 & \stackrel { !} { =} 4 x^ 3 - 2x\\
& =2x(2x^ 2 - 1)\\
\Rightarrow x_ 1 & = 0 \; \; \; x_ { 2,3} = \pm \frac { 1} { \sqrt { 2} }
\end { align}
As you can easily verify, only $ x _ 1 $ is a minimum of $ d _ { P,f } $ .
2013-11-23 01:18:22 +01:00
\end { example}
2013-11-22 23:23:03 +01:00
2013-11-05 20:30:34 +01:00
\subsection { Number of points with minimal distance}
2013-12-05 23:27:17 +01:00
\subsubsection { Two points with minimal distance}
Quadratic functions can have two points with minimal distance.
2013-11-05 20:30:34 +01:00
2013-12-04 19:37:39 +01:00
For example, let $ f ( x ) = x ^ 2 $ and $ P = ( 0 , 5 ) $ . Then $ P _ { f, 1 } = ( \sqrt { \frac { 9 } { 2 } } , \frac { 9 } { 2 } ) $
2013-12-05 23:27:17 +01:00
has minimal distance to $ P $ , but also $ P _ { f, 2 } = ( - \sqrt { \frac { 9 } { 2 } } , \frac { 9 } { 2 } ) $ :
\begin { proof}
\begin { align}
d_ { P,f} (x) & = \sqrt { (x-x_ P)^ 2 + (f(x)-y_ p)^ 2} \\
& = \sqrt { x^ 2 + (x^ 2-5)^ 2} \\
& = \sqrt { x^ 2 + x^ 4-10x^ 2+25} \\
& = \sqrt { x^ 4 -9x^ 2 + 25} \\
& = \sqrt { x^ 4 -9x^ 2 + \frac { 81} { 4} +\frac { 19} { 4} } \\
& = \sqrt { \left (x^ 2 - \frac { 9} { 2} \right )^ 2 + \frac { 19} { 4} }
\end { align}
Obviously, $ d _ { P,f } $ is minimal for $ x = \pm \sqrt { \frac { 9 } { 2 } } \qed $
\end { proof}
2013-12-04 19:37:39 +01:00
\begin { figure} [htp]
\centering
\begin { tikzpicture}
\begin { axis} [
%legend pos=north west,
axis x line=middle,
axis y line=middle,
grid = major,
width=0.6\linewidth ,
height=8cm,
grid style={ dashed, gray!30} ,
xmin=-3, % start the diagram at this x-coordinate
xmax= 3, % end the diagram at this x-coordinate
ymin= 0, % start the diagram at this y-coordinate
ymax= 5, % end the diagram at this y-coordinate
axis background/.style={ fill=white} ,
xlabel=$ x $ ,
ylabel=$ y $ ,
%xticklabels={-2,-1.6,...,7},
%yticklabels={-8,-7,...,8},
tick align=outside,
minor tick num=-3,
enlargelimits=true,
tension=0.08]
\addplot [domain=-3:3, thick,samples=50, orange] { x*x} ;
\draw (axis cs:0,5) circle[radius=2.17];
\draw [red, thick] (axis cs:0,5) -- (axis cs:2.121,4.5);
\draw [red, thick] (axis cs:0,5) -- (axis cs:-2.121,4.5);
\addlegendentry { $ f ( x ) = x ^ 2 $ }
\end { axis}
\end { tikzpicture}
\caption { Two points with minimal distance}
\end { figure}
2013-11-23 01:18:22 +01:00
2013-12-05 23:27:17 +01:00
\subsubsection { Three points with minimal distance}
2013-11-23 01:18:22 +01:00
As discussed before, there cannot be more than 3 points on the graph
of $ f $ next to $ P $ .
2013-11-05 20:30:34 +01:00
2013-11-23 01:18:22 +01:00
\todo [inline] { But can there be three points? O.b.d.A: $ a > 0 $ .
As $ c $ is moves the curve only up and down, we can o.b.d.A assume
that $ c = 0 $ .
$ x = - \frac { b } { 2 a } $ is the minimum of $ f $ . If there are 3 points, this will
be one of them. The other two ones are symmetric by an axis through
$ - \frac { b } { 2 a } $ }
2013-11-05 20:30:34 +01:00
\begin { figure} [htp]
\centering
2013-11-05 20:47:41 +01:00
\begin { tikzpicture}
\begin { axis} [
legend pos=north west,
axis x line=middle,
axis y line=middle,
grid = major,
width=0.8\linewidth ,
height=8cm,
grid style={ dashed, gray!30} ,
xmin=-0.7, % start the diagram at this x-coordinate
xmax= 0.7, % end the diagram at this x-coordinate
ymin=-0.25, % start the diagram at this y-coordinate
ymax= 0.5, % end the diagram at this y-coordinate
axis background/.style={ fill=white} ,
xlabel=$ x $ ,
ylabel=$ y $ ,
%xticklabels={-2,-1.6,...,7},
%yticklabels={-8,-7,...,8},
tick align=outside,
minor tick num=-3,
enlargelimits=true,
tension=0.08]
\addplot [domain=-0.7:0.7, thick,samples=50, orange] { x*x} ;
\draw (axis cs:0,0.5) circle[radius=0.5];
\draw [red, thick] (axis cs:0,0.5) -- (axis cs:0.101,0.0102);
\draw [red, thick] (axis cs:0,0.5) -- (axis cs:-0.101,0.0102);
\draw [red, thick] (axis cs:0,0.5) -- (axis cs:0,0);
\addlegendentry { $ f ( x ) = x ^ 2 $ }
\end { axis}
\end { tikzpicture}
2013-11-05 20:30:34 +01:00
\caption { 3 points with minimal distance?}
\end { figure}
2013-12-05 23:27:17 +01:00
When move the $ f $ and $ P $ simultaneously in $ x $ direction, you will not change the
results.
First of all, you move $ f _ 0 $ by $ \frac { b } { 2 a } $ , so
\[ f _ 1 ( x ) = ax ^ 2 - \frac { b ^ 2 } { 4 a } + c \; \; \; \text { and } \; \; \; P _ 1 = \left ( x _ p + \frac { b } { 2 a } , \; \; y _ p \right ) \]
Because:
\begin { align}
f(x-\nicefrac { b} { 2a} ) & = a (x-\nicefrac { b} { 2a} )^ 2 + b (x-\nicefrac { b} { 2a} ) + c\\
& = a (x^ 2 - \nicefrac { b} { a} x + \nicefrac { b^ 2} { 4a^ 2} ) + bx - \nicefrac { b^ 2} { 2a} + c\\
& = ax^ 2 - bx + \nicefrac { b^ 2} { 4a} + bx - \nicefrac { b^ 2} { 2a} + c\\
& = ax^ 2 -\nicefrac { b^ 2} { 4a} + c
\end { align}
Then move $ f _ 1 $ and $ P _ 1 $ by $ \frac { b ^ 2 } { 4 a } - c $ in $ y $ direction. You get:
\[ f _ 2 ( x ) = ax ^ 2 \; \; \; \text { and } \; \; \; P _ 2 = \left ( x _ p + \frac { b } { 2 a } , \; \; y _ p + \frac { b ^ 2 } { 4 a } - c \right ) \]
As $ f ( x ) = ax ^ 2 $ is symmetric to the $ y $ axis, only points
$ P = ( 0 , y _ p ) $ could possilby have three minima.
Then compute:
\begin { align}
d_ { P,f} (x) & = \sqrt { (x-x_ P)^ 2 + (f(x)-y_ p)^ 2} \\
& = \sqrt { x^ 2 + (ax^ 2-y_ p)^ 2} \\
& = \sqrt { x^ 2 + a^ 2 x^ 4-2ay_ p x^ 2+y_ p^ 2} \\
& = \sqrt { a^ 2 x^ 4 + (1-2ay_ p) x^ 2 + y_ p^ 2} \\
& = \sqrt { \left (a^ 2 x^ 2 + \frac { 1-2 a y_ p} { 2} \right )^ 2 + y_ p^ 2 - (1-2 a y_ p)^ 2} \\
& = \sqrt { \left (a^ 2 x^ 2 + \nicefrac { 1} { 2} -a y_ p \right )^ 2 + (y_ p^ 2 - (1-2 a y_ p)^ 2)} \\
\end { align}
For $ y _ p \leq \nicefrac { 1 } { 2 a } $ you only have $ x = 0 $ as a minimum.
For all other points, there are exactly two minima.
2013-11-23 01:18:22 +01:00
\clearpage
2013-11-22 21:40:15 +01:00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Cubic %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2013-11-05 20:30:34 +01:00
\section { Minimal distance to a cubic function}
2013-11-22 21:40:15 +01:00
Let $ f ( x ) = a \cdot x ^ 3 + b \cdot x ^ 2 + c \cdot x + d $ be a cubic function
with $ a \in \mdr \setminus \Set { 0 } $ and
2013-11-05 20:47:41 +01:00
$ b, c, d \in \mdr $ be a function.
2013-11-23 01:18:22 +01:00
\begin { figure} [htp]
\centering
\begin { tikzpicture}
\begin { axis} [
legend pos=south east,
axis x line=middle,
axis y line=middle,
grid = major,
width=0.8\linewidth ,
height=8cm,
grid style={ dashed, gray!30} ,
xmin=-3, % start the diagram at this x-coordinate
xmax= 3, % end the diagram at this x-coordinate
ymin=-3, % start the diagram at this y-coordinate
ymax= 3, % end the diagram at this y-coordinate
axis background/.style={ fill=white} ,
xlabel=$ x $ ,
ylabel=$ y $ ,
%xticklabels={-2,-1.6,...,7},
%yticklabels={-8,-7,...,8},
tick align=outside,
minor tick num=-3,
enlargelimits=true,
tension=0.08]
\addplot [domain=-3:3, thick,samples=50, red] { x*x*x} ;
\addplot [domain=-3:3, thick,samples=50, green] { x*x*x+x*x} ;
\addplot [domain=-3:3, thick,samples=50, blue] { x*x*x+2*x*x} ;
\addplot [domain=-3:3, thick,samples=50, orange] { x*x*x+x} ;
\addlegendentry { $ f _ 1 ( x ) = x ^ 3 $ }
\addlegendentry { $ f _ 2 ( x ) = x ^ 3 + x ^ 2 $ }
\addlegendentry { $ f _ 2 ( x ) = x ^ 3 + 2 \cdot x ^ 2 $ }
\addlegendentry { $ f _ 1 ( x ) = x ^ 3 + x $ }
\end { axis}
\end { tikzpicture}
\caption { Cubic functions}
\end { figure}
2013-11-05 20:47:41 +01:00
2013-11-23 01:18:22 +01:00
%
%\subsection{Special points}
%\todo[inline]{Write this}
%
%\subsection{Voronoi}
%
%For $b^2 \geq 3ac$
%
%\todo[inline]{Write this}
2013-11-05 20:47:41 +01:00
2013-11-05 20:30:34 +01:00
\subsection { Calculate points with minimal distance}
2013-11-22 21:40:15 +01:00
When you want to calculate points with minimal distance, you can
2013-11-22 23:23:03 +01:00
take the same approach as in Equation \ref { eq:minimizingFirstDerivative} :
2013-11-22 21:40:15 +01:00
\begin { align}
0 & \stackrel { !} { =} -2 x_ p + 2x -2y_ p(f(x))' + (f(x)^ 2)'\\
2013-11-23 01:18:22 +01:00
& = 2 f(x) \cdot f'(x) - 2 y_ p f'(x) + 2x - 2 x_ p\\
2013-11-25 08:13:14 +01:00
& = f(x) \cdot f'(x) - y_ p f'(x) + x - x_ p\\
2013-11-30 18:34:24 +01:00
& = \underbrace { f'(x) \cdot \left (f(x) - y_ p \right )} _ { \text { Polynomial of degree 5} } + x - x_ p
2013-11-22 21:40:15 +01:00
\end { align}
2013-11-30 18:34:24 +01:00
General algebraic equations of degree 5 don't have a solution formula.\footnote { TODO: Quelle}
Although here seems to be more structure, the resulting algebraic
equation can be almost any polynomial of degree 5:\footnote { Thanks to Peter Košinár on \href { http://math.stackexchange.com/a/584814/6876} { math.stackexchange.com} for this one}
\begin { align}
0 & \stackrel { !} { =} f'(x) \cdot \left (f(x) - y_ p \right ) + (x - x_ p)\\
& = \underbrace { 3 a^ 2} _ { = \tilde { a} } x^ 5 + \underbrace { 5ab} _ { \tilde { b} } x^ 4 + \underbrace { 2(2ac + b^ 2 )} _ { =: \tilde { c} } x^ 3 & +& \underbrace { 3(ad+bc-ay_ p)} _ { \tilde { d} } x^ 2 \\
& & +& \underbrace { (2 b d+c^ 2+1-2 b y_ p)} _ { =: \tilde { e} } x+\underbrace { c d-c y_ p-x_ p} _ { =: \tilde { f} } \\
0 & \stackrel { !} { =} \tilde { a} x^ 5 + \tilde { b} x^ 4 + \tilde { c} x^ 3 + \tilde { d} x^ 2 + \tilde { e} x + \tilde { f}
\end { align}
2013-11-27 19:19:27 +01:00
2013-11-30 18:34:24 +01:00
\begin { enumerate}
\item With $ a $ , we can get any value of $ \tilde { a } \in \mdr \setminus \Set { 0 } $ .
\item With $ b $ , we can get any value of $ \tilde { b } \in \mdr \setminus \Set { 0 } $ .
\item With $ c $ , we can get any value of $ \tilde { c } \in \mdr $ .
\item With $ d $ , we can get any value of $ \tilde { d } \in \mdr $ .
\item With $ y _ p $ , we can get any value of $ \tilde { e } \in \mdr $ .
\item With $ x _ p $ , we can get any value of $ \tilde { f } \in \mdr $ .
\end { enumerate}
The first restriction only guaratees that we have a polynomial of
degree 5. The second one is necessary, to get a high range of
$ \tilde { e } $ .
This means, that there is no solution formula for the problem of
finding the closest points on a cubic function to a given point.
2013-11-23 01:23:27 +01:00
2013-11-23 01:18:22 +01:00
\subsection { Number of points with minimal distance}
As there is an algebraic equation of degree 5, there cannot be more
than 5 solutions.
\todo [inline] { Can there be 3, 4 or even 5 solutions? Examples!
2013-11-22 21:40:15 +01:00
2013-11-23 01:18:22 +01:00
After looking at function graphs of cubic functions, I'm pretty
sure that there cannot be 4 or 5 solutions, no matter how you
chose the cubic function $ f $ and $ P $ .
2013-11-22 21:40:15 +01:00
2013-11-23 01:18:22 +01:00
I'm also pretty sure that there is no polynomial (no matter what degree)
that has more than 3 solutions.}
2013-11-23 01:26:03 +01:00
\todo [inline] { If there is no closed form solution, I want to
describe a numerical solution. I guess Newtons method might be good.}
2013-11-05 20:30:34 +01:00
\end { document}