% !TeX program = xelatex
% !TeX encoding = utf8
% !TeX root = FuVar.tex

%% TODO: publish to CTAN
\documentclass[twocolumn, margin=normal]{tex/hsrzf}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Packages

%% TODO: publish to CTAN
\usepackage{tex/hsrstud}

%% Language configuration
\usepackage{polyglossia}
\setdefaultlanguage{english}

%% License configuration
\usepackage[
    type={CC},
    modifier={by-nc-sa},
    version={4.0},
    lang={english},
]{doclicense}

%% Math
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{mathtools}

%% Layout
\usepackage{enumitem}
\usepackage{booktabs}
\usepackage{footmisc}

%% Nice drwaings
\usepackage{tikz}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Metadata

\course{Elektrotechnik}
\module{FuVar}
\semester{Spring Semseter 2021}

\authoremail{naoki.pross@ost.ch}
\author{\textsl{Naoki Pross} -- \texttt{\theauthoremail}}

\title{Notes of ``Funktionen mehrerer Variablen''}
\date{\thesemester}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Macros and settings

\setlength{\droptitle}{-2cm}

%% Theorems
\newtheoremstyle{fuvarzf} % name of the style to be used
  {\topsep}
  {\topsep}
  {}
  {0pt}
  {\bfseries}
  {.}
  { }
  { }

\theoremstyle{fuvarzf}
\newtheorem{theorem}{Theorem}
\newtheorem{method}{Method}
\newtheorem{application}{Application}
\newtheorem{definition}{Definition}
\newtheorem{remark}{Remark}
\newtheorem{note}{Note}

\DeclareMathOperator{\tr}{\mathrm{tr}}

\setlist[description]{
  format = { \normalfont\itshape }
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Document

\begin{document}

\maketitle
% \tableofcontents

\section{Preface}

These are just my personal notes of the \themodule{} course, and definitively
not a rigorously constructed mathematical text. The good looking \LaTeX{}
typesetting may trick you into thinking it is rigorous, but really, it is not.

\section{Derivatives of vector valued scalar functions}

\begin{definition}[Partial derivative]
  A vector valued function \(f: \mathbb{R}^m\to\mathbb{R}\), with
  \(\vec{v}\in\mathbb{R}^m\), has a partial derivative with respect to \(v_i\)
  defined as
  \[
    \partial_{v_i} f(\vec{v})
      % = f_{v_i}(\vec{v})
      = \frac{\partial f}{\partial v_i}
      = \lim_{h\to 0} \frac{f(\vec{v} + h\vec{e}_i) - f(\vec{v})}{h}
  \]
\end{definition}

\begin{theorem}(Schwarz's theorem, symmetry of partial derivatives)
  Under some generally satisfied conditions (continuity of \(n\)-th order
  partial derivatives) Schwarz's theorem states that it is possible to swap
  the order of differentiation.
  \[
    \partial_x \partial_y f(x,y) = \partial_y \partial_x f(x,y)
  \]
\end{theorem}

\begin{application}[Find the slope of an implicit curve]
  Let \(f(x,y) = 0\) be an implicit curve. It's slope at any point where
  \(\partial_y f \neq 0\) is \(m = - \partial_x f / \partial_y f\)
\end{application}

\begin{definition}[Total differential]
  The total differential \(df\) of \(f:\mathbb{R}^m\to\mathbb{R}\) is
  \[
    df = \sum_{i=0}^m \partial_{x_i} f\cdot dx .
  \]
  That reads, the \emph{total} change is the sum of the change in each
  direction. This implies
  \[
    \frac{df}{dx_k} = \frac{\partial f}{\partial x_k} + 
      \sum_{i \in \{1 \leq i \leq m : i \neq k\}}
      \frac{\partial f}{\partial x_i} \cdot \frac{dx_i}{dx_k} ,
  \]
  i.e. the change in direction \(x_k\) is how \(f\) changes in \(x_k\)
  (ignoring other directions) plus, how \(f\) changes with respect to each
  other variable \(x_i\) times how it (\(x_i\)) changes with respect to \(x_k\).
\end{definition}

\begin{application}[Linearization]
  A function \(f: \mathbb{R}^m\to\mathbb{R}\) has a linearization \(g\) at
  \(\vec{x}_0\) given by
  \[
    g(\vec{x}) = f(\vec{x}_0) 
      + \sum_{i=1}^m \partial_{x_i} f(\vec{x}_0)(x_i - x_{i,0}) ,
  \]
  if all partial derivatives are defined at \(\vec{x}_0\). With the gradient
  (defined below) \(g(\vec{x}) = f(\vec{x}_0) + \grad f(\vec{x}_0) \dotp
  (\vec{x} - \vec{x}_0)\).
\end{application}

\begin{application}[Propagation of uncertanty]
  Given a measurement of \(m\) values in a vector \(\vec{x}\in\mathbb{R}^m\)
  with values given in the form \(x_i = \bar{x}_i \pm \sigma_{x_i}\), a linear
  approximation the error of a dependent variable \(y\) is computed with
  \[
    y = \bar{y} \pm \sigma_y \approx f(\bar{\vec{x}})
      \pm \sqrt{\sum_{i=1}^m \left(
        \partial_{x_i} f(\bar{\vec{x}}) \sigma_{x_i}\right)^2}
  \]
\end{application}

\begin{definition}[Gradient vector]
  The \emph{gradient} of a function \(f(\vec{x}), \vec{x}\in\mathbb{R}^m\) is a
  column vector\footnote{In matrix notation it is also often defined as row
  vector to avoid having to do some transpositions in the Jacobian matrix and
  dot products in directional derivatives} containing the derivatives in each
  direction.
  \[
    \grad f (\vec{x}) = \sum_{i=1}^m \partial_{x_i} f(\vec{x}) \vec{e}_i
      = \begin{pmatrix}
        \partial_{x_1} f(\vec{x}) \\
        \vdots \\
        \partial_{x_m} f(\vec{x}) \\
      \end{pmatrix}
  \]
\end{definition}

\begin{theorem}
  The gradient vector always points towards \emph{the direction of steepest
  ascent}, and thus is always perpendicular to contour lines.
\end{theorem}

\begin{definition}[Directional derivative]
  A function \(f(\vec{x})\) has a directional derivative in direction
  \(\vec{r}\) (with \(|\vec{r}|=1\)) of
  \[
    \frac{\partial f}{\partial\vec{r}} 
      = \nabla_\vec{r} f = \vec{r} \dotp \grad f
  \]
\end{definition}

\begin{definition}[Jacobian Matrix]
  The \emph{Jacobian} \(\mx{J}_f\) (sometimes written as
  \(\frac{\partial(f_1,\ldots f_m)}{\partial(x_1,\ldots,x_n)}\)) of a function
  \(\vec{f}: \mathbb{R}^n \to \mathbb{R}^m\) is a matrix
  \(\in\mathbb{R}^{n\times m}\) whose entry at the \(i\)-th row and \(j\)-th
  column is given by \((\mx{J}_f)_{i,j} = \partial_{x_j} f_i\), so
  \[
    \mx{J}_f = \begin{pmatrix}
      \partial_{x_1} f_1 & \cdots & \partial_{x_n} f_1 \\
      \vdots & \ddots & \vdots \\
      \partial_{x_1} f_m & \cdots & \partial_{x_n} f_m \\
    \end{pmatrix}
    = \begin{pmatrix}
      (\grad f_1)^t \\
      \vdots \\
      (\grad f_m)^t \\
    \end{pmatrix}
  \]
\end{definition}

\begin{remark}
  In the scalar case (\(m = 1\)) the Jacobian matrix is the transpose of the
  gradient vector.
\end{remark}

\begin{definition}[Hessian matrix]
  Given a function \(f: \mathbb{R}^m \to \mathbb{R}\), the square matrix whose
  entry at the \(i\)-th row and \(j\)-th column is the second derivative of
  \(f\) first with respect to \(x_j\) and then to \(x_i\) is known as the
  \emph{Hessian} matrix.
  \(
    \left(\mx{H}_f\right)_{i,j} = \partial_{x_i}\partial_{x_j} f
  \)
  or
  \[
    \mx{H}_f = \begin{pmatrix}
      \partial_{x_1}\partial_{x_1} f & \cdots & \partial_{x_1}\partial_{x_m} f \\
      \vdots & \ddots & \vdots \\
      \partial_{x_m}\partial_{x_1} f & \cdots & \partial_{x_m}\partial_{x_m} f \\
    \end{pmatrix}
  \]
  Because (almost always) the order of differentiation
  does not matter, it is a symmetric matrix.
\end{definition}


\section{Methods for maximization and minimization problems}

\subsection{Analytical methods}

\begin{method}[Find stationary points]
  Given a function \(f: D \subseteq \mathbb{R}^m \to \mathbb{R}\), to
  find its maxima and minima we shall consider the points
  \begin{itemize}
    \item that are on the boundary\footnote{If it belongs to \(f\).
      \label{ftn:boundary}} of the domain \(\partial D\),
    \item where the gradient \(\grad f\) is not defined,
    \item that are stationary, i.e. where \(\grad f = \vec{0}\).
  \end{itemize}
\end{method}

\begin{method}[Determine the type of stationary point for 2 dimensions]
  Given a scalar function of two variables \(f(x,y)\) and a stationary point
  \(\vec{x}_s\) (where \(\grad f(\vec{x}_s) = \vec{0}\)), we define the
  \emph{discriminant}
  \[
    \Delta = \partial_x^2 f \partial_y^2 f - \partial_y \partial_x f
  \]
  \begin{itemize}
    \item if \(\Delta > 0\) then \(\vec{x}_s\) is an extrema, if \(\partial_x^2
      f(\vec{x}_s) < 0\) it is a maximum, whereas if \(\partial_x^2
      f(\vec{x}_s) > 0\) it is a minimum;

    \item if \(\Delta < 0\) then \(\vec{x}_s\) is a saddle point;

    \item if \(\Delta = 0\) we need to analyze further.
  \end{itemize}
\end{method}

\begin{remark}
  The previous method is obtained by studying the second directional derivative
  \(\nabla_\vec{r}\nabla_\vec{r} f\) at the stationary point in direction of a
  vector \(\vec{r} = \vec{e}_1\cos(\alpha) + \vec{e}_2\sin(\alpha)\).
\end{remark}

\begin{method}[Determine the type of stationary point in higher dimensions]
  Given a scalar function of multiple variables \(f(\vec{x})\) and a stationary
  point \(\vec{x}_s\) (\(\grad f(\vec{x}_s) = \vec{0}\)), we compute the
  Hessian matrix \(\mx{H}_f(\vec{x}_s)\) and its eigenvalues \(\lambda_1,
  \ldots, \lambda_m\), then
  \begin{itemize}
    \item if all \(\lambda_i > 0\), the point is a minimum;
    \item if all \(\lambda_i < 0\), the point is a maximum;
    \item if there are both positive and negative eigenvalues,
      it is a saddle point.
  \end{itemize}
  In the other cases, when there are \(\lambda_i \leq 0\) and/or \(\lambda_i
  \geq 0\) further analysis is required.
\end{method}

\begin{remark}
  Recall that to compute the eigenvalues of a matrix, one must solve the
  equation \((\mx{H} - \lambda\mx{I})\vec{x} = \vec{0}\). Which can be done
  by solving the characteristic polynomial \(\det\left(\mx{H} -
  \lambda\mx{I}\right) = 0\) to obtain \(\dim(\mx{H})\) \(\lambda_i\), which
  when plugged back in result in a overdetermined system of equations.
\end{remark}

\begin{method}[Quickly find the eigenvalues of a \(2\times 2\) matrix]
  This is a nice trick. For a square matrix \(\mx{H}\), let
  \[
    m = \frac{1}{2}\tr \mx{H} = \frac{a + d}{2} ,
    \quad
    p = \det\mx{H} = ad - bc ,
  \]
  then \(\lambda_{1,2} = m \pm \sqrt{m^2 - p}\).
\end{method}

\begin{method}[Search for a constrained extremum in 2 dimensions]
  Let \(n(x,y) = 0\) be a constraint in the search of the extrema of a function
  \(f: D \subseteq \mathbb{R}^2 \to \mathbb{R}\). To find the extrema we look for
  points
  \begin{itemize}
    \item on the boundary\footref{ftn:boundary} \(\vec{u} \in \partial D\)
      where \(n(\vec{u}) = 0\);

    \item \(\vec{u}\) where the gradient either does not exist or is
      \(\vec{0}\), and satisfy \(n(\vec{u}) = 0\);

    \item that solve the system of equations
      \[
        \begin{cases}
          \partial_x f(\vec{u}) \cdot \partial_y n(\vec{u})
            = \partial_y f(\vec{u}) \cdot \partial_x n(\vec{u}) \\
          n(\vec{u}) = 0
        \end{cases}
      \]
  \end{itemize}
\end{method}

\begin{figure}
  \centering
  \includegraphics{img/lagrange-multipliers}
  \caption{
    Intuition for the method of Lagrange multipliers.  Extrema of a constrained
    function are where \(\grad f\) is proportional to \(\grad n\).
  }
\end{figure}

\begin{method}[%
    Search for a constrained extremum in higher dimensions,
    method of Lagrange multipliers]
  We wish to find the extrema of \(f: D \subseteq \mathbb{R}^m \to \mathbb{R}\)
  under \(k < m\) constraints \(n_1 = 0, \cdots, n_k = 0\). To find the extrema 
  we consider the following points:
  \begin{itemize}
    \item Points on the boundary\footref{ftn:boundary} \(\vec{u} \in \partial D\) that satisfy
      \(n_i(\vec{u}) = 0\) for all \(1 \leq i \leq k\), 

    \item Points \(\vec{u} \in D\) where either
      \begin{itemize}
        \item any of \(\grad f, \grad n_1, \ldots, \grad n_k\) do not exist, or
        \item \(\grad n_1, \ldots, \grad n_k\) are linearly \emph{dependent},
      \end{itemize}
      and that satisfy \(0 = n_1(\vec{u}) = \ldots = n_k(\vec{u})\).

    \item Points that solve the system of \(m+k\) equations
      \[
        \begin{dcases}
          \grad f(\vec{u}) = \sum_{i = 1}^k \lambda_i \grad n_i(\vec{u})
            & (m\text{-dimensional}) \\
          n_i(\vec{u}) = 0  & \text{ for } 1 \leq i \leq k
        \end{dcases}
      \]
      The \(\lambda\) values are known as \emph{Lagrange multipliers}. The same
      calculation can be written more compactly by defining the
      \emph{Lagrangian}
      \[
        \mathcal{L}(\vec{u}, \vec{\lambda}) 
          = f(\vec{u}) - \sum_{i = 0}^k \lambda_i n_i(\vec{u}),
      \]
      where \(\vec{\lambda} = \lambda_1, \ldots, \lambda_k\) and then solving
      the \(m+k\) dimensional equation \(\grad \mathcal{L}(\vec{u},
      \vec{\lambda}) = \vec{0}\) (this is generally used in numerical
      computations and not very useful by hand).
  \end{itemize}
\end{method}

\subsection{Numerical methods}

\begin{method}[Newton's method]
  For a function \(f:\mathbb{R}^m\to\mathbb{R}\) we wish to numerically find
  its stationary points (where \(\grad f = \vec{0}\)).
  \begin{enumerate}
    \item Pick a starting point \(\vec{x}_0\)
    \item Set the linearisation\footnote{The gradient becomes a hessian matrix.}
      of \(\grad f\) at \(\vec{x}_k\) to zero and
      solve for \(\vec{x}_{k+1}\)
      \begin{gather*}
        \grad f(\vec{x}_k) + \mx{H}_f (\vec{x}_k)
          (\vec{x}_{k+1} - \vec{x}_k) = \vec{0} \\
          \vec{x}_{k+1} = \vec{x}_k - \mx{H}_f^{-1} (\vec{x}_k) \grad f(\vec{x}_k)
      \end{gather*}
    \item Repeat the last step until the magnitude of the error
      \(|\vec{\epsilon}| = |\mx{H}_f^{-1} (\vec{x}_k) \grad f(\vec{x}_k)|\) is
      sufficiently small.
  \end{enumerate}
\end{method}

\begin{method}[Gradient ascent / descent]
  Given \(f:\mathbb{R}^m\to\mathbb{R}\) we wish to numerically find
  the stationary points (where \(\grad f = \vec{0}\)).
  \begin{enumerate}
    \item Define an arbitrarily small length \(\eta\) and a starting point
      \(\vec{x}_0\)
    \item Compute \(\vec{v} = \pm\grad f(\vec{x}_k)\) (positive for ascent,
      negative for descent), then \(\vec{x}_{k+1} = \vec{x}_k + \eta\vec{v}\)
      if the rate of change \(\epsilon\) is acceptable (\(\epsilon = |\grad
      f(\vec{x}_{k+1})| > 0\)) else recompute \(\vec{v} := \pm \grad
      f(\vec{x}_{k+1})\).
    \item Stop when the rate of change \(\epsilon\) stays small enough for many
      iterations.
  \end{enumerate}
\end{method}

\section{Integration of vector valued scalar functions}

\begin{figure}
  \centering
  \includegraphics{img/double-integral}
  \caption{
    Double integral.
    \label{fig:double-integral}
  }
\end{figure}

\begin{theorem}[Change the order of integration for double integrals] For a
  double integral over a region \(S\) (see Fig.  \ref{fig:double-integral}) we
  need to compute
  \[
    \iint_S f(x,y) \,ds =
      \int\limits_{x_1}^{x_2} \int\limits_{y_1(x)}^{y_2(x)} f(x,y) \,dydx .
  \]
  If \(y_1(x)\) and \(y_2(x)\) are bijective we can swap the order of
  integration by finding the inverse functions \(x_1(y)\) and \(x_2(y)\). If
  they are not bijective (like in Fig. \ref{fig:double-integral}), the region
  must be split into smaller parts. If the region is a rectangle it is always
  possible to change the order of integration.
\end{theorem}

\begin{theorem}[Transformation of coordinates in 2 dimensions]
  \label{thm:transform-coords}
  Given two ``nice'' functions \(x(u,v)\) and \(y(u,v)\), that means are a
  bijection from \(S\) to \(S'\) with continuous partial derivatives and
  nonzero Jacobian determinant \(|\mx{J}_f| = \partial_u x \partial_v y -
  \partial_v x \partial_u y\), which transform the coordinate system. Then
  \[
    \iint_S f(x,y) \,ds = \iint_{S'} f(x(u,v), y(u,v)) |\mx{J}_f| \,ds
  \]
\end{theorem}

\begin{theorem}[Transformation of coordinates]
  The generalization of theorem \ref{thm:transform-coords} is quite simple.
  For an \(m\)-integral of a function \(f:\mathbb{R}^m\to\mathbb{R}\) over a
  region \(B\), we let \(\vec{x}(\vec{u})\) be ``nice'' functions that
  transform the coordinate system. Then as before
  \[
    \int_B f(\vec{x}) \,ds = \int_{B'} f(\vec{x}(\vec{u})) |\mx{J}_f| \,ds
  \]
\end{theorem}

\begin{table}
  \centering
  \begin{tabular}{l >{\(}l<{\)} >{\(}l<{\)}}
    \toprule
    & \text{Volume } dv & \text{Surface } d\vec{s}\\
    \midrule
    Cartesian & - & dx\,dy     \\
    Polar     & - & rd\,rd\phi \\
    Curvilinear & - & |\mx{J}_f|\,du\,dv \\
    \midrule
    Cartesian   & dx\,dy\,dz                         & \uvec{z}\,dx\,dy     \\
    Cylindrical & r\,dr\,d\phi\,dz                   & \uvec{z}r\,dr\,d\phi \\
                &                                    & \uvec{\phi}\,dr\,dz  \\
                &                                    & \uvec{r}r\,d\phi\,dz \\
    Spherical   & r^2\sin\theta\, dr\,d\theta\,d\phi & 
      \uvec{r}r^2\sin\theta\,d\theta\,d\phi \\
    Curvilinear & |\mx{J}_f|\,du\,dv\,dw & - \\
    \bottomrule
  \end{tabular}
  \caption{Differential elements for integration.}
\end{table}

\begin{application}[Physics]
  Given the mass \(m\) and density function \(\rho\) of an object,
  its \emph{center of mass} is calculated with
  \[
    \vec{x}_c = \frac{1}{m}\int_V \vec{x}\rho(\vec{x}) \,dv
      \stackrel{\rho\text{ const.}}{=} \frac{1}{V} \int_V \vec{x}\,dv .
  \]
  The (scalar) \emph{moment of inertia} \(J\) of an object is given by
  \[
    J = \int_V \rho(\vec{r}) r^2 \,dv .
  \]
  % and similarly the \emph{area moment of inertia} \(I\)
\end{application}

\section{Parametric curves and line integrals}

\begin{definition}[Parametric curve]
  A parametric curve is a vector function \(\mathcal{C} : \mathbb{R} \to W
  \subseteq \mathbb{R}^n, t \mapsto \vec{f}(t)\), that takes a parameter \(t\).
\end{definition}

\begin{definition}[Multivariable chain rule]
  Let \(\vec{x}: \mathbb{R} \to \mathbb{R}^m\) and \(f: \mathbb{R}^m \to
  \mathbb{R}\), so that \(f\circ\vec{x}: \mathbb{R} \to \mathbb{R}\), then
  the multivariable chain rule states:
  \[
    \frac{d}{dt}f(\vec{x}(t)) = \grad f (\vec{x}(t)) \dotp \vec{x}'(t)
      = \nabla_{\vec{x}'(t)} f(\vec{x}(t))
  \]
\end{definition}

\begin{theorem}[Signed area enclosed by a planar parametric curve]
  A planar (2D) parametric curve \((x(t), y(t))^t\) with \(t\in[r,s]\) that does
  not intersect itself encloses a surface with area
  \[
    A = \int_r^s x'(t)y(t) \,dt
      = \int_r^s x(t)y'(t) \,dt
  \]
\end{theorem}

\begin{theorem}[Derivative of a curve]
  The derivative of a curve is
  \begin{align*}
    \vec{f}'(t) &= \lim_{h\to 0} \frac{\vec{f}(t + h) - \vec{f}(t)}{h} \\
    &= \sum_{i=0}^n \left(\lim_{h\to 0} \frac{f_i(t+h) - f_i(t)}{h}\right) \vec{e}_i \\
    &= \sum_{i=0}^n \frac{df_i}{dt}\vec{e}_i
    = \left(\frac{df_1}{dt}, \ldots, \frac{df_m}{dt}\right)^t
  \end{align*}
\end{theorem}

\begin{definition}[Line integral in a scalar field]
  Let \(\mathcal{C}:[a,b]\to\mathbb{R}^n, t \mapsto \vec{x}(t)\) be a
  parametric curve. The \emph{line integral} in a field \(f(\vec{x})\) is the
  integral of the signed area under the curve traced in \(\mathbb{R}^n\), and
  is computed with
  \[
    \int_\mathcal{C} f(\vec{x}) \,d\ell 
    = \int_\mathcal{C} f(\vec{x}) \,|d\vec{x}|
    = \int_a^b f(\vec{x}(t)) |\vec{x}'(t)| \, dt
  \]
\end{definition}

\begin{application}[Length of a parametric curve]
  By computing the line integral of the function \(\vec{1}(t) = 1\) we get the
  length of the parametric curve \(\mathcal{C}:[a,b]\to\mathbb{R}^n\).
  \[
    \int_\mathcal{C}d\ell 
    = \int_\mathcal{C} |d\vec{x}|
    = \int_a^b \sqrt{\sum_{i=1}^n x'_i(t)^2} \,dt
  \]
  In the special case with the scalar function \(f(x)\) results in
  \(\int_a^b\sqrt{1+f'(x)^2}\,dx\)
\end{application}

\begin{definition}[Line integral in a vector field]
  The line integral in a vector field \(\vec{F}(\vec{x})\) is ``sum'' of the
  projections of the field's vectors on the tangent of the parametric curve
  \(\mathcal{C}\).
  \[
    \int_\mathcal{C} \vec{F}(\vec{r})\dotp d\vec{r}
    = \int_a^b \vec{F}(\vec{r}(t))\dotp \vec{r}'(t) \,dt
  \]
\end{definition}

\begin{theorem}[Line integral in the opposite direction]
  By integrating while moving backwards (\(-t\)) on the parametric curve gives
  \[
    \int_{-\mathcal{C}} \vec{F}(\vec{r})\dotp d\vec{r}
    = -\int_{\mathcal{C}} \vec{F}(\vec{r})\dotp d\vec{r}
  \]
\end{theorem}

\begin{definition}[Conservative field]
  A vector field is said to be \emph{conservative} the line integral over a
  closed path is zero.
  \[
    \oint_\mathcal{C} \vec{F}(\vec{r})\cdot d\vec{r} = 0
  \]
\end{definition}

\begin{theorem}
  For a twice partially differentiable vector field \(\vec{F}(\vec{x})\) in
  \(n\) dimensions without ``holes'', i.e. in which each closed curve can be
  contracted to a point (simply connected open set), the following statements
  are equivalent:
  \begin{itemize}
    \item \(\vec{F}\) is conservative
    \item \(\vec{F}\) is path-independent
    \item \(\vec{F}\) is a \emph{gradient field}, i.e. there is a
      function \(\phi\) called \emph{potential} such that \(\vec{F} = \grad
      \phi\)
    \item \(\vec{F}\) satisfies the condition \(\partial_{x_j} F_i =
      \partial_{x_i} F_j\) for all \(i,j \in \{1,2,\ldots,n\}\). In the 2D case
      \(\partial_x F_y = \partial_y F_x\), and in 3D
      \[
        \begin{cases}
          \partial_y F_x = \partial_x F_y \\
          \partial_z F_y = \partial_y F_z \\
          \partial_x F_z = \partial_z F_x \\
        \end{cases}
      \]
  \end{itemize}
\end{theorem}

\begin{theorem}
  In a conservative field \(\vec{F}\) with gradient \(\phi\), using the
  multivariable the chain rule:
  \begin{align*}
    \int_\mathcal{C} \vec{F} \dotp d\vec{r} 
    &= \int_\mathcal{C} \vec{F}(\vec{r}(t)) \dotp \vec{r}'(t) \,dt \\
    &= \int_\mathcal{C} \grad \phi(\vec{r}(t)) \cdot \vec{r}'(t) \,dt \\
    &= \int_\mathcal{C} \frac{d\phi(\vec{r}(t))}{dt}\,dt
    = \phi(\vec{r}(b)) - \phi(\vec{r}(a))
  \end{align*}
\end{theorem}

\section{Surface integrals}

\section{Vector analysis}

\section*{License}
\doclicenseText

\begin{center}
  \doclicenseImage
\end{center}

\end{document}
% vim:ts=2 sw=2 et spell:
