Differentialgeleichung numerisch lösen

Hallo,

ich bin auf der Suche nach einem kostenlosen Programm, mit dem ich DGLs numerisch lösen kann. Matlab ist mir leider zu teuer.
Mir reicht auch eine Library, die mir nur die Solver zur Verügung stellt und die ich dann in mein eigenes Programm (Java oder C) einbauen kann.
Da es sich um steife DGLs handelt, komme ich leider mit einem Euler oder Runge-Kutta Verfahren nicht an mein Ziel.

Hat jemand eine Idee für mich?

Google Runge-Kutta
.

Hallo,

ich bin auf der Suche nach einem kostenlosen Programm, mit dem
ich DGLs numerisch lösen kann. Matlab ist mir leider zu teuer.

Warum das teure Matlab nehmen, wenn es das freie SciLab gibt :smile:

Dort sind sehr schöne adaptive Verfahren implementiert, die auch mit steifen Systemen wunderbar klar kommen:

http://www.scilab.org/

Wenn Du Matlab kennst, dann wirst Du mit Scilab keine Probleme haben.

Gruß

Fritze

Hallo!

Also wenn es ein System gewöhnlicher DGL’s ist, empfehle ich dir die sauschnellen Runge-Kutta-Verfahren mit Fehlberg-Fehlerabschätzung, die du dir sehr schnell selber schreiben kannst.

www.gluege.privat.t-online.de/rkf.f

Den Code hab ich schon oft benutzt. Leider in Fortran, kann aber leicht umgeschrieben werden.

Wenn die DGL’s „steif“ sind, also irgendwelche Prozesse mit extrem unterschiedlichen Zeitrahmen zusammenspielen (Reaktionskinetik oder sowas), brauchst du implizite Verfahren, die numerisch sehr teuer sind.

Auf jeden Fall kannst du mal bei
netlib.org
reinschauen, da gibts alles! Das zusammenstricken der Solver mit deinem Programm ist aber meist sehr aufwändig.

Hallo Jan,

wir benutzen für steife, große ODE-Systeme CVode. Ist eine Bibliothek, die im Source vorliegt und unter der Berkeley-Lizenz freigegeben ist. Für private wie berufliche Anwendungen (wie in meinem Fall) hervorragend.

Wenn’s um Verbrennung geht, kann ich dir auch einen neuen Solver-Ansatz von Markus Kraft in Cambridge empfehlen. Extrem steife, große Systeme sind da sein Spielplatz.

Wenn du weitere Fragen hast, immer her damit!

Chris

Hallo,

Also wenn es ein System gewöhnlicher DGL’s ist, empfehle ich
dir die sauschnellen Runge-Kutta-Verfahren mit
Fehlberg-Fehlerabschätzung, die du dir sehr schnell selber
schreiben kannst.

Runge-Kutta ist aber für steife Systeme ungeeignet.

Wenn die DGL’s „steif“ sind, also irgendwelche Prozesse mit
extrem unterschiedlichen Zeitrahmen zusammenspielen
(Reaktionskinetik oder sowas), brauchst du implizite
Verfahren, die numerisch sehr teuer sind.

Ebend :smile:

Auf jeden Fall kannst du mal bei
netlib.org
reinschauen, da gibts alles! Das zusammenstricken der Solver
mit deinem Programm ist aber meist sehr aufwändig.

Es gibt natürlich auch noch die NAG, das sind die Bibliotheken aber nicht nur numerisch teuer :smile:

http://www.nag.co.uk/

Gruß

Fritze

Hallo Fritze,

danke für den Link. Ich wusste nicht, dass es soetwas auch kostenlos gibt. Habe mir das Programm heruntergeladen und werde jetzt mal testen.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Chris,

CVode ist eine C-Bibliothek. Meine Java Kenntnisse sind deutlich besser als meine C-Kenntnisse. Wenn ich nichts anderes finde, werde ich mich wohl wieder mit C zurecht finden müssen.

Es geht in meinem Fall um die Lösung des Stick-Slip-Problems, bei dem ein Übergang zwischen Haft- und Gleitreibung stattfindet.
Hast du Erfahrung damit?

Jan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Octave
Hallo

Octave ist der GNU Klon von Matlab.

http://www.octave.org/

Gruss
Michi

Hi Michi,
ich hab Octave in einer fruehen Version mal ausprobiert und es war voller Bugs. Kann man da mittlerweile mit arbeiten?
Gruesse,
-thowe-

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]