Wie die Approximationssuche funktioniert
Prolog
Dieser Artikel soll ein umfassendes Verständnis davon vermitteln das Innenleben einer Approximationssuchklasse, die darauf ausgelegt ist, Werte und Parameter im realen Bereich für Aufgaben wie Polynomanpassung und -gleichung zu approximieren Lösen.
Frage
Wie können wir Werte oder Parameter im reellen Bereich (unter Verwendung von Gleitkommazahlen mit doppelter Genauigkeit) für Aufgaben wie das Anpassen von Polynomen oder das Finden von Parametern annähern? in parametrischen Funktionen oder das Lösen (schwieriger) Gleichungen (wie z Transzendentale)?
Einschränkungen
Näherungssuche
Näherungssuche ist analog zur binären Suche, beseitigt jedoch die Einschränkung, die darin besteht Die gesuchte Funktion, der gesuchte Wert oder der gesuchte Parameter muss eine streng monotone Funktion sein. Trotz dieser Entspannung behält es die gleiche O(log(n))-Komplexität bei.
Algorithmus
Betrachten Sie das folgende Problem:
Gegeben eine bekannte Funktion y = f(x) und einem gewünschten Punkt y0 wollen wir x0 finden, so dass y0 = f(x0).
Bekannte Informationen
Unbekannt:
Algorithmus Schritte:
Probepunkte x(i) =
Berechnen Sie für jedes x(i) den Abstand/Fehler ee zwischen y = f(x(i)) und y0.
Genauigkeit rekursiv erhöhen.
Suchbereich auf die Umgebung der gefundenen Lösung beschränken:
Erhöhen Sie die Suchgenauigkeit, indem Sie den Suchschritt verringern:
Implementierung in C
Der bereitgestellte C-Code demonstriert die Implementierung des Näherungssuchalgorithmus:
#include "approx.h" int main() { // Initialize the approx object with parameters approx aa; aa.init(0.0, 10.0, 0.1, 6, &ee); // Loop until a solution is found for (; !aa.done; aa.step()) { // Retrieve current x x = aa.a; // Compute y y = f(x); // Compute error ee = fabs(y - y0); } }
Das obige ist der detaillierte Inhalt vonWie können wir reale Domänenwerte mithilfe der Näherungssuche effizient annähern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!