Small-angle approximation

Small-angle approximation of sine, cosine and tangent, and their relative error.

For more on the pendulums, please see the “pendulum” tag . For more on the small-angle approximation, please see the “Taylor expansion” tag .

small_angle_approximation-001.pngsmall_angle_approximation-002.pngsmall_angle_approximation-003.pngsmall_angle_approximation-004.png

Edit and compile if you like:

% Author: Izaak Neutelings (June 2020)
\documentclass[border=3pt,tikz]{standalone}
\usepackage{amsmath} % for \text
\usepackage[outline]{contour} % glow around text
\usepackage{physics}
\usepackage{siunitx}
\usepackage{xcolor}
\usepackage{etoolbox} %ifthen
\usetikzlibrary{calc}
\usetikzlibrary{arrows,arrows.meta}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{angles,quotes} % for pic (angle labels)
%\usetikzlibrary{fadings}
\usepackage{etoolbox} % ifthen
\tikzset{>=latex} % for LaTeX arrow head
\contourlength{1.6pt}

\colorlet{myblue}{blue!60!black}
\colorlet{myred}{red!60!black}
\colorlet{mypurple}{red!50!blue!95!black!75}
\colorlet{mygreen}{green!60!black}
\tikzstyle{mydashed}=[black!70,dashed,thin]
\tikzstyle{mymeas}=[{Latex[length=3,width=2]}-{Latex[length=3,width=2]},thin]
\tikzstyle{mysmallarr}=[-{Latex[length=3,width=2]}]

\tikzset{
  declare function={reldiff(\x,\y) = (\x-\y)/abs(\y);}
}
\def\tick#1#2{\draw[thick] (#1) ++ (#2:0.1) --++ (#2-180:0.2)}



\begin{document}


% SIN - X - TAN
\def\A{2.0}
\def\k{0.45} % x -> theta
\def\xmax{4.2}
\def\ymax{\A}
\def\N{7}
\def\nsamples{100}
\begin{tikzpicture}
  
  \draw[->,thick,black] (-1.05*\xmax,0) -- (1.1*\xmax,0) node[below right=-2] {$\theta$ [\si{\degree}]};
  \draw[->,thick,black] (0,-1.1*\A) -- (0,1.15*\A) node[above left=-3] {$y$};
  \draw[mypurple,thick,variable=\t,samples=\nsamples,smooth,domain=-1.1/\k:1.1/\k]
    plot(\t,\A*\k*\t) node[below=2,above right=-1] {$y=\theta$};
  \draw[myred,thick,variable=\t,samples=\nsamples,smooth,domain=-\xmax:\xmax]
    plot(\t,{\A*sin(180/pi*\k*\t)}) node[right=4,below=0] {$y=\sin\theta$};
  \draw[myblue,thick,variable=\t,samples=\nsamples,smooth,domain=-0.85/\k:0.85/\k]
    plot(\t,{\A*tan(180/pi*\k*\t)}) node[left=2] {$y=\tan\theta$};
  
  \node[right=2,below left=1.4,scale=0.9] at (0,0) {$0$};
  \tick{0,-\A}{0} node[left=-1,scale=0.9] {$-1$};
  \tick{0,\A}{0} node[left=-1,scale=0.9] {$1$};
  \foreach \i [evaluate={\ang=int(\i*105/\N); \t=pi/180/\k*\ang;}] in {1,...,\N}{
    \tick{-\t,0}{90} node[left=2,below=-1,scale=0.85] {$-\ang$};
    \tick{\t,0}{90} node[below=-1,scale=0.85] {$\ang$};
  }
  
\end{tikzpicture}


% COS - X
\begin{tikzpicture}
  
  \draw[->,thick,black] (-1.05*\xmax,0) -- (1.1*\xmax,0) node[below right=-2] {$\theta$ [\si{\degree}]};
  \draw[->,thick,black] (0,-0.8*\A) -- (0,1.15*\A) node[above left=-3] {$y$};
  \draw[mypurple,thick,variable=\t,samples=\nsamples,smooth,domain=-0.9*\xmax:0.9*\xmax]
    plot(\t,{\A*(1-(\k*\t)^2/2)}) node[below=4,left=6] {$y=1-\dfrac{\theta^2}{2}$};
  \draw[myred,thick,variable=\t,samples=\nsamples,smooth,domain=-\xmax:\xmax]
    plot(\t,{\A*cos(180/pi*\k*\t)}) node[below right=-2] {$y=\cos\theta$};
  
  \node[right=2,below left=1.4,scale=0.9] at (0,0) {$0$};
  \tick{0,\A}{0} node[left=-1,scale=0.9] {$1$};
  \foreach \i [evaluate={\ang=int(\i*105/\N); \t=pi/180/\k*\ang;}] in {1,...,\N}{
    \tick{-\t,0}{90} node[left=2,below=-1,scale=0.85] {$-\ang$};
    \tick{\t,0}{90} node[below=-1,scale=0.85] {$\ang$};
  }
  
\end{tikzpicture}


% SIN - X - TAN relative difference
\def\k{0.145}  % x -> theta
\def\A{42}     % y -> rel. diff.
\def\xmax{3.4}
\def\ymax{2.6}
\def\Nx{5}
\def\Ny{6}
\def\nsamples{10}
\begin{tikzpicture}
  
  \draw[->,thick,black] (-1.05*\xmax,0) -- (1.1*\xmax,0) node[below right=-2] {$\theta$ [\si{\degree}]};
  \draw[->,thick,black] (0,-\ymax) -- (0,1.1*\ymax) node[above=-1] {$\Delta f / \abs{f} \;\; [\%]$};
  %\draw[myblue,thick,variable=\t,samples=\nsamples,smooth,domain=-\xmax:\xmax]
  %  plot(\t,{\A*reldiff(\k*\t,sin(180/pi*\k*\t))})
  %  node[above left=-7] {$\dfrac{\theta-\sin\theta}{\abs{\theta}}$};
  \draw[myblue,thick,variable=\t,samples=\nsamples,smooth,domain=-\xmax:\xmax]
    plot(\t,{\A*((\k*\t)^3/6-(\k*\t)^5/120)/abs(sin(180/pi*\k*\t))})
    node[left=3,above right=-3] {$\dfrac{\theta-\sin\theta}{\abs{\sin\theta}}$};
  %\draw[myred,thick,variable=\t,samples=\nsamples,smooth]
  %  plot[domain=-\xmax:-0.08*\xmax](\t,{\A*reldiff(\k*\t,tan(180/pi*\k*\t))}) -- (0,0) --
  %  plot[domain=0.08*\xmax:\xmax](\t,{\A*reldiff(\k*\t,tan(180/pi*\k*\t))})
  %  node[left=3,above right=-3] {$\dfrac{\theta-\tan\theta}{\abs{\tan}}$};
  \draw[myred,thick,variable=\t,samples=\nsamples,smooth,domain=-0.9*\xmax:0.9*\xmax]
    plot(\t,{\A*(-(\k*\t)^3/3-2*(\k*\t)^5/15)/abs(tan(180/pi*\k*\t))})
    node[left=3,above right=-3] {$\dfrac{\theta-\tan\theta}{\abs{\tan\theta}}$};
  
  \draw[dashed]
    (0,\A/100) --++ (pi/180/\k*15,0)
    (-0.13*\xmax,\A/100) --++ (-pi/180/\k*15,0)
    (0,-\A/100) --++ (pi/180/\k*15,0)
    (-0.13*\xmax,-\A/100) --++ (-pi/180/\k*15,0);
  \node[right=1,below left=0,scale=0.9] at (0,0) {$0$};
  \foreach \i [evaluate={\ang=int(\i*25/\Nx); \t=pi/180/\k*\ang;}] in {1,...,\Nx}{
    \tick{-\t,0}{90} node[left=2,below=-1,scale=0.85] {$-\ang$};
    \tick{\t,0}{90} node[below=-1,scale=0.85] {$\ang$};
  }
  \foreach \i [evaluate={\rd=int(6*\i/\Ny); \y=\A*\rd/100;}] in {1,...,\Ny}{
    \tick{0,-\y}{0} node[left=-1,scale=0.85] {$-\rd$};
    \tick{0,\y}{0} node[left=-1,scale=0.85] {$\rd$};
  }
  
\end{tikzpicture}


% COS - X relative difference
\def\A{800} % y -> rel. diff.
\def\Ny{4}
\def\nsamples{50}
\begin{tikzpicture}
  
  \draw[->,thick,black] (-1.05*\xmax,0) -- (1.1*\xmax,0) node[below right=-2] {$\theta$ [\si{\degree}]};
  \draw[->,thick,black] (0,-4/3*\ymax) -- (0,1.1*2/3*\ymax) node[above=-1] {$\Delta f / \abs{f} \;\; [\%]$};
  %\draw[myblue,thick,variable=\t,samples=\nsamples,smooth,domain=-\xmax:\xmax]
  %  plot[domain=-\xmax:-0.4*\xmax](\t,{\A*reldiff(1-(\k*\t)^2/2,cos(180/pi*\k*\t))}) -- (0,0) --
  %  plot[domain=0.4*\xmax:\xmax](\t,{\A*reldiff(1-(\k*\t)^2/2,cos(180/pi*\k*\t))})
  %  node[below left=-1] {$\dfrac{\left(1-\frac{\theta^2}{2}\right)-\cos\theta}{\abs{\theta}}$};
  \draw[myblue,thick,variable=\t,samples=\nsamples,smooth,domain=-\xmax:\xmax]
    plot(\t,{\A*(-(\k*\t)^4/24+(\k*\t)^6/720)/cos(180/pi*\k*\t)})
    node[left=11,below=-2] {$\dfrac{\left(1-\frac{\theta^2}{2}\right)-\cos\theta}{\abs{\cos\theta}}$};
  
  \node[right=1,below left=1,scale=0.9] at (0,0) {$0$};
  \foreach \i [evaluate={\ang=int(\i*25/\Nx); \t=pi/180/\k*\ang;}] in {1,...,\Nx}{
    \tick{-\t,0}{90} node[left=2,below=-1,scale=0.85] {$-\ang$};
    \tick{\t,0}{90} node[below=-1,scale=0.85] {$\ang$};
  }
  \foreach \i [evaluate={\rd=int(\i); \y=\A*\rd/1000;}] in {1,...,\Ny}{
    \ifnumcomp{\i}{<}{3}{
      \tick{0,\y}{0} node[left=-1,scale=0.85] {$0.\rd$};
    }{}
    \tick{0,-\y}{0} node[left=-1,scale=0.85] {$-0.\rd$};
  }
  
\end{tikzpicture}


\end{document}

Click to download: small_angle_approximation.texsmall_angle_approximation.pdf
Open in Overleaf: small_angle_approximation.tex

Leave a Reply

Your email address will not be published.