AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Lösung von Gleichungen
Thema durchsuchen
Ansicht
Themen-Optionen

Lösung von Gleichungen

Ein Thema von Dipl Phys Ernst Winter · begonnen am 6. Jun 2009 · letzter Beitrag vom 6. Jun 2009
Antwort Antwort
Dipl Phys Ernst Winter
Registriert seit: 14. Apr 2009
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
Angehängte Dateien
Dateityp: zip fxnull_190.zip (142,9 KB, 41x aufgerufen)
Dateityp: zip demogleichungen_830.zip (227,4 KB, 44x aufgerufen)
Autor: DP Ernst Winter
 
R2009

 
Delphi 2007 Professional
 
#2
  Alt 6. Jun 2009, 14:00
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
Rainer Unger
  Mit Zitat antworten Zitat
mkinzler

 
Delphi 11 Alexandria
 
#3
  Alt 6. Jun 2009, 14:07
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
Markus Kinzler
  Mit Zitat antworten Zitat
6. Jun 2009, 14:07
Dieses Thema wurde von "mkinzler" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Freeware" verschoben.
Fertiges Programm
6. Jun 2009, 14:21
Dieses Thema wurde von "mkinzler" von "Freeware" nach "Open-Source" verschoben.
Source wurde nachgereicht
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 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