Aus Werten eine Formel "ermitteln"...
-
TigerWoods schrieb:
Gibt es dafür spezielle Programme ...
Ja, z. B. SPSS. Allerdings funktioniert es nicht so, daß du die Werte eingibst und das Programm die fertige Formel liefert. Man muß eine Ansatzfunktion angeben und SPSS berechnet die Koeffizienten, sodaß die Summe der Fehlerquadrate minimal wird.
-
mathematica kann das. vielleicht auch andere mathe-algebra-systeme?
-
borg schrieb:
mathematica kann das. vielleicht auch andere mathe-algebra-systeme?
wie bitteschön möchte ein Prg. abschätzen was die Vorgabewerte bedeuten?
wie soll es eine Formel finden?
es kann ja nur annehmen das es sich vllt um ein Polynom handelt und sich zu n Werten das voll bestimmte Polynom Grad(n-1) rechnen.
aber was ist wenn:
a - die Anfangsgeschwindigkeit
b - die Beschleunigung
c - der Luftwiederstand
d - die Gefahrende Strecke
und das Ergäbniss die Umgefahrnen Zuschauer auf der Teststrecke sind?
ohne Startfunktion geht das irgendwie nicht richtig.
-
Danke schon mal für die bisherigen Tips..;)
Also es ist sicher, dass von den Werten alle verwendet wurden um auf das Ergebnis zu kommen.
Das Ergebnis besteht folglich auch nur aus diesen Werten...
Gibt es da nicht eventuell eine Möglichkeit per "Such-verfahren"
draufzukommen...
Das Programm muss ja eigentlich nur alle Möglichkeiten durchgehen, bis eine sehr geringe Fehlerquote (oder gar keine) vorkommt...
z.B erst 0.9*a*b*c*d
dann 0.8*a*b*c*d
dann 0.4*a/b*2c/d
usw...Das ist manuell natürlich unmöglich (wegen Tausenden\Millionen von Möglickeiten)
Aber ein schneller Rechner müsste da doch schnell vorwärtskommen...oder?
-
stell dir doch einfach mal vor:
I.
geg: ein X mit zugehörigen Y
daraus kann man sich ein lineares GlS baun
Y=aX; was durch die gegebenen Werte voll bestimmt ist
II.
geg: X1,X2 und Y1,Y2
wiederum kann man daraus ein Polynom ansetzen
Y=aX+b
=>
A:Y1=aX1+b
B:Y2=aX2+b
A-B:
Y1-Y2=a(X1-X2)
a=(Y1-Y2)/(X1-X2)
b dann durch einsetzenIm allgemeinen gild das man aus n gegebenen Werten ein Polynom vom grad(n-1) vollständig bestimmen kann.
Diese Polynom geht dan exakt durch die angegebenen Stützstellen.
nur hätte man in II auch ein anderen Ansatz wählen können.
Y=sin(X)*s+cos(X)*b könnte sowas sein.
-
b7f7: Das geht IMHO am Thema vorbei. Der Fall hier ist, dass man deutlich mehr Messwerte als Unbekannte hat, also in meinen Augen ein (nicht)lineares Ausgleichsproblem. Der OP sollte also mal überlegen, wie sich die Werte ungefähr zustande kommen, damit man einen geeigneten Ansatz finden kann. Ohne Kontext können wir leider nur spekulieren.
-
b7f7 schrieb:
borg schrieb:
mathematica kann das. vielleicht auch andere mathe-algebra-systeme?
wie bitteschön möchte ein Prg. abschätzen was die Vorgabewerte bedeuten?
wie soll es eine Formel finden?kA wie es das macht, aber es funktioniert. wenn ich matheamtica folgendes gebe:
data={{1,3},{2,10},{3,21},{4,36},{5,55},{6,78},{7,105}} func=Fit[data,{x,x^2},x]
dann gibt es mir als ausgabe
1*x+2*x^2
was genau richtg ist.
wenn ich sage
func=Fit[data,{x,x^3,Sin[x]},x]
findet er
5.34684*x+0.204064*x^3-2.88585*Sin[x]
sieht zwar nicht so schön aus, liefert aber trotzdem werte die erst in den nachkommastellen falsch sind.
wenn ich also fast keine vorstellung von der funktion habe die hinter den werten stecken könnte mache ich doch einfach:
func=Fit[data,{x,x^2,x^3,x^4,x^5,x^6,x^7,Sin[x],Cos[x],...},x]
und siehe da, er findet
1*x+2*x^2 +0*x^3+0*x^4+...
wenn also eine mathematische funktion hinter den werten steckt, und es keine zufallswerte oder ähnliches sind kann ein programm so eine formel schon finden.
-
Zu jeder Menge von Messwerten gibt es beliebig viele Funktionen, die diese annehmen. Deshalb kann man hier gar nicht vernünftig herangehen ohne die Art der Ergebnisfunktion einzuschränken.
-
Danke für den Tip!
Jedoch ist das Problem, dass das Ergebnis ja nicht nur von einer Variable abhängt (x) sondern von vier (a,b,c,d)...
Also kann die Formel nicht z.B x^2+3x sein sondern beispielsweise:
a*b+3c-4dKann man sowas auch mit Mathematica lösen..?
-
TigerWoods schrieb:
Danke für den Tip!
Jedoch ist das Problem, dass das Ergebnis ja nicht nur von einer Variable abhängt (x) sondern von vier (a,b,c,d)...
Also kann die Formel nicht z.B x^2+3x sein sondern beispielsweise:
a*b+3c-4dKann man sowas auch mit Mathematica lösen..?
klar
data={{1,2,3,4,5},{1,2,3,5,6},...} func=Fit[data,{a,b,c,d,a*b,a*c,a*d,b*c,b*d,c*d,...},{a,b,c,d}]
aber wenn du wirklich keine ahnung hast wie die funktion aussehen könnte, wirst du nur nicht-triviale lösungen finden, welche auch nur annähernd die richtigen werte liefern.
also du solltest schon wissen ob irgend etwas trigonometrisches gerechnet wird oder ob polynome addiert werden oder sonst ein anhaltspunkt. sonst wirds nix.