Polynominterpolation mit M16C

Gast #136825
Lesenswert?

Hallo zusammen,

ich müsste die Koeffitienten für ein Polynom 2. Grades aus endlich
vielen Punkten ermitteln. Kann mir jemand eine Funktion zur ermittlung
für den M16C zur Verfügung stellen ? Keine Ahnung wie die Umsetzung
aussehen könnte.

Vielen Dank im voraus !!

m.f.G

Stefan Laux
Gast #136827
Lesenswert?

Hallo Tex,

nett von Dir dass Du mir helfen möchtest. Was war den Unverständlich ?
Ich versuche einfach noch mal mein Problem zu beschreiben.

Ich möchte über den AD- Wandler Daten einlese, die ich linearesiert
wieder ausgeben muß (Teach In Funktion). Um eine Korrektur vornehmen zu
können, benötige ich eine Funktion die mir aus meinen Messdaten ca. 100
Stützpunkten einen Polynominterpolation berechnet. Die 3 dazugehörenden
Koefftienten für  Polynom 2. Grades sollen dann zur verfügung stehen.

m.f.G

Stefan Laux
Gast #136832
Lesenswert?

Hi

du mußt halt eine Approximation deiner Punktmenge mit einer
Polynomfunktion zweiten Grades realisieren. Das läuft darauf hinaus ein
LGS (in deinem Fall mit 3 unbekannten) zu lösen. Wie du dieses LGS
aufstellst sollte in jeder besseren Formelsammlung zu finden sein. So
aus dem Kopf siehe Anhang.

Das LGS lößt man dann nach dem Gaußschen Algorithmus.

Matthias
Angehängte Dateien:
Gast #136835
Lesenswert?

Geht am einfachsten mit Newton-Differenzenschema; das ganze ist übrigens
eine Interpolation, keine Approximation.

geg. x1,x2,x3 und y1,y2,y3

p(x) = y1 + C1(x-x1) + C2(x-x1)(x-x2)

C1 = (y2-y1)/(x2-x1) = h1
C2 = (h2-h1)/(x3-x1)

h2 = (y3-y2)/(x3-x2)

Auflösen musst Du selber :)
Gast #136836
Lesenswert?

M16C hab ich keine Ahnung von.
Ich hab mal was ähnliches in einen 80537 gequetscht. Der hat ein paar
4Byte Multiplikations / Divisionsregister mit denen man die Rechenzeit
in erkläglichen Grenzen halten konnte. 535 ist bei der Nummer kläglich
verreckt.
Diese Summe über ...  bis ... löst Du in form von for-Schleifen auf.
Du wirst vieleicht Probleme mit dem Speicher bekommen. Verwende alle
Variablen, die Du nicht mehr brauchst doppelt und dreifach weiter.
Am einfachsten geht es, wenn Du Dir mal ein Beispiel Deines Polynoms zu
Fuss ausrechnest. Dann hast Du alle Steps die Du brauchst.
Gast #136837
Lesenswert?

Hi

@sepp
es ist eine Approximation. Bei einer Interpolation läuft die Kurve
durch alle gegebenen Punkte. D.h. du brauchst für ein Polynom zweiten
Grades mindestens 3 Punkt. Hast du mehr nimmt man drei Punkte aus
dieser Menge bzw. findet evtl. keine Lösung. In der Praxis hat man aber
oftmals mehr Punkte und muß diese mit einer Kurve gegebenen Grades mit
möglichst kleinem Fehler approximieren.

Matthias
Gast #136840
Lesenswert?

Die Beiträge sind ja ganz interssant !

Aber meine eigentlich Frage war, hat jemand von euch eine solche
Polynominterploation schon mal programmiert.

Wäre es möglich den Quellcode einen solchen Funktion zu bekommen.
Leider bin ich nicht in der Lage das Umzusetzen. Bin erst vor kurzem in
die C- Programmierung eingestiegen.

m.f.G

Stefan Laux

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren