Interpolation mit PB?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Interpolation mit PB?

Beitrag von Scarabol »

Hi Leute,

wo bitte gibt es Beispiele zum Interpolieren mit PB?

Das Ergebnis sollte dann so aussehen:
http://upload.wikimedia.org/wikipedia/d ... lation.png

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Nirgendwo.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Ich habe mich mal hingesetzt und ein programm geschrieben, und das hier war das (interessante) ergebnis:

(Bild veraltet)

es ist allerdings nicht so weit entwickelt das du zu einem beliebigen Punkt x ein y bekommst, aber vllt bekomme ich das noch hin...

EDIT: Obwohl ich bezweifle das es überhaupt möglich ist eine "echte" Funktion daraus zu berechnen, denn um so mehr Hoch und Tiefpunkte es gibt, um so höher ist auch der Grad der funktion und damit ist sehr schnell eine berechnungsgenze erreicht.
Zuletzt geändert von STARGÅTE am 27.08.2010 00:59, insgesamt 1-mal geändert.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

@Zahpod
Du meins wohl keine dir bekannten, oder kennst du alle Quellcodes die es in PB gibt :o . Dann sollten wir hier schnellstens unsere PCs nach Spybots durchsuchen...

@Stargate
1.Wieso bekomm ich kein y? Brauch doch nur den Wert ablesen?
2.Wieso sollte es keine Funktion geben? (siehe Wikipedia)
3.Berechnungsgrenze? Du meinst die Zeit der Berechnung nimmt drastisch zu?

Vielleicht solltest du die Interpolation mehrmals durchführen lassen, dann sollte der Graph einige Auswüchse verlieren...

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Ich kann zwar keinen Code liefern, aber bei Spline-Interpolation nimmt die
Berechnungszeit linear mit der Anzahl der Punkten zu. Weniger geht nicht.

Im BlitzBasic-Forum sollte es einige Codes dazu geben. Wenn ich mich an
meine BlitzBasic-Zeit zurückerinnere, gab es da schon in den frühen Zeiten
Spline-Codes.
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Obwohl ich bezweifle das es überhaupt möglich ist eine "echte" Funktion daraus zu berechnen...
Du kannst ohne Probleme z.B. genau das eine Polynom n-1-sten Grades bestimmen, welches durch die n Punkte festgelegt ist, genau durch jeden hindurchgeht und alle wunderbaren Eigenschaften einer normalen Polynomfunktion hat. Allerdings werden dabei auch die Ausreißer bei zunehmendem Grad immer extremer.
...denn um so mehr Hoch und Tiefpunkte es gibt, um so höher ist auch der Grad der funktion...
Ich denke mal, du willst kubische Splines nutzen ? Dann müsste auf jedem Teilintervall zwischen zwei benachbarten Punkten deine Kurve einem Polynom dritten Grades entsprechen, egal wieviele Punkte du nutzt. Damit kann es auch nicht diesen zickrigen Verlauf wie auf dem Bild geben.
Zur Zeit versuchst du anscheinend einen Spline aus C^n, also mit Polynomen n+1-sten Grades auf den Teilintervallen zu finden, oder ähnliches?
!UD2
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

das was da auf meinem Bild war, war ein näherungsverfahren, deswegen hätte man auch keine Punkte berechnen können, weil ich einfach nur die Punkte verdichtet habe, aber nie die lücken geschlossen habe.

Ich wollte mich einfach mal ins Thema reinarbeiten, mal sehen wie ich die WIKI-Formeln umsetzten kann

*zu tun hat*^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Scarabol
Beiträge: 1427
Registriert: 30.11.2005 21:00

Beitrag von Scarabol »

Welche Wiki Formel bzw. welchen Artikel meinst du denn?

Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea

PB-V: 4
WinXP
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Froggerprogger hat geschrieben:Du kannst ohne Probleme z.B. genau das eine Polynom n-1-sten Grades bestimmen, welches durch die n Punkte festgelegt ist, genau durch jeden hindurchgeht und alle wunderbaren Eigenschaften einer normalen Polynomfunktion hat. Allerdings werden dabei auch die Ausreißer bei zunehmendem Grad immer extremer.
ich meine, eines der Kernprobleme dabei ist ja auch die tatsächliche Genauigkeit der vorliegenden Meßwerte.
wenn ich ganz präzise an den Meßwerten klebe, bekomme ich auch mal die falsche Funktion, evtl. soger ein, zwei grade höher, als sie wirklich wäre.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten