Beim Zeichnen einer Titrationskurve (mathematische Funktion siehe unten) gibt pgfplot einem zum Teil falschen Graph. Was mache ich falsch?

Open in Online-Editor
\documentclass{standalone}
  \usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
  xmin=0,
  xmax=0.02,
  ymin=0,
  ymax=14,
  ylabel={pH},
  axis x line=bottom,
  axis y line=left,
  ]
\addplot[domain=0:0.02, samples=1001,]{-log10(-0.5*(-0.01+\x)/(0.1+\x)+sqrt(0.25*((-0.01+\x)/(0.1+\x))^2+10^(-14)))};
\end{axis}
\end{tikzpicture}
\end{document}

alt text

gefragt 12 Mär, 15:02

Solarflare's gravatar image

Solarflare
361
Akzeptiert: 100%

bearbeitet 12 Mär, 16:30

esdd's gravatar image

esdd
14.2k53251

Du bewegst Dich da höchstwahrscheinlich an der Grenze der Rechengenauigkeit. Wir hatten AFAIR früher schon solche Probleme. Da leider häufig pgfplots als einziges Thema angegeben wird, statt das etwas genauer einzugrenzen, ist es leider nicht so einfach, das wieder zu finden.

(12 Mär, 16:10) saputello

Wie @saputello vermute ich auch, dass das ein Genauigkeitsproblem ist. Im log File bekomme ich auch jede Menge Hinweise in der Art

NOTE: coordinate (1Y1.004e-2],3Y0.0e0]) has been dropped because it is unbounde d (in y). (see also unbounded coords=jump).

Lasse ich stattdessen gnuplot rechnen, erhalte ich

alt text

Code:

Open in Online-Editor
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
  xmin=0,
  xmax=0.02,
  ymin=0,
  ymax=14,
  ylabel={pH},
  axis x line=bottom,
  axis y line=left,
  ]
  \addplot[domain=0:0.02, samples=1001] 
    gnuplot{-log10(-0.5*(-0.01+x)/(0.1+x)+sqrt(0.25*((-0.01+x)/(0.1+x))^2+10^(-14)))};
\end{axis}
\end{tikzpicture}
\end{document}

Dafür muss gnuplot installiert sein und --shell-escape beim Kompilieren gesetzt werden.

Permanenter link

beantwortet 12 Mär, 16:40

esdd's gravatar image

esdd
14.2k53251

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

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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:

×160

Frage gestellt: 12 Mär, 15:02

Frage wurde angeschaut: 868 Mal

Zuletzt aktualisiert: 12 Mär, 16:40