Annäherung von Daten an ein Polynom eines gegebenen Grades

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

Antworten
Benutzeravatar
Eugeny Lutsenko
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Fr, 15. Mai 2020 16:16
Wohnort: Russland, der südliche Föderale Bezirk, die Stadt Krasnodar
Hat sich bedankt: 12 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Annäherung von Daten an ein Polynom eines gegebenen Grades

Beitrag von Eugeny Lutsenko »

Hat jemand eine Funktion, ein array von Daten durch ein Polynom eines gegebenen Grades zu approximieren?
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: Annäherung von Daten an ein Polynom eines gegebenen Grades

Beitrag von HaPe »

Hallo Eugeny !
Hat jemand eine Funktion, ein array von Daten durch ein Polynom eines gegebenen Grades zu approximieren?
So wie es Excel mit der Funktion Trendlinie -> Trendlinienoptionen -> Polynomisch auch macht?

Bild
Dateianhänge
Polynom.jpg
Polynom.jpg (206.14 KiB) 7253 mal betrachtet
--
Hans-Peter
Benutzeravatar
Eugeny Lutsenko
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Fr, 15. Mai 2020 16:16
Wohnort: Russland, der südliche Föderale Bezirk, die Stadt Krasnodar
Hat sich bedankt: 12 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Annäherung von Daten an ein Polynom eines gegebenen Grades

Beitrag von Eugeny Lutsenko »

Ja, genau so. Aber ich brauche überhaupt keinen Dialog. Es genügt, der Funktion ein eindimensionales array von Quelldaten zu übergeben und ein eindimensionales array von polynomkoeffizienten zurückzugeben. Und als Parameter den Grad des Polynoms angeben
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: Annäherung von Daten an ein Polynom eines gegebenen Grades

Beitrag von HaPe »

Hallo Eugeny !
Aber ich brauche überhaupt keinen Dialog.
Vielleicht geht das mit dem Programm DataFit: http://www.oakdaleengr.com/
Ein Kollege verwendet dieses Programm zur Erstellung von Polynom-Funktion anhand von Thermoelement-Kalibierkurven.

Hier steht etwas dazu:
http://www.oakdaleengr.com/datafit.htm
Non-graphical execution – DataFit can also be run non-graphically from other programs. Simply create a configuration template (either on your own or through the interface), save it, and call DataFit from your program. You can choose handshaking options, such as DDE (Dynamic Data Exchange), progress indicators, and message box displays. Macros support parameterization, which allow you to quickly batch process hundreds of datasets in a single run.
--
Hans-Peter
Benutzeravatar
mikehoffmann
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 133
Registriert: Mo, 21. Sep 2015 16:22
Hat sich bedankt: 1 Mal
Danksagung erhalten: 18 Mal

Re: Annäherung von Daten an ein Polynom eines gegebenen Grades

Beitrag von mikehoffmann »

Hallo Eugeny:

Code: Alles auswählen

FUNCTION Main

   LOCAL n
   SET ALTE TO zing.txt
   SET ALTE ON

   FOR n := 0 TO 5 Step 0.1
      QOut(n,InterPolate({{0,2}, {1,3}, {2,12}, {5,147}},n))
   NEXT n
   Inkey(0)

RETURN NIL



FUNCTION Interpolate(xyPairs,x)

   LOCAL n := Len(xyPairs)
   LOCAL result := 0
   LOCAL term
   LOCAL i,j

   FOR i := 1 TO n

       term := xyPairs[i][2]

       FOR j := 1 TO n

           IF (i # j)
              term := term*(x-xyPairs[j][1])/(xyPairs[i][1]-xyPairs[j][1])
           ENDIF

       NEXT j

       result += term

    NEXT i

RETURN result
Benutzeravatar
Eugeny Lutsenko
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Fr, 15. Mai 2020 16:16
Wohnort: Russland, der südliche Föderale Bezirk, die Stadt Krasnodar
Hat sich bedankt: 12 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Annäherung von Daten an ein Polynom eines gegebenen Grades

Beitrag von Eugeny Lutsenko »

Hallo HaPe und mikehoffmann!

Ihre Informationen sind sehr interessant und nützlich. ich werde jetzt versuchen, es zu benutzen. Danke!
mikehoffmann! Kann die QOut-Funktion nicht anzeigen...
Benutzeravatar
mikehoffmann
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 133
Registriert: Mo, 21. Sep 2015 16:22
Hat sich bedankt: 1 Mal
Danksagung erhalten: 18 Mal

Re: Annäherung von Daten an ein Polynom eines gegebenen Grades

Beitrag von mikehoffmann »

Hello Eugeny,
sorry for QOut. You can also write "? n,InterPolate({{0,2}, {1,3}, {2,12}, {5,147}},n)".
Best regards
Michael
Benutzeravatar
Eugeny Lutsenko
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Fr, 15. Mai 2020 16:16
Wohnort: Russland, der südliche Föderale Bezirk, die Stadt Krasnodar
Hat sich bedankt: 12 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Annäherung von Daten an ein Polynom eines gegebenen Grades

Beitrag von Eugeny Lutsenko »

Danke, mikehoffmann!

Ich habe es herausgefunden und versucht, aber etwas hat nicht wirklich funktioniert. Ich werde es noch versuchen. Ich habe alles nachts gemacht, gefoltert...

Vielen Dank! Jetzt hat es geklappt:
Bild
Eine dünne schwarze Linie - gerade Linien, die an Referenzpunkten aufgebaut sind. Die Dicke VIOLETTE Linie ist die Bézier-Kurve. Die rote Linie ist ein Polynom des N-TEN Grades. Alles gibt es hier: http://lc.kubagro.ru/Bezier.zip. Es ist sichtbar, dass sich das Polynom korrekter verhält als die Bézierkurve
Zuletzt geändert von Eugeny Lutsenko am Do, 04. Jun 2020 22:39, insgesamt 1-mal geändert.
Benutzeravatar
mikehoffmann
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 133
Registriert: Mo, 21. Sep 2015 16:22
Hat sich bedankt: 1 Mal
Danksagung erhalten: 18 Mal

Re: Annäherung von Daten an ein Polynom eines gegebenen Grades

Beitrag von mikehoffmann »

Hallo Eugeny,
ich muss Dir danken. Vor fast 40 Jahren habe ich den Algorithmus, der an sich recht einfach ist und gute Ergebnisse liefert, schon mal genutzt. Damals habe ich ihn für eine Kaminquerschnittsberechnung in BASIC genutzt. Leider ist mir der Algorithmus verschütt gegangen. Dank Deiner Nachfrage habe ich intensiver im Internet gesucht und ihn wieder gefunden. Juhuu! Ich werde ihn nun nutzen, um in Flugzeug-Leistungstabellen zu interpolieren. (Druckhöhe, Temperatur, Leistung, Drehzahl, Geschwindigkeit, Verbrauch, Start- und Landestrecken) Diese Interpolation wird dann sogar mehrstufig sein.
Viele Grüße
Michael
Benutzeravatar
Eugeny Lutsenko
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Fr, 15. Mai 2020 16:16
Wohnort: Russland, der südliche Föderale Bezirk, die Stadt Krasnodar
Hat sich bedankt: 12 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Annäherung von Daten an ein Polynom eines gegebenen Grades

Beitrag von Eugeny Lutsenko »

Hi, mikehoffmann!
Ja, ich habe auf den Algorithmus geachtet. Ich mochte ihn. Ähnelt der sequenziellen Normalisierung des Variablen Bereichs [0,1]. Aber mit dem hinzufügen neuer Werte. Ich verstehe nicht wirklich, wie das mit Polynomen des N-TEN Grades zusammenhängt. Mehr wie eine Art originelles Anti-Aliasing. Aber das Ergebnis ist gut und ähnelt der Verwendung von Polynomen. Ich bin froh, dass du diesen Algorithmus zum zweiten mal gefunden hast. Ich werde es auch benutzen. Danke für den Hinweis.
Benutzeravatar
Eugeny Lutsenko
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Fr, 15. Mai 2020 16:16
Wohnort: Russland, der südliche Föderale Bezirk, die Stadt Krasnodar
Hat sich bedankt: 12 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Annäherung von Daten an ein Polynom eines gegebenen Grades

Beitrag von Eugeny Lutsenko »

Antialiasing von vorhersageszenarien mit Polynomen im Eidos-System angewendet:
Bild
Ich mag, wie es gelaufen ist. So habe ich mir das vorgestellt. Also danke. Das wäre immer noch eine funktionierende Funktion für die Berechnung aller Punkte der Bézierkurve, die auf den Referenzpunkten aufgebaut ist... Ich habe algorithmen und solche Funktionen im Internet gesehen, aber Sie sind alle so gemacht, dass Sie in Alaska schwer zu replizieren sind
Antworten