Forum: Offtopic Quadratische Funktion anders skalieren, so dass Abweichung minimal wird?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Sarah E. (meneymaus)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich untersuche derzeit einen bestimmten Kupfertyp (Cu-HCP) zu dem ich 
nicht alle temperaturabhängigen Eigenschaften besitze. Teilweise sind 
nur Eigenschaften bei Raumtemperatur bekannt.

Nun habe ich Daten aus dem CRC-Handbook für Kupfer. Hierbei gibt es 
allerdings Abweichungen zu dem Kupfertyp Cu-HCP.

Daher ist nun mein Ansatz gewesen, die CRC-Kurve darzustellen und diese 
dann herunterzuskalieren mit einem Skalierungsfaktor, sodass die Kurve 
gut passt für das Cu-HCP.

Wie kann ich nun berechnen, welcher Skalierungsfaktor optimal ist?

Beigefügt ist nun eine fiktive Kurve CRC-Handbook und fiktive Werte von 
CU-HCP.

Weiß jemand, wie man nun die CRC-Kurve herunterskaliert, sodass sie für 
die CU-HCP-Werte optimal passt oder schlägt sonst vielleicht jemand 
einen anderen Ansatz vor?


LG Sarah

von Vorn N. (eprofi)


Bewertung
0 lesenswert
nicht lesenswert
Naja, mit nur zwei gegebenen Punkten ist das schon gewagt.
Ich habe mal zwei weitere angenommen (1:10 und 3:40) und bin auf 
5x^2-5x+10 gekommen (zweiter Wert):
1
0:   2   10    2
2
1:  10   10    7
3
2:  28   20   20
4
3:  56   40   41
5
4:  94   70   70
6
5: 142  110  107
7
6: 200  160  152
8
7: 268  220  205
Wenn man annimmt, dass sich beide bei x=0 (y=2) schneiden, dann ist
y = 4x^2+x+2 (dritter Wert in der obigen Tabelle).

von Matthias L. (limbachnet)


Bewertung
0 lesenswert
nicht lesenswert
Google mal nach "Regressionsanalyse", Kurventyp quadratisch, dann 
findest du u.a. dieses PDF: 
https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwj69ufY9tjUAhUL2BoKHVFVClkQFggiMAA&url=http%3A%2F%2Fwww.stksachs.uni-leipzig.de%2Ftl_files%2Fmedia%2Fpdf%2Flehrbuecher%2Finformatik%2FRegressionsanalyse.pdf&usg=AFQjCNEFXMrOmni7SstxCvRz43YFobZSGQ

Da sind auch drei Formeln drin, mit denen du die Koeffizienten bestimmen 
kannst - aber zwei Punkte sind als Ausgangsmaterial für einen 
nichtlinearen Zusammenhang ein bisschen dünne...

von Kai S. (kai1986)


Bewertung
2 lesenswert
nicht lesenswert
Hallo,

was du suchst nennt sich Ausgleichsrechnung oder denglisch fitten. 
GNUplot ist ein kleines Programm, was das gut und einfach kann. Du gibts 
die Datenpunkte und die Funktion an und sagst ihm, welche Parameter in 
der Funktion es optimieren soll.

Gruß Kai

von Pandur S. (jetztnicht)


Bewertung
1 lesenswert
nicht lesenswert
Das Stichwort hier heisst Approximation. Im Gegensatz zur Interpolation, 
wo die Kurve durch die Punkte gehen muss. Approximation bedeutet die 
Kurve geht in der Naehe durch, sodass der fehler minimal ist. Dadurch 
benoetigt man ein ueberbestimmtes Gleichungssystem, dh einiges mehr an 
Punkten als die Kurve bestimmt ist.
Also "quadratische Approximation", bevor das Internet leergesucht ist.

von Sarah E. (meneymaus)


Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antworten!

Mit der Regressionsanalyse und speziell diesem Dokument habe ich mich 
schon auseinandergesetzt und auch die Herleitung der drei Koeffizienten 
a, b,c von ax²+bx+c verstanden. Allerdings weiß ich nicht, inwieweit mir 
dies hier behilflich sein kann.

Ich habe nun nach der "quadratischen Approximation" gegoogelt und 
folgende Seite gefunden:
http://www.math.uzh.ch/?file&key1=18422

Aber inwieweit kann ich mit diesem Ansatz das Problem lösen? Ich suche 
ja praktisch den richtigen Skalierungsfaktor, mit dem ich jeden Wert der 
crc-Kurve multiplizieren soll, damit diese die geringste Abweichung von 
den Cu-HCP Werten besitzt.

LG Sarah

von Kai S. (kai1986)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Da das fitten von Daten per fertiger Software (GNUplot) schwierig zu 
sein scheint hier mal das Problem aufgearbeitet. In der Datei fit.plt 
muss entsprechend der Dateipfad auf den Ort der "Daten.txt" Datei 
abgeändert werden. Wenn der Zusammenhang der beiden Kurven ein anderer 
als eine reine Skalierung ist muss die zu fittende Funktion natürlich 
entsprechend angepasst werden.


Wer keine Lust hat fit.plt runter zu laden, hier der Inhalt der Datei:
1
# Das Zeichen # makierte eine Zeile als Kommentar und wird somit von GNUplot ignoiert
2
3
#Achsenskalierung
4
set autoscale
5
#set xrange[0:8]
6
#set yrange[0:300]
7
8
#Pfad und Dateiname der Datenpunkte
9
daten = 'C:\Users\Kai\Documents\Daten.txt'
10
11
#Schätzwert für den Parameter, von dem aus angefangen wird zu optimieren
12
a = 5
13
b = 3
14
c = 2
15
skalierungsfaktor = 0.5
16
17
#Definition der verwendeten funktionen
18
f(x) = a*x**2+b*x+c
19
g(x) = skalierungsfaktor*f(x)
20
21
22
#Fitvorgang, mit Angabe der Funktion, der Daten und der zu optimierenden Parameter
23
#fit f(x) daten using 1:2 via a,b,c
24
fit g(x) daten using 1:3 via skalierungsfaktor
25
26
plot daten using 1:2 lc rgb "#0000FF", f(x) lc rgb "#0000FF", daten using 1:3 lc rgb "#FF0000", g(x) lc rgb "#FF0000"



Matthias L. schrieb:
> aber zwei Punkte sind als Ausgangsmaterial für einen
> nichtlinearen Zusammenhang ein bisschen dünne...

Für den kompletten Zusammenhang ja, wenn allerdings wirklich nur ein 
einziger Faktor ermittelt werden soll sind zwei Datenpunkt machbar, wenn 
keine Messunsicherheiten angenommen werden. Wobei ich bezweifel, das 
wirklich ein Skalierungsfaktor gesucht ist, eher sollen die drei 
Faktoren der quadratischen Gleichung neu bestimmt werden. Deshalb habe 
ich die komplette Parameterbestimmung im Beispielcode mit dabei.

Gruß Kai

von Purzel H. (hacky)


Bewertung
0 lesenswert
nicht lesenswert
Allenfalls mal reinschauen : http://www.ibrtses.com/delphi/polyfit.html

von Kai S. (kai1986)


Bewertung
1 lesenswert
nicht lesenswert
Ah, vergessen, das Fitergebnis für den Skalierungsfaktor ist 0.742204 
+/- 0.008316 (oder +/- 1.12%).

Gruß Kai

von Sarah E. (meneymaus)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Kai,

der Wert von 0,74 würde sehr gut bei dem Beispiel passen und scheint die 
Aufgabe zu lösen.

Ich würde aber gerne das Prinzip dahinter besser verstehen und die 
Optimierung mal von Hand durchführen.

Daher wäre mein Ansatz, mal einen Skalierungsfaktor auszuprobieren (wie 
bei dir der Faktor 0,5) und dann berechne ich damit die 
Standardabweichung. Anschließend probiere ich weitere 
Skalierungsfaktoren und der Faktor, wo die Standardabweichung am 
geringsten ist, bietet mit die am besten passende Kurve.

Kann man das so sagen?


LG Sarah

von Kai S. (kai1986)


Bewertung
1 lesenswert
nicht lesenswert
Vereinfacht nimmt man die die Funktion mit den geschätzten 
Startparametern und rechnet ihren Wert für alle Stützstellen 
(x-Koordinaten) die man hat aus und bildet jeweils die Differenz zu den 
Messwerten. Die Abweichung wird quadriert und aufsummiert (Stichworte: 
Ausgleichsrechnugn, Least-Squares-Fit, quadratische Ausgleichsrechnung). 
Danach wird einer der Parameter verändert und wieder die quadratische 
Abweichung ausgerechnet. Wird die Zahl kleiner, da wurde der Parameter 
"korrekt" verändert, wird sie größer, war die Veränderung "falsch".
Zur Veränderung des Parameter gibt es diverse Methoden (Gardient decent, 
Newton, Gauss-Newton, Levenberg, Marquard-Levenberg). Die 
Levenberg-Marquard-Methode (im Englischen wird die Reihenfolge der Namen 
vertauscht) ist dabei eine sehr ausgefeilte Methode, die schnell ein 
sehr gutes Ergebnis liefert.

Ein gutes Buch dazu ist "Measurements and their Uncertainties" von Ifan 
G. Hughes & Thomas P. A. Hase.
Alternativ wird die Ausgleichrechnung auch oft in Tutorial von GNUplot 
und Co erklärt, wobei da der Schwerpunkt eher auf der Programmbedienung 
liegt als auf der dahinterstehenden mathematischen Theorie (die gar 
nicht so ohne ist).

Gruß Kai

von Matthias L. (limbachnet)


Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank an Kai - hab' ich doch auch wieder was gelernt...

von Sarah E. (meneymaus)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Kai,

vielen Dank für die Informationen!

Deine Erklärung ist klar verständlich und ich habe mich mal per Hand 
iterativ dem Wert genähert und es funktioniert so wie du sagst.

Ich werde das ganze mal mit einem Programm iterativ nähern über 
Bisektion und denke, das sollte so ganz gut funktionieren.

Insgesamt ist das, denke ich, der beste Ansatz wenn unzureichende 
Materialparameter vorhanden bzw. besser als wenn man die Daten von 
normalem Kupfer aus dem CRC-Handbook nimmt geschwige denn nur mit den 
Vorhandenen arbeitet.

Danke nochmal für die ausführliche Erklärung, hat mir sehr weiter 
geholfen :-)


LG Sarah

von Uhu U. (uhu)


Bewertung
0 lesenswert
nicht lesenswert
Was ist das denn für eine Materialeigenschaft?

von Yalu X. (yalu) (Moderator)


Bewertung
0 lesenswert
nicht lesenswert
Wobei du dich natürlich fragen müsstest, ob und warum eine Skalierung in
y-Richtung tatsächlich zum gesuchten Ergebnis führt. Warum nicht eine
Skalierung in x-Richtung? Oder eine Verschiebung in y- oder x-Richtung?
Oder vielleicht sogar eine Kombination aus mehreren davon? Ist überhaupt
eine Parabel die richtige Näherungsfunktion? Oder passt die zufällig bei
dem im CRC-Handbook beschriebenen Kupfertyp ganz gut, bei deinem Cu-HCP
aber nicht?

Auf der anderen Seite beschreibt die von dir gefundene Funktion 5x²+3x+2
die Materialeigenschaft vermutlich nicht sehr genau, da die Koeffizenten
sonst mit hoher Wahrscheinlichkeit mindestens eine Nachkommastelle
hätten. Deswegen ist wahrscheinlich jede Funktion, die ungefähr durch
die beiden Messpunkte verläuft und visuell einen ähnlichen Verlauf wie
die Originalfunktion aufweist, nicht viel ungenauer als diese.

Den Bereich der Kurve im rechten Bereich (für x>6) würde ich trotzdem
mit großer Vorsicht betrachten. Gut wäre es, wenn du mittels einer
Messungen für diesen Bereich noch einen dritten Messpunkt bestimmem
könntest.

Nur so aus Interesse: Um welche Materialeigenschaft geht es hier?

von Sarah E. (meneymaus)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die Kurven aus dem Beispiel waren fiktiv, damit ich das Prinzip dahinter 
verstehe und keine echten Kurven nehmen wollte, wo man den Unterschied 
nicht so gut erkennt.

Die Materialeigenschaft die ich meine ist die spez. Wärmekapazität.

Beigefügt ist nun ein Diagramm mit den Werten aus dem CRC-Handbook, vom 
Cu-HTP Datenblatt und die genäherte Funktion durch das Verfahren mit der 
quadratischen Ausgleichsrechnung. Die Materialeigenschaft ist die spez. 
Wärmekapazität.

Wie ihr seht ändert sich fast nichts, ob man nun die Kurve in 
X-Richtung, Y-Richtung verschieben oder skalieren würde. Aber es wäre 
schon sinnvoll einen vernünftigen, begründbaren Ansatz zu haben.
Bei der Verschiebung sehe ich das Problem, dass wenn man angenommen, 
eine sehr kleine Wärmekapazität hat, dann wäre bei der Verschiebung 
diese verhältnismäßig zu klein oder könnte sogar negativ werden. Daher 
denke ich, wäre hier eine Skalierung sinnvoller.
Man könnte natürlich auch in X-Richtung skalieren aber das erscheint mir 
irgendwie ungewöhnlich.

Wäre evtl. eine Skalierung in X- und Y-Richtung ein besserer Ansatz als 
nur in Y-Richtung?


LG Sarah

von Yalu X. (yalu) (Moderator)


Bewertung
0 lesenswert
nicht lesenswert
Die Abweichung ist ja weniger als 0,4%. Da waren die drei Messungen
(rote Punkte) wahrscheinlich deutlich ungenauer.

von Sarah E. (meneymaus)


Bewertung
0 lesenswert
nicht lesenswert
Ja, die Abweichung ist in der Tat sehr gering.

Bei der Wärmeleitfähigkeit habe ich sogar nur einen Datenblattwert bei 
20 °C. Dort skaliere ich die Kurve auch entsprechend runter, wobei ich 
hier keine iterative Methode starten muss, sondern sie direkt durch den 
Wert gehen lassen kann.

Auch wenn die Abweichung so gering ist und ein Verschieben/Skalieren nur 
wenig am Ergebnis ändert, würde ich trotzdem gerne ein möglichst gutes 
Verfahren einsetzen, falls ich mal ein anderes Material habe, wo die 
Abweichungen etwas größer sind.

Ist in dem Fall die Skaliermethode in Y-Richtung und bei mehreren 
vorhandenen Datenblattwerten der Einsatz der quadratischen 
Ausgleichsrechnung vernünftig oder wäre eine andere Methode eher 
vorzuziehen?


LG Sarah

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, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.