Forum: Mikrocontroller und Digitale Elektronik Polynominterpolation mit M16C


von Laux Stefan (Gast)


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

von tex (Gast)


Lesenswert?

Wenn Du es etwas verständlicher ausdrücken könntest, kann ich mal
nachschauen, ob ich was für Dich tun kann. (Ich hoffe, Dein µC hat viel
Speicher ;-))

von Laux Stefan (Gast)


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

von Mr_Boertsch (Gast)


Lesenswert?

In Excell kann man das ganz einfach. Oder musst du die Koeffizienten im
Prozessor rechnen?

von Laux Stefan (Gast)


Lesenswert?

Der µC soll eine Eichfunktion übernehmen. Also muß die Berechnung im µC
ablaufen.

m.f.G

Stefan Laux

von Benedikt (Gast)


Lesenswert?

Das glaube ich eher nicht. Höchstens eine Kalibrierfunktion...

von Mr_Boertsch (Gast)


Lesenswert?

was glaubst du nicht?

von Matthias (Gast)


Angehängte Dateien:

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

von Benedikt (Gast)


Lesenswert?

@Mr_Boertsch
Ich glaube nicht dass er in der Lage ist ein Gerät zu eichen, höchstens
kalibrieren kann er.

von Mr_Boertsch (Gast)


Lesenswert?

@benedikt

aha. hab schon gedacht du glaubst nicht, dass Excell das kann*g*

von Sepp (Gast)


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 :)

von tex (Gast)


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.

von Matthias (Gast)


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

von Sepp (Gast)


Lesenswert?

Oh ok ich dachte aus 3 Punkten. Dann ists in der Tat 'ne Approximation.
Wie wär's mit Gaußscher Fehlerquadratmethode mit Polynom 2. Grades als
Modellfunktion?

von Matthias (Gast)


Lesenswert?

Hi

und genau das müßte
http://www.mikrocontroller.net/attachment.php/141579/approx.png sein.

Matthias

von Laux Stefan (Gast)


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

von Matthias (Gast)


Lesenswert?

Hi

dann ist das doch eine tolle Übung zu for-Schleifen.

Matthias

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.