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).
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...
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 |
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
Ah, vergessen, das Fitergebnis für den Skalierungsfaktor ist 0.742204 +/- 0.008316 (oder +/- 1.12%). 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
Vielen Dank an Kai - hab' ich doch auch wieder was gelernt...
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
Was ist das denn für eine Materialeigenschaft?
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
Die Abweichung ist ja weniger als 0,4%. Da waren die drei Messungen (rote Punkte) wahrscheinlich deutlich ungenauer.
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? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.