Bifurcation Diagramme und Gnuplot

22.12.2018

Ich beschäftige mich ja gerade wieder mehr mit Chaostheorie und nichtlinearen Differentialgleichungssystemen. Viele der Visualisierungen, die man hierzu auf dieser Seite finden kann, wurden mit Java3D oder Gnuplot erstellt. Für die Untersuchung von Bifurcation Diagrammen wollte ich etwas neues versuchen.

Die Darstellungen, die ich aus diversen Anwendungen heraus mittels Gnuplot erstellt habe, mussten bisher einen Umweg nehmen: die Anwendung schrieb ein Datenfile, das dann mittels Gnuplot zur Visualisierung weiterverarbeitet wurde. Das erschien mir als etwas zu mühselig - ich wollte die Graphik direkt aus Java heraus erzeugen.

Das hätte den Vorteil gehabt, dass ich ohne Neustart des Kommandos die berechnung mit geänderten Parametern aus der GUI heraus hätte neu starten könenn. Mein Mittel der Wahl, wenn es um kompexe Visualisierungen in Java-Anwendungen geht war bisher immer JFreeChart. Leider habe ich keine Möglichkeit gefunden, diese Komponente zur Visualisierung einer nicht- eindeutigen Abbildung zu benutzen: Bei Bifurcation Diagrammen gehören immer mehrere Y-Werte zu einem X-Wert.

Daher habe ich - bereits auf dem Schwenk zurück zum bewährten Vorgehen mit Gnuplot - überlegt, ob es nicht eine Java-Integration dafür gäbe. Eine kurze Suche ergab, dass es tatsächlich mehrere davon gibt: Ich benutzte JavaPlot und war extrem überrascht: Es bildet zwar vielleicht nicht alle Feinheiten von Gnuplot ab, aber es ist extrem vieles möglich. Die Integration ist denkbar einfach und die Visualisierungen sind auf dem gewohnten Gnuplot-Level.

Das erste Projekt war denn auch die Umsetzung einer GUI zur Analyse von Bifurcation Diagrammen (siehe Screenshot unten) - eventuell wird noch ein Plugin für die sQLshell damit folgen...

Artikel, die hierher verlinken

Bifurkationen im Lorenz-System

10.05.2020

Nachdem ich hier schon einmal kurz über Bifurkationen und Lyapunov-Exponenten berichtet habe, habe ich den Code dafür aufgeräumt und flexibilisiert - nun kann ich diese Werkzeuge auf beliebige Systeme anwenden: Das erste Beispiel war ja das Roessler-System, jetzt habe ich sie auf das Lorenz-System angewendet.

Gnuplot-Wrapper-Plugins

17.03.2019

Wie bereits in einem früheren Artikel angekündigt habe ich nunmehr zwei Plugins für die sQLshell fertiggestellt, die die Fähigkeiten von Gnuplot zur Visualisierung von numerischen Angaben gestatten

Vorhaben 2019

09.02.2019

Obwohl ich ja finde, dass der erste Januar jetzt nicht so ein spezieller Tag ist, schreibe ich mir doch um diesen Tag rum immer mal wieder ein "Listche", auf dem ich mir Vorhaben notiere, die ich mit mittlerem zeitlichen Horizont anzugehen gedenke.

Lyapunov-Koeffizienten

13.01.2019

Nachdem ich nun bereits Bifurcation Diagramme mittels Gnuplot visualisiert hatte, wollte ich auch Lyapunov Exponenten berechnen und darstellen...

Alle Artikel rss Wochenübersicht Monatsübersicht Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Fährnisse des Buildprozesses unter Windows

    17.07.2019

    Nachdem ich begonnen hatte, mich mit der Beschleunigung der Berechnung des Mandelbrot-Fraktals unter Zuhilfenahme der Shadereinheiten in Graphikkarten zu beschäftigen und erste Erfolge feiern konnte, wollte ich das mal auf einer richtigen Graphikkarte ausprobieren...

    Weiterlesen...

Neueste Artikel

  • Datenvalidierung UTF8 mit BiDi-Steuerzeichen (TrojanSource 2.0)

    Ich bin heute nochmal inspiriert worden, weiter über die Trojan Source Vulnerability nachzudenken. Meiner Meinung nach bestehen hier noch Probleme - speziell bei Nutzereingaben oder Daten, die über externe Schnittstellen ampfangen werden.

    Weiterlesen...
  • OpenStreetMap Navi als Docker-Container

    Ich habe die auf OpenStreetMap basierende OpenSource Navigationslösung Graphhopper in einen Docker-Container gepackt und als neuestes Mitglied in meinem Docker-Zoo willkommen geheißen.

    Weiterlesen...
  • SQL-Aggregatfunktionen in SQLite als BeanShell-Scripts

    Ich habe neulich über eine Möglichkeit berichtet, SQLite mittels der sQLshell und Beanshell-Skripten um SQL-Funktionen zu erweitern. In diesem Artikel versprach ich auch, über eine solche Möglichkeit für Aggregatfunktionen zu berichten.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.