mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Polynominterpolation mit M16C


Autor: Laux Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: tex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-))

Autor: Laux Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mr_Boertsch (Gast)
Datum:

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

Autor: Laux Stefan (Gast)
Datum:

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

m.f.G

Stefan Laux

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das glaube ich eher nicht. Höchstens eine Kalibrierfunktion...

Autor: Mr_Boertsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was glaubst du nicht?

Autor: Matthias (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt (Gast)
Datum:

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

Autor: Mr_Boertsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@benedikt

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

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: tex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

Matthias

Autor: Laux Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

Matthias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.