\psplot zeichnet nicht den vollständigen Graph

Tabellen und Grafiken erstellen und anordnen


Sgamper
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Do 1. Mai 2014, 11:16

\psplot zeichnet nicht den vollständigen Graph

Beitrag von Sgamper »

Hallo Zusammen
Bin neu hier und kenn mich noch nicht so aus, seid also bitte Nachsichtig.

Folgendes Problem: ich wollte eine etwas kompliziertere Funktion plotten und psplot zeichnet mir den Graph nicht vollständig. Bei mir bricht der plot bei etwa x=65 ab, obwohl ich ihn bis x=103 zu zeichnen wünsche.
Auch wenn ich nur von x=50 bis x=100 zeichnen will bricht er bei x=65 ab.
Weiss jemand Rat?
\documentclass{article}

\usepackage{pst-plot}

\begin{document}
%\pagestyle{empty}
        \begin{center}
        \psset{xunit=0.05,yunit=0.01}
        \begin{pspicture}[showgrid=false](0,-50)(110,600)
          \psaxes[Dx=10,Dy=50]{->}(0,0)(110,600)[$t$,80][$f$,0]
          \psplot[algebraic=true,plotpoints=10000]{0}{103}{500*2.718281828^(1.2*x)/(0.9*2.718281828^(1.2*x)+5)-x^3/2000}
        \end{pspicture}
        \end{center}


\end{document}

feuersaenger
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 91
Registriert: Mi 5. Okt 2011, 18:24
Wohnort: Rheinbach

Beitrag von feuersaenger »

Hi,

Deine Exponentialfunktion e^(1.2*x) wird riesig gross - vermutlich mehr als \psplot verkraft. Fuer 64 ist das von der Groessenordnung 10^33 . Siehst Du irgendwelche warnings in den log files?

Da Du e^(1.2*x) / (e^1.2 * x +5 ) rechnest koennt man ueberlegen, ab einem speziellen Wert von x einfach "1" anzunehmen und das produkt wegzulassen. Vielleicht geht es dann? Wenn pstricks einen Operator der Art " (x > 30 ? 1 : e^(1.2*x) / (e^1.2*x +5) )" hat, waere das eine option.

Mit liebem Gruss

Christian

Sgamper
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Do 1. Mai 2014, 11:16

Beitrag von Sgamper »

Hallo Christian

Danke für deie Gedanken. Ich denke da hast du recht. Ich werde mich versuchen schlau zu machen mit welchen Zahlen \psplot umgehen kann. Ich könnte mir vorstellen, dass intern mit float-Variablen gerechnet wird und diese grossen Zahlen nicht mehr korrekt verarbeitet werden können.

Ich hab nun folgenden Workaround gemacht, der auch ganz gut funktioniert.
          
\psplot[algebraic=true,plotpoints=10000]{0}{60}{500*2.718281828^(1.2*x)/(0.9*2.718281828^(1.2*x)+5)-x^3/2000}
\psplot[algebraic=true,plotpoints=10000]{60}{103.5}{500/0.9-x^3/2000}

Antworten