Hier ist noch ein anderer Ansatz, bei dem zunächst ein Befehl für das Zeichnen einer Geraden durch einen Punkt definiert wird, der sich auch für das Zeichnen einer Tangente bei gegebener Funktion und Ableitung eignet. Außerdem wird für das Beschriften den Punkte ebenfalls ein eigener Befehl definiert.
\documentclass[margin=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
% Syntax für das Zeichnen einer Gerade durch einen vorgegebenen Punkt:
% #1 Optionen für die Gerade, z.B. Farbe und Plotbereich (optional)
% #2 x-Koordinate des Punktes
% #3 y-Koordinate des Punktes, kann auch eine Formel in Abhängigkeit von \x sein
% #4 Anstieg der Geraden, kann auch eine Formel in Abhängigkeit von \x sein
% #5 Nodenname für den Punkt
\newcommand\Gerade[5][]{%
\pgfmathsetmacro\x{#2}
\expandafter\pgfmathsetmacro\csname#5x\endcsname{#2}%
\expandafter\pgfmathsetmacro\csname#5y\endcsname{#3}%
\pgfmathsetmacro\m{#4}
\pgfmathsetmacro\n{\csname#5y\endcsname-\m*\csname#5x\endcsname}
\addplot[#1] {\m*(\x-\csname#5x\endcsname)+\csname#5y\endcsname};
\coordinate (#5) at (axis cs:{\csname#5x\endcsname,\csname#5y\endcsname});
}
% Syntax für das Beschriftung eines Punktes:
% #1 Optionen für die Beschriftung (optional)
% #2 kommaseparierte Liste mit Nodennamen/Beschriftung an x-Achse/Beschriftung an y-Achse
% die Koordinate O muss innerhalb der axis Umgebung definiert wurden sein
\newcommand\Beschriftung[2][]{%
\foreach \name/\beschrx/\beschry in {#2}
\path[#1](O-|\name)node[below]{\strut\beschrx}--(\name)node[punkt]{}--(\name-|O)node[left]{\beschry};%
}
\tikzset{punkt/.style={circle,minimum width=4\pgflinewidth,inner sep=0pt,fill}}
\begin{document}
\begin{tikzpicture}
\newcommand\funktion{2*sin(0.5*deg(\x)) + 1.5}
\newcommand\ableitung{cos(0.5*deg(\x))}
%
\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};
\coordinate (O) at (axis cs:0,0); % wird für Beschriftung benötigt
\Gerade[green!80!black,domain=0.2:3]{1.5}{\funktion}{\ableitung}{eins}
\Gerade[blue,dashed,domain=1:5]{3}{\funktion}{\ableitung}{zwei}
\Gerade[brown,domain=4:8]{6}{\funktion}{\ableitung}{drei}
\end{axis}
\Beschriftung[red,draw,thin,dotted,text=gray]{eins/a/f(a),zwei/b/f(b),drei/c/f(c)}
\Beschriftung[red,draw,thin,dotted,text=gray]{eins/$a$/$f(a)$,zwei/$b$/$f(b)$,drei/$c$/$f(c)$}
\end{tikzpicture}
\end{document}
![alt text][1]
[1]: http://texwelt.de/wissen/upfiles/tangenten.PNGhttp://texwelt.de/wissen/upfiles/tangenten_1.PNG