Warum ruiniert es mir den Graph, sobald ich an die Funktion +1 dazuschreibe?

Öffne in Overleaf
\newcommand*\funktion[1]{(#1)^2 +1}

So geht es:

Öffne in Overleaf
\newcommand*\funktion[1]{(#1)^2}
Öffne in Overleaf
\documentclass[margin=5mm]{standalone} 
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}

\begin{document} 
\begin{tikzpicture}[font=\footnotesize] 
% Dargestellte Funktion
\newcommand*\funktion[1]{(#1)^2 +1} %* sin(deg(#1))^3
% Näherungsweise Ableitung / Tangentensteigung der Funktion
\newcommand*\ableitung[1]{(\funktion{#1+0.01}-\funktion{#1})/0.01}
% Tangente an die 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,
x axis line style = {-latex}, y axis line style = {-latex},
]
\addplot[domain=-3:3,samples=200]{\funktion{\x}};
% Tangente zeichnen in T(u, f(u))
\pgfmathsetmacro{\u}{1} % Berührstelle u eingeben
\pgfmathsetmacro{\Laenge}{1.25} % Länge der Tangente eingeben
% Tangente
\addplot[domain=\u-\Laenge:\u+\Laenge, red]{\tangente{\x}{\u}};
% Koordinaten des Berührpunktes und seiner Fusspunkte
\coordinate (P) at (axis cs: \u,{\funktion{\u}}) ;
\coordinate (Q) at (axis cs:0,{\funktion{\u}}) ;
\coordinate (R) at (axis cs:\u,0) ;
\draw[red,dotted] (P) -- (Q) node[left] {$f(u)$} ;
\draw[red,dotted] (P) -- (R) node[below] {$u$} ;
% Berührpunkt T(u, f(u))
\draw[red, fill=white] (axis cs: \u, {\funktion{\u}}) circle[radius=1.5pt] node[above, red] {$T$};
\end{axis}
\end{tikzpicture}

\end{document}

gefragt 02 Apr, 10:43

cis's gravatar image

cis
5.9k10120211
Akzeptiert: 69%

bearbeitet 03 Apr, 06:13

Clemens's gravatar image

Clemens
20.1k113360


Der Befehl \funktion berechnet nichts. Damit macht

Öffne in Overleaf
\newcommand*\ableitung[1]{(\funktion{#1+0.01}-\funktion{#1})/0.01}

bei Verwendung des von Dir definierten \funktion das gleiche wie

Öffne in Overleaf
\newcommand*\ableitung[1]{((#1+0.01)^2 +1-(#1)^2 +1)/0.01}

Beachte das + vor der zweiten 1 im Dividenden. Die Ableitung wird dadurch sehr viel größer und die Tangente entsprechend steiler.

Du müsstest also die Summe in Deiner Definition von \funktion noch in runde Klammern setzen, um das gewünschte Ergebnis zu erhalten:

Öffne in Overleaf
\newcommand*\funktion[1]{((#1)^2 +1)}

alt text

Alternativ kannst Du auch die Bibliothek math nutzen:

Öffne in Overleaf
\documentclass[margin=5mm]{standalone} 
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\usetikzlibrary{math}

\begin{document} 
\begin{tikzpicture}[font=\footnotesize]

  \tikzmath{
    function funktion(\x)
      {return \x^2+1;};
    function ableitung(\x)
      {return (funktion(\x+0.01)-funktion(\x))/0.01;};
    function tangente(\x, \u)
      {return ableitung(\u)*(\x-\u)+funktion(\u);};
  }

  \begin{axis}[
    axis lines=middle, enlargelimits,
      xlabel=$x$,xlabel style={anchor=north},xtick=\empty,
      ylabel=$y$,ylabel style={anchor=east},%ytick=\empty,
      x axis line style = {-latex}, y axis line style = {-latex},
    ]
    \addplot[domain=-3:3,samples=200]{funktion(x)};
    % Tangente zeichnen in T(u, f(u))
    \pgfmathsetmacro{\u}{1} % Berührstelle u eingeben
    \pgfmathsetmacro{\Laenge}{1.25} % Länge der Tangente eingeben
    % Tangente
    \addplot[domain=\u-\Laenge:\u+\Laenge, red]{tangente(x,\u)};
    % Koordinaten des Berührpunktes und seiner Fusspunkte
    \coordinate (P) at (axis cs: \u,{funktion(\u)}) ;
    \coordinate (Q) at (axis cs:0,{funktion(\u)}) ;
    \coordinate (R) at (axis cs:\u,0) ;
    \draw[red,dotted] (P) -- (Q) node[left] {$f(u)$} ;
    \draw[red,dotted] (P) -- (R) node[below] {$u$} ;
    % Berührpunkt T(u, f(u))
    \draw[red, fill=white] (axis cs: \u, {funktion(\u)}) circle[radius=1.5pt] node[above, red] {$T$};
  \end{axis}
\end{tikzpicture}

\end{document}

Wenn Du compat auf eine aktuellere Version einstellen würdest, könntest Du Dir übrigens die ganzen axis cs sparen.

Permanenter link

beantwortet 02 Apr, 15:07

esdd's gravatar image

esdd
15.5k53753

bearbeitet 02 Apr, 15:10

Ah sehr gut. Ich schreibe axis cs: lieber dazu, zur eigenen Übersicht.

(02 Apr, 17:32) cis
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×196

Frage gestellt: 02 Apr, 10:43

Frage wurde angeschaut: 637 Mal

Zuletzt aktualisiert: 03 Apr, 06:13