zwei funktionen in einer kurve darstellen mit gnuplot

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
fragenfrager
Beiträge: 658
Registriert: 31.12.2003 08:47:15

zwei funktionen in einer kurve darstellen mit gnuplot

Beitrag von fragenfrager » 22.09.2004 22:40:04

hi ihr,

wie kann ich mit gnuplot eine Kurve zeichnen die aus zwei Funktionen besteht? Also z.B. eine Gerade mit y=5x im Intervall von 0 <= x <= 5 und dann y=5 im Intervall x > 5 ?

Ich weiß net ob ich das Darstellungsproblem mit gnuplot (Einschränken des Intervalls) oder mit mathematischen Mitteln lösen kann (Verknüpfung von Funktionen oder sowas?)

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 22.09.2004 22:58:33

Code: Alles auswählen

plot [0:10]   x<5 ? 5*x : 25

Benutzeravatar
fragenfrager
Beiträge: 658
Registriert: 31.12.2003 08:47:15

Beitrag von fragenfrager » 23.09.2004 00:30:23

das ist schonmal sehr gut

Allerdings hab ich mich mal wieder falsch ausgedrückt bzw. ein blödes beispiel genannt.

soweit ich das verstehe ist das Ternary gell. Jetzt frag ich mich aber wie ich ne Kurve bauen kann die z.B. aus fünf Funktionen besteht?

Zum Beispiel eine Gerade y=0 von x>0 bis x<=3, dann eine Gerade mit y=1/2x von x>3 bis x<=5, dann y=2,5 von x>5 bis x<=7, dann eine mit y=-x von x>7 bis x<=9,5 und schließlich von x>9,5 bis oo eine mit y=0.
achja und an der stelle x=3 sollte keine Lücke sein

wendy
Beiträge: 2
Registriert: 26.06.2004 08:50:40

Beitrag von wendy » 26.09.2004 14:59:24

gnuplot> set multiplot
multiplot> plot [0:5] 5x
multiplot> plot [0:5][0:25] 5

so geht es. oder auch so:
gnuplot> plot [0:5] 5*x, 5

Benutzeravatar
fragenfrager
Beiträge: 658
Registriert: 31.12.2003 08:47:15

Beitrag von fragenfrager » 26.09.2004 16:58:29

Vielen Dank auch dir für deine Mühe aber das ist nicht was ich suche (oder ich habs net verstanden *g*)

Hab natürlich weitergesucht und mir jetzt auch mal die all.dem in demo angeschaut konnte jedoch keine einzige zusammengesetzte Funktion sehen.

Die Frage die sich im laufe des Threads wandelt und sich mir jetzt stellt ist wie ich die Darstellung von Funktionen auf bestimmte Bereiche einschränken lässt.
Mit

Code: Alles auswählen

plot x, 2*x
kann ich ja zwei Funktionen gleichzeitig darstellen. Ziel ist aber z.B. die erste Funktion für alle negativen x und die zweite für alle positiven x darzustellen. Der gesamte Bereich sollte dann z.B. von -10 bis 10 gehen.

kaofu
Beiträge: 1
Registriert: 10.03.2006 01:05:58

Beitrag von kaofu » 10.03.2006 01:11:30

myabs(x) = (x > 0) ? x : -x
plot myabs(x)

fuer mehrere Intervalle einfach die if-statements verschachteln:

mypiecewise(x) = (x > 2) ? 2 : ((x < -2) ? -2 : x)
plot mypiecewise(x)

siehe auch http://www.cs.uni.edu/Help/gnuplot/deffunc.html

Antworten