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
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).
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
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.
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
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
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
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
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
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
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?
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
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