PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Stückweise definierte Funktion Plotten



F22
08-06-2006, 14:31
Hi,

(wie) kann ich mit PSTricks eine Stückweise definierte Funktion plotten?

Danke

F22

bischi
08-06-2006, 14:39
Wie weit bist du schon? (Codebeispiel...) Bzw: Woran scheitert es konkret?

MfG Bischi

RedCloud
08-06-2006, 15:51
(wie) kann ich mit PSTricks eine Stückweise definierte Funktion plotten?



IFTE kann das mit pstricks-add -> Doku

rc

F22
08-06-2006, 17:29
Hi,

also das erste Problem war, dass ich keine Funktion wie IFTE gekannt habe (was sich ja nun dank RedCloude verändert hat).

Nun habe ich das mal ausprobiert, verstehe es aber nicht so ganz (und es ist auch leider in der Anleitung nur spärlich erklärt:


\input{header}
\usepackage[ansinew]{inputenc}
\begin{document}
\begin{center}
\psset{unit=2cm}
\begin{pspicture}(0,0)(3,3)
\psaxes[linewidth=1pt]{->}(3.5,3.5)
\psplot[linecolor=blue,algebraic]{-3}{3}{IFTE(x<=-1,x+1,IFTE(x=0,0,IFTE(x=>1,1-x,???)))}
\rput(3.7,0){$x$}
\rput(0,3.7){$y$}
\end{pspicture}
\end{center}
\end{document}


In obigem Codebeispiel habe ich mal versucht, eine einfache Funktion zu plotten (möchte es erst verstehen, bevor ich mich an komplizierteres traue).
Hierbei gibt es 2 Probleme:

1. Versteht er offenbar <= nicht; gibt es hier eine andere Lösung, oder muss ich entsprechende Funktionsstellen seperat definieren?
2. Seht ihr im Code am Ende der Funktion Drei Fragezeichen. Das deutet darauf hin, dass ich den Aufbau der IFTE - Funktion nicht verstanden habe.
Ich dachte mir das so:
{IFTE(Definition1,IFTE(Definition2,IFTE(...,IFTE(D efinition[n]))))}; aber hinter dem, was ich Definition[n] genannt habe, kommt ja noch was, was ich mir nicht erklären kann.

Gruß und vielen Dank

F22

rais
08-06-2006, 19:33
Moin moin,
wenn ich Dich richtig verstanden hab', willst Du etwa


\psplot[..]{-3}{3}{IFTE(x>-1,IFTE(x<1,0,1-x),x+1)}
darstellen.

IFTE(Bedingung,Definition-bei-erfüllter-Bedingung,Definition-sonst)

Und gewöhn' Dir bitte \input{eine-datei-die-wir-nicht-haben-oder-wenn-dann-steht-bestimmt-was-anderes-drin} ab :eek:

edit: code auch als code dargestellt
MfG,

RedCloud
08-06-2006, 21:57
also das erste Problem war, dass ich keine Funktion wie IFTE gekannt habe (was sich ja nun dank RedCloude verändert hat).

Nun habe ich das mal ausprobiert, verstehe es aber nicht so ganz (und es ist auch leider in der Anleitung nur spärlich erklärt:


\input{header}
\usepackage[ansinew]{inputenc}
\begin{document}
\begin{center}
\psset{unit=2cm}
\begin{pspicture}(0,0)(3,3)
\psaxes[linewidth=1pt]{->}(3.5,3.5)
\psplot[linecolor=blue,algebraic]{-3}{3}{IFTE(x<=-1,x+1,IFTE(x=0,0,IFTE(x=>1,1-x,???)))}
\rput(3.7,0){$x$}
\rput(0,3.7){$y$}
\end{pspicture}
\end{center}
\end{document}


In obigem Codebeispiel habe ich mal versucht, eine einfache Funktion zu plotten (möchte es erst verstehen, bevor ich mich an komplizierteres traue).
Hierbei gibt es 2 Probleme:

1. Versteht er offenbar <= nicht; gibt es hier eine andere Lösung, oder muss ich entsprechende Funktionsstellen seperat definieren?
2. Seht ihr im Code am Ende der Funktion Drei Fragezeichen. Das deutet darauf hin, dass ich den Aufbau der IFTE - Funktion nicht verstanden habe.
Ich dachte mir das so:
{IFTE(Definition1,IFTE(Definition2,IFTE(...,IFTE(D efinition[n]))))}; aber hinter dem, was ich Definition[n] genannt habe, kommt ja noch was, was ich mir nicht erklären kann.


das ist schon korrekt, wie du dir das gedacht hast, nur musst du von links anfangen und dann beispielsweise x<0 ... x<1 ... x<2 ... oder auch mit gleich zwischendurchö



\documentclass[a4paper,12pt]{scrreprt}
\usepackage{pstricks-add}

\begin{document}

\begin{center}
\psset{unit=2cm}
\begin{pspicture}(-4,-4)(4,4)
\psaxes[linewidth=1pt]{->}(0,0)(-3.5,-3.5)(3.5,3.5)
\uput[0](3.5,0){$x$}
\uput[90](0,3.5){$y$}
\psplot[linecolor=blue,algebraic,plotpoints=601,linewidth= 2pt]{-3}{3}%
{IFTE(x<0,x+1,IFTE(x<1,0,IFTE(x<3,1-x,0)))}
\end{pspicture}
\end{center}

\end{document}


rc

F22
08-06-2006, 22:56
Hi,

danke, habs jetzt kapiert :-)

Gruß

F22

rais
09-06-2006, 10:07
das ist schon korrekt, wie du dir das gedacht hast, nur musst du von links anfangen und dann beispielsweise x<0 ... x<1 ... x<2 ... oder auch mit gleich zwischendurchö

Warum? IFTE verzweigt doch sowieso entsprechend seiner Bedingung.
Aber von links nach rechts ist für einen selbst natürlich übersichtlicher :)
MfG,