Dr. Luthardt's Chemieseiten 

weiter


Valid HTML 4.01!Achtung Ein direkter Aufruf des Validators ist von https-Seiten aus nicht möglich. Hier muss die zu prüfende Seite händisch auf der Validator-Seite eingeben werden.
Valid CSS!Achtung Ein direkter Aufruf des Validators ist von https-Seiten aus nicht möglich. Hier muss die zu prüfende Seite händisch auf der Validator-Seite eingeben werden.

last modified
18.04.2024

Ihr Browser unterstützt kein CSS. Das für die Darstellung dieser Webseiten intendierte Seitenlayout wird deshalb nicht angewandt / angezeigt. Ist dies nicht Ihre Absicht, so haben Sie wahrscheinlich in Ihrem Browser den Autorenmodus deaktiviert. Dennoch sind diese Seiten les- und navigierbar.
Texte der Infoboxen werden inline ausgegeben.
Bitte erlauben Sie den Autorenmodus oder verwenden Sie einen CSS-fähigen Browser, wenn Sie diese Seiten so anschauen möchten, wie sie vom Autor gestaltet wurden.

Tipps und Tricks

von Michael Luthardtauthor: Michael Luthardt

Gleichungen 3. und 4. Grades lösen

Nicht unbedingt ein Linux-Thema und es geht auch nicht um die Lösung solcher Gleichungen allgemein, hierzu gibt es genügend Literatur und Internetseiten, z. B. die interaktive Mathematik-Site von Arndt Brünner, sondern als Hilfsmittel zur Berechnung von next pH-Werten.

Bei der Lösung von Gleichungen im Zusammenhang mit pH-Berechnungen gibt es das Problem extrem unterschiedlicher Koeffizienten, von 1010 bis 10–40. Dies erfordert eine hohe Rechengenauigkeit1. Tabellenkalkulationen arbeiten auch mit double precision, wären für diesen Zweck aber unbequem handhabbar und versagen hier eventuell durch die next Optimierung ihrer Zahlendarstellung.
Als Alternativen bieten sich Mathematikprogramme an.
In den meisten Linux-Distributionen ist das next GNU Programm bc enthalten, das Berechnungen mit (fast2) beliebiger Genauigkeit gestattet. Andereseits enthält es nur grundlegende Rechenoperationen, so dass man das Lösen von Gleichung(ssystem)en selbst3 programmieren muss. Dieser Weg ist sinnvoll auf Gleichungen 3. und 4. Grades beschränkt.
Mit GNU Octave steht andereseits ein umfangreiches freies Mathematikprogramm zur Verfügung. In den meisten Linux-Distributionen ist es aus den Repositories installierbar. Dabei ist es sinnvoll, sich gleich einen Überblick über die vielen Zusatzpakete zu verschaffen und vor allem die Dokumentation (info, html, pdf) mit zu installieren.

Im folgenden finden Sie bc-Programme zum Lösen von Gleichungen dritten und vierten Grades. Der Vorteil von bc ist, auch bei noch so steifen Koeffizienten durch Erhöhen der Genauigkeit immer zu numerisch exakten Lösungen zu kommen.

Für pH-Berechnungen sind wir natürlich nur an reellen Lösungen interessiert. Weiter kommt uns entgegen, dass es – falls das pH-Problem richtig formuliert wurde – genau eine relle Lösung geben muss, denn zu jeder Konzentration und Zusammensetzung einer Lösung muss genau ein pH-Wert existieren.

Ihr Browser kann das Objekt leider nicht anzeigen!
Hier finden Sie die bc-Programme ph3.bc und ph4.bc, welche die reellen Lösungen für Gleichungen 3. und 4. Grades mit den bei Bronstein/Semendjajew4 gegebenen Verfahren berechnen.

Die Programme sind im Code hinreichend kommentiert. Was man zur Anwendung für pH-Berechnungen selbst tun muss ist, für die Koeffizienten der Funktionen dg() oder vg() die sich aus dem pH-Problem ergebenden Ausdrücke einzusetzen. Beispiele hierfür sind unter next pH-Berechnungen gegeben.

Ihr Browser kann das Objekt leider nicht anzeigen!
ph4.bc enthält den Code von ph3.bc. Damit spart man sich bei Problemen 4. Grades den zusätzlichen Aufruf eines zweiten Programms.

Natürlich lassen sich ph3.bc und ph4.bc auch zur allgemeinen Lösung von Gleichungen 3. und 4. Grades benutzen und eine Erweiterung auf die komplexen Lösungen ist mit dem Originalverfahren4 kein Problem.

Beide Programme sind im Archiv pH-Berechnungen/pH-Calculation auf der Downloadseite enthalten.


           
1 Die meisten Systeme benutzen heute das IEEE floating point Format und Programme für Berechnungen speichern Zahlen als double precision. Das heißt, die verfügbaren Werte liegen im Bereich von etwa 2,2251 · 10−308 bis 1,7977 · 10+308 und die relative Genauigkeit ist ungefähr 2,2204 · 10−16.
2 bc stellt Zahlen intern nicht als double floating nach IEEE sondern als Dezimalzahlen dar und erlaubt maximal 2147483647 Stellen. Natürlich kann man in proprietären Programmen wie Mathematica die Präzision erhöhen, doch sind diese Programme nicht frei. Freie Bibliotheken, die das Rechnen mit multi-precision floating point numbers zur Verfügung stellen, müssten selbst in entsprechende Programme – ein Beispiel ist gcalctool – eingebunden werden.
3 Was ja auch nicht verkehrt ist ;-)
4 Bronstein/Semendjajew: Taschenbuch der Mathematik, Teubner, Leipzig 1969, Seiten 117ff.

3.4.2011/12.02.2024

 nach oben

Änderungen dieser Seite verfolgen:

it's private by ChangeDetection