Forum: Mikrocontroller und Digitale Elektronik Polynom für nichtlinearen Sensor anhand von Stützstellen gesucht


von Oliver S. (os252)


Lesenswert?

Hallo Leute,

ich suche für einen Sensor eine passende Kennlinie, die ich im µC 
implementieren kann.
Ich habe dazu 9 Stützstellen, die ich grafisch passend mit einem Polynom 
5. Ordnung gut verbinden konnte.
Ich habe die 9 Stellen in Excel in einem x-y Diagramm darstellen lassen 
und eine "Trendlinie" mit einem Polynom 5. Ordnung drüber gelegt.
Dieses Polynom anzeigen lassen im Diagramm und als Kontrolle in Excel 
als Formel eingegeben.
Über den Wertebereich von X kommen dann aber vollkommen andere Werte 
heraus, als erwartet.

Folgende Stützstellen vom Sensor:

Frequenz  Messwert
1832      0
1950      8
1983      10
2065      15
2736      75
3388      160
4484      310
7832      640
10630     800

ergeben im Exceldiagramm das Polynom:
y = -5E-17x5 + 2E-12x4 - 3E-08x3 + 0,0002x2 - 0,3474x + 220,16

und dieses in Excel eingegeben ergibt für die eingesetzten Frequenzen:
Frequenz  Messwert
1832      92
1950      108
1983      113
2065      126
2736      257
3388      413
4484      697
7832      1407
10630     1842

Ich komme einfach nicht auf den Fehler...
Ich habe bereits mehrmals alles kontrolliert, aber leider sehe ich 
wahrscheinlich mittlerweile einfach darüber weg...
Eventuell mag sich jemand diese Wertereihe ansehen und mir auf die 
Sprünge helfen.

Vielen Dank bereits im voraus!

Grüße,
Olli

: Bearbeitet durch User
von leo (Gast)


Lesenswert?

Oliver S. schrieb:
> ergeben im Exceldiagramm das Polynom:
> y = -5E-17x5

Hier bist du jenseits der Genauigkeit von double.

leo

von Oliver S. (os252)


Lesenswert?

Hallo,

danke, mit der Antwort hast du mir bereits weiter geholfen.
Scheinbar war auch Excel am Ende seiner Genauigkeit.
Ich habe nun einfach die Frequenz nicht mehr in Hz sonder in kHz 
eingegeben und es kommen brauchbare Ergebnisse heraus!

Danke und Grüße

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

Fast alle Koeffizienten sind auf nur 1 Stelle gerundet. Gibt es in Excel
die Möglichkeit, die Koeffizienten genauer anzuzeigen? Wenn nicht, nimm
LibreOffice

1
-4.74107e-17*x**5+1.79892e-12*x**4-2.57563e-8*x**3+0.000165035*x**2-0.3446244*x+218.04885

oder beliebiges anderes Tool, das Approximationen berechnen kann.

: Bearbeitet durch Moderator
von Dirk B. (dirkb2)


Lesenswert?

Yalu X. schrieb:
> Gibt es in Excel
> die Möglichkeit

Ja

von Yalu X. (yalu) (Moderator)


Lesenswert?

Es scheint auch mit Excel zu gehen, nur sind Microsoft-typisch  die
Voreinstellungen völlig an der Praxis vorbei:

  https://support.microsoft.com/de-de/help/211967/chart-trendline-formula-is-inaccurate-in-excel

von A. S. (Gast)


Lesenswert?

Gibt es einen Grund für die Annahme, dass ein Polynom 5ter Ordnung gut 
ist?

Was ist das für ein Sensor?

Wie gut deine Annäherung wirklich ist, siehst Du, wenn du einen der 
letzten 4 Punkte weglässt, dein Polynom suchst, und zeichnest, und dann 
den Punkt dazumalst.

Wenn Du die "richtige" Funktion des Sensors kennst, nimm lieber die zur 
Optimierungssuche.

von Dr. Sommer (Gast)


Lesenswert?

Oliver S. schrieb:
> Ich habe die 9 Stellen in Excel in einem x-y Diagramm darstellen lassen
> und eine "Trendlinie" mit einem Polynom 5. Ordnung drüber gelegt.

Für 9 Stützstellen brauchst du aber ein Polynom 8. Grades. Solche 
"hochgradigen" Polynome gehen zwar durch die Stützstellen, schwingen 
dazwischen aber wild rum und sind daher für Interpolation ziemlich 
nutzlos. Du kannst durch jeweils 2-3 Stellen ein Polynom 2.-3. Grades 
legen und somit stückweise Interpolieren. Das geht mit B-Splines.

von Olaf (Gast)


Lesenswert?

> Für 9 Stützstellen brauchst du aber ein Polynom 8. Grades. Solche
> "hochgradigen" Polynome gehen zwar durch die Stützstellen, schwingen
> dazwischen aber wild rum und sind daher für Interpolation ziemlich

Das kann passieren. Deshalb schaut man sich die ja auch vorher genau an. 
.-)
Man kann aber auch einfach weniger nehmen und es sich dann anschauen. 
Ich kann mich jetzt nicht erinnern jemals mehr wie 4.Ordnung gebraucht 
zu haben.

Und Leute, Excel? Was soll diese kranke Peinlichkeit? Nehmt Matlab wenn 
euch das Geld zu den Ohren rauskommt oder Octave wenn nicht. Oder 
irgendein anderes Matheprogramm. Ich habe frueher immer Robot 
(Astronomieprogramm) genutzt. Ob doch nicht diesen kranken Visicalc 
abklatsch von Microsoft.

Olaf

von Dr. Sommer (Gast)


Lesenswert?

Olaf schrieb:
> Man kann aber auch einfach weniger nehmen und es sich dann anschauen.
> Ich kann mich jetzt nicht erinnern jemals mehr wie 4.Ordnung gebraucht
> zu haben.

Das geht halt nur wenn die Kurve "gerade" genug ist :) wenn es mehrere 
Maxima und/oder Wendepunkte hat reicht das nicht.

von Dieter R. (drei)


Lesenswert?

Olaf schrieb:

> Und Leute, Excel? Was soll diese kranke Peinlichkeit? Nehmt Matlab wenn
> euch das Geld zu den Ohren rauskommt oder Octave wenn nicht. Oder
> irgendein anderes Matheprogramm. Ich habe frueher immer Robot
> (Astronomieprogramm) genutzt. Ob doch nicht diesen kranken Visicalc
> abklatsch von Microsoft.
>
> Olaf

So ein Quatsch.

Die gestellte Aufgabe lässt sich mit Excel problemlos lösen. 
Insbesondere für den, der Excel aus anderen Gründen beruflich einsetzt, 
ist es das Mittel der Wahl.

Mit Matlab oder Octave muss man auch erst einmal umgehen können, um 
Aufgaben damit zu lösen. Wer allerdings weder mit Excel noch mit Matlab 
umgehen kann und auch nicht weiß, wo man Hilfe und Anleitungen findet, 
der hat schlechte Karten. Dann hilft nur zu Fuß rechnen, geht ja auch.

von Pandur S. (jetztnicht)


Lesenswert?

Nun, so trivial ist so ein Fit nicht. Erst mal sollte man sich 
entscheiden, will man eine interpolation, oder eine approximation. Bei 
der Interpolation geht die funktion durch die punkte, bei einer 
Approximation in der Naehe durch. Wenn die Daten verrauscht, dafuer 
ueberbestimmt ist ist die Approximation die Wahl. Wenn man zuwenige 
Punkte hat, eher die Interpolation. Bei einem Sensor, der nicht beliebig 
Nichtlinear sein kann, von der Theorie her, eher eine Approximation.

Schwieriger wird's auch wenn die Punkte extrem verschieden auseinander 
sind. Dann wird bei einer normalen Approximation die enge Stelle 
bevorzugt.

von Olaf (Gast)


Lesenswert?

> Erst mal sollte man sich entscheiden, will man eine interpolation,
> oder eine approximation.

DAs stimmt natuerlich!
Man sollte aber noch was bedenken. Wieso hat der OP nur 9Punkte. Wieso 
nicht 90 oder 900? Wer weiss was zwischen Punkt 6 und Punkt 7 wirklich 
passiert?

Die Antwort darauf ist ja wohl das er annimmt das da nicht mehr soviel 
los ist und das er sein System mit 9Punkten ausreichend gut beschrieben 
hat. Und wenn man schon so eine Auswahl trifft, dann kann man dasselbe 
auch machen indem man eine Approximation auswaehlt die auch nur genau 
genug, aber nicht perfekt ist. Es macht dann IMHO keinen Sinn mehr 100% 
genau durch die Stuetzstellen zu gehen. Deshalb spiele ich in so einem 
Fall immer mit den Werten rum bis ich eine brauchbar einfache Funktion 
habe die brauchbar genau genug an den Originalwerten vorbei geht.

Olaf

von HildeK (Gast)


Lesenswert?

A. S. schrieb:
> Gibt es einen Grund für die Annahme, dass ein Polynom 5ter Ordnung gut
> ist?

Das habe ich mich auch gefragt.
So, wie Yalu X. die Messgrößen in ein Diagramm gezeichnet hat, sollte 
ein Polynom 3. Grades ausreichend passen.
Man bedenke, es sind Messwerte mit Messfehlern und der prinzipielle 
Verlauf erscheint aus der Kurve 3. Grades zu sein!
Man müsste also ein Polynom 3. Grades so in die Messwerte einpassen, 
dass sich zu denen ein minimaler Fehler ergibt. Jeder höhere Grad trifft 
zwar die vorhandenen Messwerte besser, ergibt aber dazwischen ein 
schlechteres Ergebnis.
Stichwort: "Polynomial Linear Regression".

von Axel S. (a-za-z0-9)


Lesenswert?

Bonzo N. schrieb:
> Erst mal sollte man sich
> entscheiden, will man eine interpolation, oder eine approximation.

Ganz recht. Wobei man statt Approximation eher Regression bzw. bei 
Kenntnis der Funktion Anpassung (engl. Fitting) sagt.

A. S. schrieb:
> Gibt es einen Grund für die Annahme, dass ein Polynom 5ter Ordnung gut
> ist?

Wenn ich mir das Polynom des TE ansehe, dann fällt mir sofort auf, daß 
die Koeffizienten für die Glieder der Ordnung 3, 4 und 5 sehr klein 
sind. Die naheliegende Schlußfolgerung ist, daß der Zusammenhang 
tatsächlich nur quadratisch ist. Die Glieder höherer Ordnung verbessern 
die Anpassung nur scheinbar - tatsächlich gleichen sie die 
unvermeidlichen Meßfehler nur ein kleines bißchen besser aus als eine 
quadratische Regression das täte.

Mein Rat wäre, Excel eine quadratische Funktion an die 9 Punkte fitten 
zu lassen. Die wird vielleicht ein kleines bißchen schlechter passen, 
aber trotzdem näher an der Realität sein.

Wenn man kann, sollte man danach noch weitere Meßwerte aufnehmen, 
bevorzugt an den Enden des Wertebereichs. Man kann auch von Anfang an so 
vorgehen, daß man die Werte von den Enden wegläßt und das Fitting nur 
für die sagen wir mal 7 mittleren Werte machen läßt. Und dann schaut 
man, wie gut die Funktion die Endwerte trifft. Wenn das Polynom 
überbestimmt ist, stehen die Chancen gut, daß es die Endwerte schlecht 
trifft. Eben weil höhergradige Polynome dazu neigen, außerhalb des 
Fittingbereichs "wegzulaufen".

von Dieter R. (drei)


Lesenswert?

Axel S. schrieb:

> Die naheliegende Schlußfolgerung ist, daß der Zusammenhang
> tatsächlich nur quadratisch ist.

Hast du eine Vorstellung davon, wie eine quadratische Kurve aussieht? 
Die naheliegende Schlussfolgerung, wie HildeK richtig bemerkte, ist, 
dass ein Polynom dritten Grades angemessen ist.

Mannomann, was lernt man heute eigentlich in der Mittelstufe?

von Dr. Sommer (Gast)


Lesenswert?

Dieter R. schrieb:
> Mannomann, was lernt man heute eigentlich in der Mittelstufe?

Dreisatz und Lyrik-Interpretation.

von Johnny B. (johnnyb)


Lesenswert?

Dr. Sommer schrieb:
> Dieter R. schrieb:
>> Mannomann, was lernt man heute eigentlich in der Mittelstufe?
>
> Dreisatz und Lyrik-Interpretation.

Und sie lernen, wie man Genderneutrale und Texte verfasst, denn das ist 
viel wichtiger.

von Lyrik (Gast)


Lesenswert?

Lyrik-Interpolation??

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

Hier ist eine Gegenüberstellung der Polynome 3., 4. und 5. Grades. Die
Polynome 4. und 5. Grades passen beide ziemlich gut, unterscheiden sich
aber dennoch stark voneinander. Um sich für eines von beiden zu
entscheiden, bräuchte man noch einen weiteren Messpunkt zwischen dem
vorletzten und dem letzten Punkt.

von A. S. (Gast)


Lesenswert?

Man sollte den Sensor (gibts schon infos dazu?) kennen, notfalls den 
Hersteller fragen.

Wenn es z.b. ein Temp-Sensor ist, der zwar sinnvoll dritten oder vierten 
Grades sein kann, aber da nur positive (oder nur negative) Faktoren hat, 
dann kann man sofort sehen, dass da andere (unbehandelte) Fehler mit 
reinspielen, z.B. vielleicht eine Sättigung im unteren Bereich.

Zu Anfang meiner Laufbahn hatte ich die Ehre, Geiger-Müller-Zählraten zu 
linearisieren. Mein Vorgänger hatte (weil einfach) auch Bereichsweise 
Polynome dritten Grades gewählt. Die Übergänge waren entsprechend 
grausig. Als ich quasi den physikalischen Zusammenhang zugrunde legte 
(jeder Impuls zieht eine Totzeit nach sich), reichte ein Kalibrierpunkt 
für alle Bereiche.

von Helmut S. (helmuts)


Angehängte Dateien:

Lesenswert?

Nachdem da so einige Vorschläge aus dem Bauch heraus kamen, hier mal 
eine echte Analyse mit Polynomen mit Grad 2,3,4 und 5.

2. Grad (rot) : deutliche Abweichung im unteren und oberen Breich

3. Grad (grün) : besser als 2. Grad aber sichtbare Abweichung im 
mittleren Bereich

4. Grad (blau) : starke Beule im oberen Bereich

5. Grad (schwarz) : Sehr guter Fit

Oliver hat mit seinem Polynom 5. Grades eine sehr gute Wahl getroffen.


Ergebnis von Octave
>> p5=polyfit(x,y,5)
>> p5 =
 Columns 1 through 4:
  -4.741067486400263e-17   1.798920916847662e-12  -2.575632625078849e-08 
1.650350628640973e-04
 Columns 5 and 6:
  -3.446243710231715e-01   2.180488537623672e+02

Berechnung nit Gnu-Octave

x=[1832, 1950, 1983, 2065, 2736, 3388, 4484, 7832, 10630];
y=[0, 8, 10, 15, 75, 160, 310, 640, 800];

% Polyfit
p2=polyfit(x,y,2)
p3=polyfit(x,y,3)
p4=polyfit(x,y,4)
p5=polyfit(x,y,5)

% Werte an den Stützstellen
z2=polyval(p2,x)
z3=polyval(p3,x)
z4=polyval(p4,x)
z5=polyval(p5,x)

% Kurven plotten
x1=1832:1:10630;
zx2=polyval(p2,x1);
zx3=polyval(p3,x1);
zx4=polyval(p4,x1);
zx5=polyval(p5,x1);

plot(x,y,'o'); grid; hold on;
plot(x1,zx2,'r')
plot(x1,zx3,'y')
plot(x1,zx3,'g')
plot(x1,zx4,'b')
plot(x1,zx5,'k')

: Bearbeitet durch User
von Olaf (Gast)


Lesenswert?

> Oliver hat mit seinem Polynom 5. Grades eine sehr gute Wahl getroffen.

Fuer die derzeit vorhanden Daten schon. Zum Vergleich mit der Realitaet 
wuerde ich jetzt aber gerne noch einen Punkt bei 6000Hz sehen und kucken 
wie viel der dann daneben liegt. Und wenn man dann feststellt das es 
doch noch gar nicht so gut ist, aber man mit der Abweichung durchaus 
leben kann, dann stellt man vielleicht auch fest das 3. oder 4.Grad auch 
ausreichen.

Haengt halt immer von den Nebenbedinungen ab. Wenn man Energie und 
Rechenleistung ohne Ende hat dann denkt man nicht weiter nach und pappt 
das Polynom 5.Ordnung in den Code. Wenn das anders ist und man die 
Berechnung vielleicht auch haeufiger durchfuehren muss dann nimmt man 
etwas weniger.

Olaf

von Udo S. (urschmitt)


Lesenswert?

Oliver S. schrieb:
> ich suche für einen Sensor eine passende Kennlinie, die ich im µC
> implementieren kann.

Wenn das ein echter Sensor ist und nicht eine Hausaufgabe:
Was sagt denn das Datenblatt des Sensors?
Oder ist das eine Eigenproduktion? Dann solltest du deutlich mehr 
Stützstellen machen und eher partiell zwischen den Stützstellen 
interpolieren.
So hast du halt große Lücken, siehe die Diagramme von Yalu und Helmut.

von Marten Morten (Gast)


Lesenswert?

Dieter R. schrieb:
> Die gestellte Aufgabe lässt sich mit Excel problemlos lösen.

So problemlos, dass das erste Ergebnis des TOs falsch war. Interessante 
Definition von "problemlos".

> Insbesondere für den, der Excel aus anderen Gründen beruflich einsetzt,
> ist es das Mittel der Wahl.

https://www.forbes.com/sites/salesforce/2014/09/13/sorry-spreadsheet-errors/

von Axel S. (a-za-z0-9)


Lesenswert?

Dieter R. schrieb:
> Axel S. schrieb:
>
>> Die naheliegende Schlußfolgerung ist, daß der Zusammenhang
>> tatsächlich nur quadratisch ist.
>
> Hast du eine Vorstellung davon, wie eine quadratische Kurve aussieht?
> Die naheliegende Schlussfolgerung, wie HildeK richtig bemerkte, ist,
> dass ein Polynom dritten Grades angemessen ist.

Albern. So lange wir nicht wissen, wie groß die Fehler der einzelnen 
Meßpunkte sind, kann die richtige Funktion genausogut eine Gerade sein.

Ich hatte mir die Verteilung der Punkte in der x/y Ebene selber gar 
nicht angeschaut. Nachdem jetzt einige Poster diese Darstellung 
geliefert haben, muß ich anmerken, daß die Meßpunkte absolut ungünstig 
liegen. Insbesondere aus der dicht gedrängten Punktwolke am unteren Ende 
läßt sich überhaupt gar nichts vernünftig ableiten. Wenn man nur einen 
dieser Punkte geringfügig verschiebt, werden sich die Koeffizienten 
massiv verändern.

Wie bereits gesagt wurde, ist es überhaupt keine Kunst, eine Kurve zu 
finden, die exakt durch alle Datenpunkte geht. Für N Punkte halt 
einfach ein Polynom vom Grad N-1. Nur ist die Tatsache, daß die Kurve 
die existierenden Punkte trifft, überhaupt kein Kriterium dafür, daß 
sie den Zusammenhang korrekt wiedergibt.

Jede Messung ist fehlerbehaftet. Es gibt keinen Grund für die Annahme, 
auch nur ein einziger dieser Punkte würde exakt auf der korrekten 
Kurve liegen.

von Harald W. (wilhelms)


Lesenswert?

Udo S. schrieb:

> Oliver S. schrieb:
>> ich suche für einen Sensor eine passende Kennlinie, die ich im µC
>> implementieren kann.
>
> Wenn das ein echter Sensor ist und nicht eine Hausaufgabe:
> Was sagt denn das Datenblatt des Sensors?
> Oder ist das eine Eigenproduktion? Dann solltest du deutlich mehr
> Stützstellen machen und eher partiell zwischen den Stützstellen
> interpolieren.

Das frage ich mich schon die ganze Zeit. Welcher Sensor hat
denn eine derart hohe Genauigkeit, das sich eine derartige
Polynomrechnung überhaupt lohnt? im Zeitalter des billigen
Speichers ist eine Tabelle samt Interpolation der Zwischen-
werte wesentlich sinnvoller.

von Martin (Gast)


Lesenswert?

Ich verwende für eine Sensoranwendung eine stückweise kubische 
Interpolation, in Matlab 
https://www.mathworks.com/help/matlab/ref/pchip.html (Erklärung unter 
"more about...". Ich habe ca. 100 Messwerte und lege per Augenmass 6-10 
Stützstellen fest, zwischen denen interpoliert wird.
Mir scheint das numerisch robuster zu sein, als beliebig hochgradige 
Polynome zu verwenden. Allerdings würde ich versuchen, mehr Daten als 
nur die neun Stützstellen zu bekommen.

von Cris (Gast)


Lesenswert?

Ein lineares Modell ergibt ein R² > 0.98. Das ist für ein Modell schon 
fast zu gut. Quadratisch geht es dann Richtung R² = 1 (fast).

von Dieter R. (drei)


Lesenswert?

Marten Morten schrieb:
> Dieter R. schrieb:
>> Die gestellte Aufgabe lässt sich mit Excel problemlos lösen.
>
> So problemlos, dass das erste Ergebnis des TOs falsch war. Interessante
> Definition von "problemlos".
>
Das liegt aber nicht an Excel, sondern daran, dass der TO sich nicht 
genug Stellen hat anzeigen lassen. Wie es richtig geht, wurde ihm 
inzwischen auch mitgeteilt. Die Frage wäre nicht gewesen, "kann Excel 
das", sondern "wie mache ich es richtig mit Excel". Das gilt für jede 
verwendete Software - man muss die verwendeten Tools schon ein bisschen 
beherrschen, egal ob Excel, Matlab, Open Office, Kicad oder was immer 
man benutzt.

von Wolfgang (Gast)


Lesenswert?

Oliver S. schrieb:
> Ich habe dazu 9 Stützstellen, die ich grafisch passend mit einem Polynom
> 5. Ordnung gut verbinden konnte.

Ein Polynom 5. Ordnung ist schon arg hoch. Mit einem Polynom 3. Ordnung 
liegt das Bestimmtheitsmaß bereits bei 0,999.

Um ein Polynom 5. Ordnung zu rechtfertigen, sind deine Messwerte gar 
nicht genau genug.
Woher weisst du, dass der Wert für 6kHz bei 490 (Polynom 5. Ordnung) und 
nicht bei 465 (Polynom 3. Ordnung) liegt?

Besser wäre, ein Modell zu verwenden, dass deinem Prozess entspricht. 
Polynome höherer Ordnung können zwischen den Stützstellen viel Unsinn 
treiben. Legen mal ein Polynom 6. Ordnung in deine Daten. Dann siehst 
du, was ich meine.

von HildeK (Gast)


Lesenswert?

Harald W. schrieb:
> Das frage ich mich schon die ganze Zeit. Welcher Sensor hat
> denn eine derart hohe Genauigkeit, das sich eine derartige
> Polynomrechnung überhaupt lohnt?

Schon richtig, aber sollte die Frage nicht eher lauten: welche Art von 
Kurve hat den der Sensor auf Grund seiner physikalischen Eigenschaften?
Ein NTC z.B. hat mit sehr guter Näherung im üblicherweise genutzten 
Bereich 2.Ordnung. Da lohnt sich eine quadratisches Polynom schon.
Es gibt Größen, die einem dritten Grad folgen (z.B Temperaturgang von Rs 
oder von Quarzen und ev. der unbekannte vom TO), aber für höhere Grade 
fällt mir nichts ein.

von Udo S. (urschmitt)


Lesenswert?

Dieter R. schrieb:
> Das liegt aber nicht an Excel, sondern daran, dass der TO sich nicht
> genug Stellen hat anzeigen lassen.

Gut jetzt wissen wir daß Excel ganz toll ist wenn es ein Könner bedient. 
Jetzt hast du genug für die Microsoft Fankurve getan, vieleicht können 
wir den Thread wieder zum eigentlichen Problem zurückführen.
Und das ist nicht Excel sondern die oben gestellten Fragen:

Welcher Sensor?
Was sagt das Datenblatt?
Wie genau sind die Stützstellen?
Welche Art von Kurve hat den der Sensor auf Grund seiner physikalischen 
Eigenschaften?

Und die Aussagen:

Mehr Stützstellen und partielles interpolieren wäre besser.
Die Stützstellen gleichmäßiger verteilen wäre besser.

edit: Die Frage von HildeK hinzugefügt

: Bearbeitet durch User
von Martin (Gast)


Lesenswert?

Dieter R. schrieb:
> inzwischen auch mitgeteilt. Die Frage wäre nicht gewesen, "kann Excel
> das", sondern "wie mache ich es richtig mit Excel".

Oder noch besser: Wie mache ich das ohne Excel?
OK, danach hat er wirklich nicht gefragt. Für Interessierte empfehle ich 
den guten alten Gauss anzuschauen,
https://en.wikipedia.org/wiki/Linear_least_squares die erste Gleichung 
"OLS" ist der Schlüssel. Wenn man mal begriffen hat, dass das Prinzip 
gar nicht auf lineare Probleme limitiert ist, hat man ein tolles 
Werkzeug gewonnen. Ich habe das schon ein paarmal brauchen können.

von Harald W. (wilhelms)


Lesenswert?

Udo S. schrieb:

> Gut jetzt wissen wir daß Excel ganz toll ist wenn es ein Könner bedient.

Nun, Excel hat den Vorteil, das es das Polynom praktisch
auf Knopfdruck liefert, ohne das man gleich studierter
Mathematiker sein muss. Und es ist auf vielen Computern
bereits fertig installiert. Natürlich kann auch die beste
Software keine vernünftigen Ergebnisse liefern, wenn man
z.B. zu wenig Stützstellen hat.

von Karl K. (karl2go)


Lesenswert?

Harald W. schrieb:
> das es das Polynom praktisch
> auf Knopfdruck liefert

Nur: Warum?

Wenn er das in einen µC drücken will, ist eine LOT sowieso besser, als 
zu versuchen das mit float über ein Polynom zu berechnen.

e-17 und x^5 auf nem µC nicht wirklich.

Noch einen Stützwert bei 6000 ermitteln und dann linear interpolieren.

von Helmut S. (helmuts)


Lesenswert?

Harald w. schrieb
> Wenn er das in einen µC drücken will, ist eine LOT sowieso besser, als
> zu versuchen das mit float über ein Polynom zu berechnen.
>
> e-17 und x^5 auf nem µC nicht wirklich.
>
> Noch einen Stützwert bei 6000 ermitteln und dann linear interpolieren.

Oliver hat ja schon geschrieben, dass die Zahlen besser aussehen, wenn 
die x-Werte durch 1000 teilt. Damit werden aus 10^-17 angenehme 10^-2.

>> p1000=polyfit(x1000,y,5)

-4.741067486406059e-02*x^5 + 1.798920916849266e+00*x^4 
-2.575632625080475e+01*x^3 + 1.650350628641724e+02'x^2
-3.446243710233300e+02*x   2.180488537624904e+02

von Axel S. (a-za-z0-9)


Lesenswert?

Harald W. schrieb:
> Udo S. schrieb:
>
>> Gut jetzt wissen wir daß Excel ganz toll ist wenn es ein Könner bedient.
>
> Nun, Excel hat den Vorteil, das es das Polynom praktisch
> auf Knopfdruck liefert, ohne das man gleich studierter
> Mathematiker sein muss.

Das ist nicht notwendig ein Vorteil.

> Natürlich kann auch die beste
> Software keine vernünftigen Ergebnisse liefern, wenn man
> z.B. zu wenig Stützstellen hat.

Oder wenn man die (sehr wahrscheinlich) falsche Annahme macht, ein 
Polynom wäre überhaupt geeignet, den Zusammenhang der Meßgrößen zu 
approximieren.

Das Problem mit "Knopfdruck" Lösungsmachinen ist, daß sie dazu 
verleiten, Probleme von Leuten bearbeiten zu lassen, die dafür nicht 
qualifiziert sind und auch den größten Mist als Lösung akzeptieren, wenn 
es die magische Maschine auswirft. Ähnlich wie bei der Einführung von 
Taschenrechnern im Matheunterricht. Die Leute vertippen sich oder 
beachten irgendwo nicht die Reihenfolge von Operationen und schreiben 
nachher ein falsches Ergebnis hin, ohne auch nur eine Sekunde darüber 
nachzudenken, ob es überhaupt plausibel ist. Habe ich erlebt, als ich 
den Nachbarskindern Mathe-Nachhilfe gegeben habe. Da sollte ein Liter 
Benzin 500€ kosten. Hatte der Taschenrechner ausgerechnet. Das mußte 
stimmen!

Hier doch auch: wenn man ein Polynom fitten läßt und die Koeffizienten 
unterscheiden sich um einen Faktor von 10^19 (220 vs. 5E-17), dann ist 
es doch offensichtlich, daß hier etwas nicht paßt. Und wenn von 5 
Koeffizienten zwei bzw. drei von einem Ende her so vollkommen andere 
Größenordnungen haben als der Rest, dann ist die Schlußfolgerung 
einfach.

von Jens G. (jensg)


Lesenswert?

Seit langer Zeit nehme ich .. CurveExpert 1.4
https://curveexpert.software.informer.com/

oder .. CurveExpert 1.3
https://curveexpert.software.informer.com/1.3/

von Karl K. (karl2go)


Lesenswert?

Helmut S. schrieb:
> Oliver hat ja schon geschrieben, dass die Zahlen besser aussehen, wenn
> die x-Werte durch 1000 teilt.

Da hat man so schöne Integers, und dann teilt man die durch 1000, damit 
man auf dem µC mit floats rechnen muss. Und dann wird wieder rumgeheult, 
dass der µC zu langsam sei und zu wenig Speicher habe.

Der Frage des "besten Fits" geht doch die Frage voraus, wie genau die 
Werte überhaupt sind. Bringt ja nichts, wenn man den vorletzten Punkt 
schön trifft, wenn der Messwert daneben liegt.

Und die vielen Punkte links unten täuschen auch nur vor, dass da der Fit 
möglichst genau sei. Dabei wichten sie den Fit nur unnötig in diese 
Ecke.

1. Regel für ein gutes Fitting: Meßpunkte möglichst gleichmäßig 
verteilen.
2. Regel: Fehlertoleranzen abschätzen.

von Olaf (Gast)


Lesenswert?

> Und dann wird wieder rumgeheult, dass der µC zu langsam sei und zu wenig
> Speicher habe.

Dein Einwand kann durchaus berechtigt sein und es gibt Anwendungen da 
sehe ich das ganz genauso. Ich hab sogar schonmal die 
Integerkoeffizienten so optimiert das man mit einem akzeptablen Verlust 
an Genauigkeit mit weitestgehend mit Shift Operationen ausgekommen ist.
Aber andererseits sind heute Controller sehr viel schneller geworden. 
Ich hab letzten mal ein einer Anwendung einfach einen Digitalfilter der 
mit double rechnet und den ich vor 20Jahren auf dem PC programmiert habe 
einfach auf einen STM32 kopiert und es war nicht notwendig da irgendwas 
zu optimieren.
Das kann man sich natuerlich nicht immer erlauben und ich kann nur jedem 
raten auch zu lernen wie es anders geht, aber es geht heute oefter als 
man denkt.

Olaf

von Jens G. (jensg)


Lesenswert?

Modified Geometric Fit: a*x^(b/x)
Coefficient Data:
a =  4,26510805719E+003
b = -9,65600259823E+002

von Yalu X. (yalu) (Moderator)


Lesenswert?

Axel S. schrieb:
> Hier doch auch: wenn man ein Polynom fitten läßt und die Koeffizienten
> unterscheiden sich um einen Faktor von 10^19 (220 vs. 5E-17), dann ist
> es doch offensichtlich, daß hier etwas nicht paßt.

Was sollte daran nicht passen? Es ist doch ganz natürlich, dass die
Koeffizienten für hohe Potenzen von x bei so großen Werten von x (1832
bis 10639) winzig klein sein müssen. Die riesige Potenz 10639**5≈1.4e20
muss ja irgendwie wieder auf den Boden der Tatsachen (d.h. grob in die
Größenordnung der y-Werte) zurückgeholt werden, und das geschieht eben
mit einem entsprechend kleinen Koeffizienten. Die Ergebnisse zeigen ja
auch, dass die vorgegebenen Messpunkte mit guter Genauigkeit erreicht
werden.

Solange die Koeffizienten in dem verwendeten Zahlenformat (bspw. float
oder double) darstellbar sind, ist das überhaupt kein Problem. Anders
sieht es aus, wenn das Polynom Festkommaarithmetik berechnet werden
soll, wo nur wenige Größenordnungen abgedeckt werden. Dann sollte man,
wie von Helmut vorgeschlagen, die x-Werte so skalieren, dass sie in der
Größenordnung 1 liegen, so dass die Potenzen nicht extrem groß, und
damit die Koeffizienten nicht extrem klein werden.

Man kann zusätzlich zur Skalierung folgende Beziehung anwenden, um die
Koeffizienten noch humaner zu machen:


Der Rechenaufwand ist dabei derselbe.

von Jens G. (jensg)


Lesenswert?

Mehr Messpunkte sind hilfreich, um eine bessere Interpolation zu finden.

von Bernd K. (prof7bit)


Lesenswert?

Harald W. schrieb:
> Nun, Excel hat den Vorteil, das es das Polynom praktisch
> auf Knopfdruck liefert, ohne das man gleich studierter
> Mathematiker sein muss.

Lieschen Müller vom Blumenladen und Oma Erna von der Käsetheke fitten 
zuhause keine Polynome. Alle anderen die das für irgendeinen Zweck 
machen müssen werden sich bereits zuvor die Mühe gemacht haben zu 
verstehen was das überhaupt ist, was sie wollen, was sie nicht wollen 
und was man alles beachten muß.

von Egon D. (Gast)


Lesenswert?

Karl K. schrieb:

> Helmut S. schrieb:
>> Oliver hat ja schon geschrieben, dass die Zahlen besser
>> aussehen, wenn die x-Werte durch 1000 teilt.
>
> Da hat man so schöne Integers, und dann teilt man die
> durch 1000, damit man auf dem µC mit floats rechnen muss.
> Und dann wird wieder rumgeheult, dass der µC zu langsam
> sei und zu wenig Speicher habe.

<Herumätzerei>

Wer nicht nur rechnen kann, sondern eine gewisse mathematische
Bildung hat, wertet ein Polynom mittels HORNER-Schema aus. Das
macht die Sache sowohl schneller aus auch genauer.

Dass das noch niemand vorgeschlagen hat, sagt etwas über das
mathematische Niveau hier.

</Herumätzerei>

von Egon D. (Gast)


Lesenswert?

Yalu X. schrieb:

> Solange die Koeffizienten in dem verwendeten Zahlenformat
> (bspw. float oder double) darstellbar sind, ist das
> überhaupt kein Problem.

Das stimmt so nicht.

Grundsätzlich kann auch der Fall eintreten, dass die
einzelnen Summanden sehr groß werden, aber unterschiedliche
Vorzeichen haben, d.h. dass kleine Differenzen großer Größen
entstehen. Das wird dann aufgrund der Stellenauslöschung
übel.

Dieser Fall liegt im gegebenen Beispiel allerdings nicht vor.

von Bernd K. (prof7bit)


Lesenswert?

Karl K. schrieb:
> Wenn er das in einen µC drücken will, ist eine LOT sowieso besser, als
> zu versuchen das mit float über ein Polynom zu berechnen.

Auf dem Mikrocontroller rechnet man sowas sinnvollerweise mit Festkomma 
und Horner, das geht schneller, kostet weniger und ist genauer als LUT 
mit Interpolation.

: Bearbeitet durch User
von Udo S. (urschmitt)


Lesenswert?

Egon D. schrieb:
> Wer nicht nur rechnen kann, sondern eine gewisse mathematische
> Bildung hat,

Und wer dazu noch etwas praktische Intelligenz hat, nimmt eine Tabelle 
mit deutlich mehr Stützstellen und interpoliert entweder linear oder 
max. quadratisch :-)

Egon D. schrieb:
> sagt etwas über das mathematische Niveau hier.
http://www.klein-singen.de/statistik/t/Am_ue_santes/loewenfang.html

von Bernd K. (prof7bit)


Lesenswert?

Udo S. schrieb:
> Und wer dazu noch etwas praktische Intelligenz hat, nimmt eine Tabelle
> mit deutlich mehr Stützstellen und interpoliert entweder linear oder
> max. quadratisch :-)

Nur wenn er unnütze Rechenzeit, Stromverbrauch und Erwärmung zu 
verschenken hat. Und Arbeitszeit um diesen umständlichen Kram zu 
implementieren.

: Bearbeitet durch User
von Egon D. (Gast)


Lesenswert?

Udo S. schrieb:

> Egon D. schrieb:
>> Wer nicht nur rechnen kann, sondern eine gewisse
>> mathematische Bildung hat,
>
> Und wer dazu noch etwas praktische Intelligenz hat,
> nimmt eine Tabelle mit deutlich mehr Stützstellen
> und interpoliert entweder linear oder max.
> quadratisch :-)

Kann man machen, ja... finde ich aber etwas unschön.

Bei manchen Anwendungen will man eine stetige erste
Ableitung haben, was der Polygonzug nicht leistet.

Hängt aber davon ab, ob die Kiste schnell multiplizieren
kann oder nicht. Auf dem Z80 würde ich auch nicht
unbedingt ein kubisches Polynom verwenden... :)

von Yalu X. (yalu) (Moderator)


Lesenswert?

Egon D. schrieb:
> Yalu X. schrieb:
>
>> Solange die Koeffizienten in dem verwendeten Zahlenformat
>> (bspw. float oder double) darstellbar sind, ist das
>> überhaupt kein Problem.
>
> Das stimmt so nicht.
>
> Grundsätzlich kann auch der Fall eintreten, dass die
> einzelnen Summanden sehr groß werden, aber unterschiedliche
> Vorzeichen haben, d.h. dass kleine Differenzen großer Größen
> entstehen. Das wird dann aufgrund der Stellenauslöschung
> übel.

Dieses Problem hat man auch dann, wenn man die x-Werte herunterskaliert
und die Koeffizienten entsprechend anpasst. Die zu addierenden Summanden
sind nämlich exakt die gleichen. Gegen Auslöschungsfehler hilft übrigens
auch das Horner-Schema nicht.

von Udo S. (urschmitt)


Lesenswert?

Bernd K. schrieb:
> Nur wenn er unnütze Rechenzeit, Stromverbrauch und Erwärmung zu
> verschenken hat. Und Arbeitszeit um diesen umständlichen Kram zu
> implementieren.

Sorry Bernd, aber glaubst du wirklich mit deinem Polynom 5 oder auch 9 
Grades und den oben gezeigten Stützstellen genauer zu sein, als eine 
Tabelle mit z.B. 64 Werten und einer einfachen Interpolation?
Oder schneller, egal auf welchen Rechnersytem?
Oder einfacher bzgl Code?
Und selbst wenn "meine" Lösung 300 Bytes mehr brauchen sollte (was sie 
in 70% der Fälle nicht tut, weil man sich dann ggf. die 
Floatingpointbibliothek und evt noch mathematische Bibliotheken sparen 
kann) dann ist das völlig egal, weil man auf einem 32 Bitter genügend 
RAM hat, und euf einem 8 Bitter wieder zu wenig Rechenzeit um da mit 
Floats rumszuspielen.

von Dieter R. (drei)


Lesenswert?

Egon D. schrieb:

> Wer nicht nur rechnen kann, sondern eine gewisse mathematische
> Bildung hat, wertet ein Polynom mittels HORNER-Schema aus. Das
> macht die Sache sowohl schneller aus auch genauer.
>
> Dass das noch niemand vorgeschlagen hat, sagt etwas über das
> mathematische Niveau hier.

Frei von Herumätzerei, da ist was dran - aber es ist erst der zweite 
Schritt. Wer eine gewisse physikalische Bildung hat und ein gewisses 
praktisch-technisches Verständnis, klärt mit Hilfe des Datenblatts und 
im Wissen um die Messgenauigkeit, welche Art der Interpolation der 
Problemstellung, dem verwendeten Sensor und der Messgenauigkeit 
angemessen ist. Darauf wurde hier schon mehrfach herumgehackt, die 
Antwort ist der TO aber bisher schuldig geblieben.

Somit können wir nur raten, dass ein Polynom dritten Grades wohl "best 
guess" sein könnte. Wie man das denn errechnet, ob mit oder ohne Horner, 
ist je nach verwendetem Prozessor mehr oder weniger egal.

von Egon D. (Gast)


Lesenswert?

Yalu X. schrieb:

> Egon D. schrieb:
>> Yalu X. schrieb:
>>
>>> Solange die Koeffizienten in dem verwendeten Zahlenformat
>>> (bspw. float oder double) darstellbar sind, ist das
>>> überhaupt kein Problem.
>>
>> Das stimmt so nicht.
>>
>> Grundsätzlich kann auch der Fall eintreten, dass die
>> einzelnen Summanden sehr groß werden, aber unterschiedliche
>> Vorzeichen haben, d.h. dass kleine Differenzen großer Größen
>> entstehen. Das wird dann aufgrund der Stellenauslöschung
>> übel.
>
> Dieses Problem hat man auch dann, wenn [...]

Klar, kann sein.

Ich habe nur Deiner Aussage widersprechen wollen, dass es
überhaupt kein Problem gibt, solange die Koeffizienten im
verwendeten Zahlenformat darstellbar sind. Das scheint mir
nämlich angesichts der denkbaren Stellenauslöschung eine
steile These.

von Bernd K. (prof7bit)


Lesenswert?

Udo S. schrieb:
> Sorry Bernd, aber glaubst du wirklich mit deinem Polynom 5 oder auch 9
> Grades und den oben gezeigten Stützstellen genauer zu sein, als eine
> Tabelle mit z.B. 64 Werten und einer einfachen Interpolation?

9. Grades ist absurd. 5. Grades ist wahrscheinlich schon übertrieben, 
aber selbst wenn: 5 Multiplikationen, 5 Additionen, 5 Rechtsschifts.

Du: 6 Iterationen binäre Suche, dann Subtraktion, Division, 
Multiplikation, Addition. Wenn Du keine Hardware-Division hast brauchst 
Du 10 mal länger.

: Bearbeitet durch User
von Egon D. (Gast)


Lesenswert?

Udo S. schrieb:

> Bernd K. schrieb:
>> Nur wenn er unnütze Rechenzeit, Stromverbrauch und
>> Erwärmung zu verschenken hat. Und Arbeitszeit um
>> diesen umständlichen Kram zu implementieren.
>
> Sorry Bernd, aber glaubst du wirklich mit deinem
> Polynom 5 oder auch 9 Grades und den oben gezeigten
> Stützstellen genauer zu sein, als eine Tabelle mit
> z.B. 64 Werten und einer einfachen Interpolation?
> Oder schneller, egal auf welchen Rechnersytem?
> Oder einfacher bzgl Code?

So ganz verstehe ich Deine angefressene Reaktion nicht.

Polynomauswertung mittels Horner-Schema kostet für ein
Polynom 5. Grades fünf Multiplikationen, fünf Additionen,
Null Vergleiche und Null Sprünge (--> Fallunterscheidung).

Wenn die Kiste schnell multiplizieren kann, geht es kaum
schneller, einfacher und kompakter.

Man sollte diese Lösung also nicht von vornherein als
idiotisch abtun.

von Karl K. (karl2go)


Lesenswert?

Egon D. schrieb:
> Polynomauswertung mittels Horner-Schema kostet für ein
> Polynom 5. Grades

Dabei gehst Du aber davon aus, dass das ein Polynom ist oder durch eines 
5. Grades sinnvoll angenähert werden kann.

Da es keinerlei Aussage dazu gibt, weder wo die Werte herkommen (außer 
irgendwas mit Frequenz) noch wie genau die ermittelt sind, kannst Du da 
noch so gut Polynome an irgendwelche fehlerbehafteten Punkte anfitten, 
das bringt gar nix.

Z.B. ein NTC in Spannungsteiler-Schaltung ist irgendwas mit 1/x, 
logarithmisch und Offset. Da kannst Du mit Polynomen rumfitten bis Du 
schwarz wirst und wirst nicht glücklich damit, eine LOT mit Fittings 
alle 5 oder 10K erschlägt das aber locker.

von my2ct (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Für 9 Stützstellen brauchst du aber ein Polynom 8. Grades.

Das ist meist Quatsch. Lass die 9 Punkte bspw. Messpunkte von einer 
linearen Abhängigkeit sein. Dann brauchst du genau zwei freie Parameter. 
Der Rest ist least Square Fit.

von my2ct (Gast)


Lesenswert?

A. S. schrieb:
> Zu Anfang meiner Laufbahn hatte ich die Ehre, Geiger-Müller-Zählraten zu
> linearisieren. Mein Vorgänger hatte (weil einfach) auch Bereichsweise
> Polynome dritten Grades gewählt. Die Übergänge waren entsprechend
> grausig.

Dann hätte er sich vielleicht mal mit kubischen Splines beschäftigen 
sollen. Da pass das mit den Übergängen besser.

von Harald W. (wilhelms)


Lesenswert?

Axel S. schrieb:

>> Nun, Excel hat den Vorteil, das es das Polynom praktisch
>> auf Knopfdruck liefert, ohne das man gleich studierter
>> Mathematiker sein muss.
>
> Das ist nicht notwendig ein Vorteil.

Nun, wir hatten ein computerbetriebenes (ein PC war sozusagen
die Frontplatte) Meßgerät, das es erlaubte solche Polynome
einzutippen. Die Polynome mussten vorher durch Messungen mit
sehr vielen Stützstellen ermittelet werden. Da war der Weg
über Excel das einfachste. Die Meßwerte wurden vorher sowieso
über Excel gesammelt.

> Das Problem mit "Knopfdruck" Lösungsmachinen ist, daß sie dazu
> verleiten, Probleme von Leuten bearbeiten zu lassen, die dafür nicht
> qualifiziert sind

Nun, ich bin kein studierter Mathematiker aber als Ingenieur durchaus
gewöhnt, Diagramme zu erstellen und zu beurteilen.

und auch den größten Mist als Lösung akzeptieren,

> Ähnlich wie bei der Einführung von Taschenrechnern im Matheunterricht.

Nun, da habe ich es mir von vornherein angewöhnt, parallel eine 
Überschlagsrechnung im Kopf zu machen.

von A. S. (Gast)


Lesenswert?

my2ct schrieb:
> Dann hätte er sich vielleicht mal mit kubischen Splines beschäftigen
> sollen. Da pass das mit den Übergängen besser.

Wäre trotzdem genauso falsch. An den Übergängen sieht man es nur sofort.

Etwas falsches (wie hier vermutlich das Polynom 5ten Grades) wird doch 
nicht richtig, indem man offensichtliche  Fehler kaschiert. Wenn ein 
Zusammenhang linear ist, und ich 100 Messwertpaare hab, dann will ich LR 
und kein Perfektes Polynom100.

Ich hab noch mit kurvenlinealen gearbeitet. Bei allzu vielen Stellen 
beim ablesen fragte man nach, wer denn das Lineal geeicht habe.

von Dieter R. (drei)


Lesenswert?

A. S. schrieb:
> my2ct schrieb:
>> Dann hätte er sich vielleicht mal mit kubischen Splines beschäftigen
>> sollen. Da pass das mit den Übergängen besser.
>
> Wäre trotzdem genauso falsch. An den Übergängen sieht man es nur sofort.

Ach. Hier wurden ja schon mal mangelnde mathematische Kenntnisse 
bemängelt. Das scheint sich fortzusetzen. Warum schreibst du einen 
Kommentar zu kubischen Splines, wenn du offensichtlich gar nicht weißt, 
was das ist?

von A. S. (Gast)


Lesenswert?

Dieter R. schrieb:
> Warum schreibst du einen
> Kommentar zu kubischen Splines, wenn du offensichtlich gar nicht weißt,
> was das ist?

Und warum sollten kubische Splines für eine Funktion y=x/(1-x*t) 
irgendwie sinnvoll sein, nur weil sie die Übergänge besser kaschieren 
als Polynome? Die können ja nicht der Maßstab sein.

von Egon D. (Gast)


Lesenswert?

A. S. schrieb:

> Dieter R. schrieb:
>> Warum schreibst du einen Kommentar zu kubischen Splines,
>> wenn du offensichtlich gar nicht weißt, was das ist?
>
> Und warum sollten kubische Splines für eine Funktion
> y=x/(1-x*t) irgendwie sinnvoll sein,

Gegenfrage: Warum sollte IRGENDEINE beliebige Ersatzfunktion
sinnvoll sein -- man kann doch ebensogut die originale Funktion
berechnen, oder?! -- Nein, das kann man eben NICHT immer.


> nur weil sie die Übergänge besser kaschieren als Polynome?
> Die können ja nicht der Maßstab sein.

Splines SIND sachgerecht zusammengesetzte Polynomen und, JA!
Genau das ist der Maßstab -- dass "die Übergänge besser
kaschiert" sind. Wieso auch nicht?

von Rainer V. (a_zip)


Lesenswert?

Liebe Leute, neben dem (sicher interessanten) Problem, einen 
lächerlichen Haufen von Meßwerten zu interpolieren, bleibt doch die 
schon gestellte Frage: warum nicht mehr Meßpunkte und was sagt der 
Hersteller des Sensors (falls es sich um einen Solchen handeln sollte) 
?!
Und wann hätte man schon einmal ein Polinom 9ten Grades auf einem Proz 
realisiert :) Da rechnet sich schon mein PY auf einem gestandenen PC 
fast tot. Und mit Normierung auf meinetwegen 1 ist doch nichts gewonnen.
Gute Nacht, Rainer

von Karl K. (karl2go)


Lesenswert?

Egon D. schrieb:
> man kann doch ebensogut die originale Funktion
> berechnen, oder?! -- Nein, das kann man eben NICHT immer.

Man kann sich aber immerhin mal Gedanken drüber machen, welche 
physikalischen Zusammenhänge zwischen den Werten bestehen. Und wenn da - 
nicht in diesem Fall, aber allgemein - eine 1/x Anhängigkeit oder ein 
Logarithmus besteht, kannst Du noch soviele Polygone zusammenfassen, das 
wird nix.

Was zum Beispiel so bei obiger Funktion ein Polynom 5.Grades 
physikalisch rechtfertigen? Der meiste Kram läßt sich durch eine Parabel 
schonmal ganz gut annähern, und ich bin immer noch der Meinung, ohne 
Kenntnis wie genau die Werte ermittelt werden ist es sinnlos zu 
versuchen die Punkte möglichst genau zu treffen.

von Egon D. (Gast)


Lesenswert?

Karl K. schrieb:

> Egon D. schrieb:
>> man kann doch ebensogut die originale Funktion
>> berechnen, oder?! -- Nein, das kann man eben NICHT immer.
>
> Man kann sich aber immerhin mal Gedanken drüber machen,
> welche physikalischen Zusammenhänge zwischen den Werten
> bestehen.

Selbstverständlich.
Das ist immer gut.


> Und wenn da - nicht in diesem Fall, aber allgemein - eine
> 1/x Anhängigkeit oder ein Logarithmus besteht, kannst Du
> noch soviele Polygone zusammenfassen, das wird nix.

(Polygone == Polynome?)

Das stimmt so nicht.

Es ist richtig, dass sich Funktionen mit einer horizonalen
Asymptote nur mit Aufwand durch Polynome annähern lassen,
aber machbar ist es.
Darüberhinaus haben Polynome zahlreiche sehr angenehme
Eigenschaften.


> Was zum Beispiel so bei obiger Funktion ein Polynom 5.Grades
> physikalisch rechtfertigen?

Das ist nicht immer das Entscheidende.

Viele Steuerungsprobleme haben i.d.R. einen physikalischen,
einen mathematischen und einen rechentechnischen Aspekt.
Wenn man schnell multiplizieren, aber nur langsam durch eine
Variable dividieren kann, dann kann es aus rein rechen-
technischen Gründen sinnvoll sein, eine Polynomapproximation
zu verwenden -- es geht bei ausreichender Genauigkeit einfach
schneller.


> Der meiste Kram läßt sich durch eine Parabel schonmal
> ganz gut annähern, und ich bin immer  noch der Meinung,
> ohne Kenntnis wie genau die Werte  ermittelt werden ist
> es sinnlos zu versuchen die Punkte möglichst genau zu
> treffen.

Das kann gut sein -- aber das betrifft den physikalischen
Aspekt, nicht den rechentechnischen.

von Karl K. (karl2go)


Lesenswert?

Egon D. schrieb:
> Das kann gut sein -- aber das betrifft den physikalischen
> Aspekt, nicht den rechentechnischen.

Das erinnert aber bißchen an die Leute im Elektrotechnik-Praktikum, die 
ihre Messwerte von der Entladekurve eines Kondensators mit einem Polynom 
x-ten Grades annähern wollten. Rechentechnisch sicher bewundernswert, 
physikalisch leider Quatsch.

von A. S. (Gast)


Lesenswert?

Egon D. schrieb:
> Nein, das kann man eben NICHT immer.

In diesem teilthread mit den splines ging es doch genau darum dass die 
zugrunde liegende Funktion (x/(1-xt)) bekannt ist bzw. erkannt hätte 
werden können. Dann ist so ein Rat Quatsch:

my2ct schrieb:
> Dann hätte er sich vielleicht mal mit kubischen Splines beschäftigen
> sollen. Da pass das mit den Übergängen besser.

Das ist genauso unsinnig wie Karls Beispiel:

Karl K. schrieb:
> Entladekurve eines Kondensators mit einem Polynom x-ten Grades annähern wollten

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Ich habe sie jetzt nicht bei Hand, aber es gibt ne Website die gängige 
Protoformeln auf die gegebenen Meßpunkte in steigender Komplexität und 
Grad anwendet und R dazu ausgibt. Das erschlägt eigentlich alles.

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.