Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Lösung von Gleichungen (https://www.delphipraxis.net/135201-loesung-von-gleichungen.html)

Dipl Phys Ernst Winter 6. Jun 2009 13:20


Lösung von Gleichungen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Berechnung von Nullstellen einer Funktion
Gleichungen der Form f(x) = 0 lassen sich nur für ganz wenige Typen von Funktionen in geschlossener Form lösen: Polynome 1 bis 3.ten Grades und Funktionen, die sich auf solche zurückführen lassen. Die Lösungsformeln für Gleichungen 3. Grades sind jedoch so unhandlich, dass sie praktisch nicht verwendet werden, sondern wie alle anderen Gleichungen durch numerische Iterations- oder Nährungsverfahren gelöst werden.
Beachte: Nährungsverfahren sind nicht weniger Exakt als geschlossene Lösungen! Die Berechnung irrationaler und periodischer Dezimalzahlen einer geschlossenen Lösung müssen wir auch bei einer vorgegebenen Genauigkeit abbrechen.

Iterationsverfahren erfordern speziell für jede Gleichung f(x) = 0 die Umwandlung in eine Iterationsform x = g(x) mit guter Konvergenz.

Nährungsverfahren sind hingen sehr Universal und stellen an f(x) nur minimale Forderungen:
Die Funktion y = f(x) sei in einem abgeschlossenen Intervall [x1, x2] stetig. Dann liegt, wenn y1 und y2 verschiedene Vorzeichen haben, in [x1, x2] (mindestens) eine Nullstelle.
Beachten Sie: Dieser Ansatz geht über f(x) als Ausdruck einer Formel hinaus. F(x) kann auch Ergebnis einer Berechnung oder eines mechanischen Vorganges sein. Als Beispiele seien genannt:
- Die Berechnung eines komafreien optischen Zweispiegelsystems, f(x) = Koma(Ablenkwinkel) ergibt sich hier aus der Berechnung von Haupt- und Bündelbegrenzungsstrahlen.
- Die Justierung eines Gerätes, die sukzessiv einzujustierende Größe hängt von einem (messbaren!) Justierparameter ab. Hier wird f(x) nach jedem Justierschritt gemessen. Das Nährungsverfahren gibt den Justierparameter für den nächsten Justierschritt.

Nährungsverfahren verwenden im Intervall [x1, x2] eine Ersatzfunktion zur Berechnung der nächsten Nährung in geschlossener Form, anschließend wird das Intervall reduziert.

Lineare Interpolationsverfahren verwenden als Ersatzfunktion eine Gerade, im einfachsten Fall die Sekante durch die Endpunkte des Intervalls, die das Intervall stets in zwei Teile trennt. Die nächste Nährung wird mit dem Teilintervall, in dem das Vorzeichen wechselt, berechnet. Abbruch, wenn f(x) hinreichend klein ist.

Quadratische Interpolation mit FxNull: Nach dem ersten linearen Nährungsschritt haben wir 3 Punkte P1, P3 und P2 von f(x) im Intervall [x1, x2] berechnet und können für die nächste Nährung als Ersatzfunktion eine Parabel durch diese verwenden. Sie ergibt einen weiteren Punkt P in[x1, x2].
P und P3 teilen [x1, x2] in 3 Teilintervalle. Für den nächsten Nährungsschritt ist ein äußeres Teilintervall, das die Nullstelle nicht enthält, zu streichen. Der Vergleich der Vorzeichen von y und y3 entscheidet, ob die Nullstelle im mittleren Teilintervall liegt. Ist Sgn(y)=Sgn(y3)
true so liegt die Nullstelle nicht im mittlerem Intervall, es ist das äußere Intervall, das die Nullstelle nicht enthält, zu streichen. Wenn x<x3 ist, liegt die Nullstelle im linken Intervall, da sie zu x benachbart ist.
false so liegt die Nullstelle im mittlerem Intervall, von den äußeren Intervallen wird das größere gestrichen.

AnwMath\Gleichungen\Demo
Unter Verwendung der Unit Formel, die einen Interpreter zur Berechnung von Werten nach als String gegebener Formel bereitstellt, kann die Berechnung von Nullstellen einer explizit gegebenen Funktion f(x) durch Nährungsverfahren programmiert werden.
Von der gesetzten Funktion kann ein Nullstellen-Intervall gesucht und die Nullstelle nach folgenden Nährungsverfahren berechnet werden.
• Bisektion
• Bilinear
• Regula falsi 1
• Regula falsi 2
• Quadratisch
• Newton (nur für Polynome)
Die Verfahren sind in der Online-Hilfe beschrieben

Funktionen werden durch eine Formel und die darin enthaltenen Parameter definiert. Die Berechnung der Funktionswerte erfolgt mit dem Formelinterpreter der Unit Formel.
Polynome werden durch Rang und Koeffizienten definiert, damit können nach dem Horner-Schema Funktionswerte und die Werte der 1. Ableitung für das Newton-Verfahren berechnet werden.

unit Formel in die Attachments eingefügt

R2009 6. Jun 2009 14:00

Re: Lösung von Gleichungen
 
Hi Ernst,

warum hängst du Code an deinen Beitrag wenn du das wichtigste weglässt?
Oder hast du die unit formel einfach nur vergessen?
Ansonsten würde es voll und ganz genügen wenn du die exe anhängst, dann weiss
ich was ich zu erwarten hab und kann mir den download sparen.

Viele Grüsse

mkinzler 6. Jun 2009 14:07

Re: Lösung von Gleichungen
 
Da es sicgh um fertige Programme handelt ist dies hier der falsche Ort. Ich verschiebe den Beitrag mal nach Freeware, da ja die wichtigste Unit fehlt. Lieferst du diese nach, werden wir den Thread dann nach openSource verschieben

DP-Maintenance 6. Jun 2009 14:07

DP-Maintenance
 
Dieses Thema wurde von "mkinzler" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Freeware" verschoben.
Fertiges Programm

DP-Maintenance 6. Jun 2009 14:21

DP-Maintenance
 
Dieses Thema wurde von "mkinzler" von "Freeware" nach "Open-Source" verschoben.
Source wurde nachgereicht


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz