Eine Tangente an (u|f(u)) ist ja gegeben durch
> t(x) = f'(u)(x-u) + f(u)
Mit Deinen beiden Makros bist Du also schon fast am Ziel für den Automatismus:
\documentclass[margin=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\begin{document}
\begin{tikzpicture}
\newcommand*\funktion[1]{2*sin(0.5*deg(#1)) + 1.5}% dargestellte Funktion
\newcommand*\ableitung[1]{cos(0.5*deg(#1))}% Ableitung der Funktion
\newcommand*\tangente[2]{\ableitung{#2}*(#1-#2)+\funktion{#2}}
\begin{axis}[axis lines=middle,,enlargelimits,
xlabel=$x$,xlabel style={anchor=north},xtick=\empty,
ylabel=$y$,ylabel style={anchor=east},ytick=\empty
]
\addplot[domain=0:10,samples=200]{\funktion{\x}};
\addplot[domain=-1:10,samples=200]{\funktion{\x}};
\addplot[domain=4:8]{\tangente{\x}{6}};
\node[coordinate,pin=0:{$(u,f(u))$}] \coordinate (P) at (axis cs:6,{\funktion{6}}) ;
\coordinate (Q) at (axis cs:0,{\funktion{6}}) ;
\coordinate (R) at (axis cs:6,0) ;
\node[coordinate,pin=30:{$(u,f(u))$}] at (P) {};
\draw[red,dotted] (P) -- (Q) node[left] {$f(u)$} ;
\draw[red,dotted] (P) -- (R) node[below] {$u$} ;
\end{axis}
\end{tikzpicture}
\end{document}
![alt text][1]
[1]: http://texwelt.de/wissen/upfiles/tangente_2.pnghttp://texwelt.de/wissen/upfiles/tangente_3.png