Verwendung mathematischer Funktionen, die nicht in gnuplot integriert sind

824
Tom-Tom

Ich habe immer gnuplotals sehr nützlich angesehen, und noch mehr, seit ich tikzin L A T E X Dokumenten verwende. Leider ist die Anzahl der im Kern implementierten Funktionen gnuplotrecht klein, ich benötige oft spezielle Funktionen wie modifizierte Bessel-Funktionen K ν und I ν . Diese Funktionen können nicht mit den vorhandenen Funktionen geschrieben werden, die in gnuplot verfügbar sind. Gibt es eine Möglichkeit, Gnuplot und gslBibliotheken zu binden ? Ich habe gnuplotting.org und andere Websites durchsucht, die sich ausschließlich mit dem gnuplotThema beschäftigen. Ich habe zu diesem Problem kein Wort gefunden. Wenn jemand eine Ahnung hat, würde ich es schätzen.

3

1 Antwort auf die Frage

2
Joce

Wenn Sie einen Befehl schreiben können, der die benötigte Funktion berechnen kann, sind Sie fertig:

gnuplot> f(x) = real(system(sprintf("echo %f", x))) gnuplot> plot f(x) 

(siehe help system)

So können Sie zB Oktave verwenden, um Ihren Wert zu berechnen. Wenn Ihr System beispielsweise Linux ist, können Sie direkt Folgendes haben:

gnuplot> bJ(a,x) = real(system(sprintf("echo 'besselj(%f,%f)' | octave | grep ^ans | cut -f 2 -d =", a,x))) gnuplot> plot [0:20] bJ(1,x) 

Es wird jedoch einige Zeit dauern, um zu laufen! Stellen Sie den sampleWert auf einen niedrigen Wert, bis Sie jedes Detail Ihrer Zeichnung festgelegt haben. Wenn Sie viele Male replotieren müssen, können Sie Ihre Funktion auch tabellieren, indem Sie zuerst set term tabledie tabellierten Werte verwenden und dann darstellen.

Danke vielmals. Ich habe nicht an "System" gedacht. Für Funktionen, die ich häufig verwendete, lohnt es sich, eine kleine binäre Schnittstelle zu erstellen, die eine Mathematikbibliothek wie die GSL verbindet, um die mehrfachen Umwandlungen in der Pipe-Kette zu vermeiden, die Sie vorschlagen. Tom-Tom vor 9 Jahren 0
Sicher, aber in diesem Fall lohnt es sich vielleicht, eine Binärdatei zu haben, die die Funktion tabellarisch darstellt, anstatt einen einzelnen Wert zurückzugeben. In diesem Fall zeichnen Sie am Ende eine Datendatei mit Modifikatoren statt einer Analysefunktion mit punktweisen Systemanforderungen. Joce vor 9 Jahren 0