Funktion anhand gegebener Werte herleiten?
-
[ThePro] schrieb:
Meine Berechnungen stimmen.
Wenn die Berechnungen korrekt sind und die Ergebnisse trotzdem nicht zu den Werten passen, lässt das nur einen Schluß zu: Du bist von den falschen Voraussetzungen ausgegangen (im Klartext - auch wenn es so aussieht, ist das keine (exakte) quadratische Parabel).
Da du sowieso schon mit Excel arbeitest, lass dir doch mal die Trendlinie(n) in das Diagramm einzeichnen und vergleich' mal, wie gut die sich an die Daten anpassen lassen.
-
Nunja, vielleicht ist der wahre Zusammenhang ein quadratischer. Du hast aber offenbar Messwerte, die immer fehlerbehaftet sind. Wenn du dir jetzt drei Messwerte rauspickst und annimmst, sie seien exakt, kannst da natürlich eine Parabel durchlegen. (Ich vermute, so hast du es gemacht. Du hältst dich da leider etwas bedeckt.) Dass die anderen Messwerte dann nicht auf eben dieser liegen, ist ja ganz klar, da sie eben Fehlerbehaftet sind.
Man kann aber eine parabel so durchlegen, dass der Abstand zu den Messwerten minimal. Das Verfahren wird hier beschrieben:
http://de.wikipedia.org/wiki/Methode_der_kleinsten_Fehlerquadrate
Das freie Programm GNUPlot müsste diesen Algorithmus eingebaut haben. (Was anderes macht Excel vermutlich auch nicht.)
Ich selbst habe für meine Facharbeit ein Programm dazu geschrieben. Ich komme auf
f(x) = a(0) + a(1)*x + a(2)*x^2
mit
a(0) = 853.490909090909
a(1) = -166.104545454545
a(2) = 16.0681818181818Die hat eine Standardabweichung von 11. Eine Exponentialfunktion hätte 39, ist also viel schlechter.
Besser als die Parabel passt aber eine Funktion 3. Grades:
f(x) = a(0) + a(1)*x + a(2)*x^2 + a(3)*x^3
mit
a(0) = -326.509090909252
a(1) = 136.628787878829
a(2) = -8.93181818182159
a(3) = 0.666666666666758Standardabweichung ist kleiner als 1. Je höher das Grad des Polynoms, desto besser passt sich die Kurve den Messwerten an. Das Polynom 9. Grades (für 10 Messwerte) sieht erstaunlich gut aus, das heißt jeder Punkt liegt exakt auf der Kurve, ohne dass sie sich zwischen den Messwerten irgendwie "unvernünftig" verhält.
Ist halt die Frage, was du willst und was am besten zu deinem Problem passt.
-
Ich denke mal, dass es irgendwann nicht mehr weiter ausbaubar ist. Man könnte es ja auch mal mit der logistischen Funktion versuchen?!
-
Ich glaube kaum, dass in einem Browsergame für eine solche Kleinigkeit ein Polynom 9. Grades impementiert ist. Und dass es auf alle 10 Werte passt ist doch ganz einfach Zufall, das wird sicher oft so sein.
-
Zufall ist das nicht. Ein Polynom 9. Grades hat 10 Koeffizienten, die man aus den 10 Nebenbedingungen berechnen kann. Allgemein kann ich durch n Punkte ein Polynom (n-1)ten Grades durchlegen, sodass jeder Punkt exakt auf der Kurve liegt.
Sicher wird das aber nicht die tatsächliche Funktion sein. Wahrscheinlich ist es wirklich ein quadratischer Zusammenhang. Die Ungenauigkeiten ergeben sich dann aus Rundungsfehlern oder die Entwickler haben zufällige Schwankungen eingebaut.
-
Ein Polynom n. Grades lässt sich immer so wählen, dass es auf n+1 gegebene Stützstellen exakt passt. Das Problem ist aber, dass man bei höheren Graden schnell eine äußerst schlechte Approximation erhalten kann, Stichwort "Runges Phänomen".
-
Achja, die Minen lassen sich Maximal bis 100 ausbauen. (Was in der Praxis nahezu unmöglich ist, da zu teuer)
Der Definitionsbereich liegt also zwischen 1 und 100.
Ob Stufe 0 nach der Formel tatsächlich 0 Metall fördert, kann ich nicht sicher sagen, da es auch vom Script als Ausnahme behandelt werden könnte, daher 1 bis 100.
Mir geht es in erster Linie ums Vorausberechnen der Produktion des nächsten Levels, ob sich Lohnt etc.Zu dem Spiel existiert eine Anleitung, wo ich folgende Formel für die Baukosten der Mine finden konnte: x = 60*1,5^(n-1)
n ist Dabei die Ausbaustufe, und x die Kosten an Metall.
http://spacepedia.space-pioneers.net/de/index.php/MetallmineMöglicherweise wird für den Minenertrag die selbe Formel benutzt. Leider weiß ich nicht, wie ich solch eine Formel mit dem Gauss herleiten könnte. Vielleicht mit nem logarithmus?
Die gesucht Formel könnte also heißen: f(n)=a*b^n oder f(n)=a*b^(n-1)
-
naja. Ich denke auch dass es eine Exponentialfunmtion ist.
So kann man es machen:
geg: eine Formel mit f(x) = a * b^(x) P1(8/537) Stufe 8, produktion 537 P2(8/665) ==> 537 = a * b^8 665 = a * b^9 jetzt kannste mit bekannten lösungsverfahren lösen.
hoff hab mich in dem problemn ncih getäuscht
-
Wie schon gesagt: Eine Parabel passt viel besser als eine Exponentialfunktion durch diese Stützpunkte. Die durchschnittliche Abweichung ist viel kleiner.
-
Schonmal überlegt, dass die entwickler am anfang eine Parabel nahmen und dann die Werte abgeändert haben, wegen balancing?