Das ist so einfach ja noch nicht. Das ist ein Problem für Mathematiker .
Solange man die Gleichung nicht explizit nach x oder y auflösen kann (was
ja zumindest annäherungsweise durch Reihenentwicklung möglich sein könnte –
ich habe es mir nicht angesehen) , kann man NonlinearMidelFit nicht
einsetzen.
Eine Methode kann man vielleicht ausprobieren:
Statt x und y geht man aus von x, y, z
Wobei z(x,y) = a*(Exp[K1*(x-y*b) ] )+c*(Exp[K2*(x-y*b) ] )+((x-y*d)) - y
Als gemessenen Wert von z könnte man einfach 0 setzen (man hat also die
Messwerte (...(xi, yi, 0), ...)
Probiers mal !
Am 10.02.10 16:18 schrieb "Markus Karwot" unter <mkarwot@XXXXXXX.com>:
> Genau, so hab ich es mir gedacht. Habe es wohl zu umständlich erklärt.
> Können Sie mir helfen und sagen was ich in Mathematica eingeben muss damit
> FindFit() oder nonLinearModelFit() funktioniert??
> Die Gleichung soll irgendwelche Elektronischen Effekte wiederspiegeln. Da aber
> noch viele Sachen ausprobiert werden, kann ich da leider nicht mehr sagen :(
>
> Grüße
> Markus
>
> Am 10. Februar 2010 15:53 schrieb mathemas ordinate <info@XXXXXXX.de>:
>> Na dann wird die Kurve wohl durch die gleichung
>>
>> y= a*(Exp[K1*(x-y*b) ] )+c*(Exp[K2*(x-y*b) ] )+((x-y*d))
>>
>> bestimmt sein
>>
>> Oder was sollte sonst f(x) auf der linken Seite ?
>>
>> Was steckt denn hinter der Gleichung ?
>>
>>
>> Am 10.02.10 15:47 schrieb "Markus Karwot" unter <mkarwot@XXXXXXX.com
>> <http://mkarwot@XXXXXXX.com> >:
>>
>>>
>>> Hallo,
>>>
>>>
>>> Meine Punktwolke besteht aus den Messwerten {{x1, y1},..{xn,yn}}. Diese
>>> Werte bewegen sich von den 3ten Quadranten in den 4ten Quadranten. z.B. von
>>> x=-5 bis x=5 mit einem Abstand von 0,1 zueinander.
>>>
>>>> > Fitten heisst ja, man passt eine Kurve an eine Punktewolke an .
>>> So hab ich das auch verstanden, bin noch neu auf dem Gebiet. Ich hab die
>>> Wertepaare oder die Punktwolke und versuche ein Kurve zu finden die "ideal"
>>> durch die Punkte durchgeht. Nur suche ich kein Polynom, sondern habe schon
>>> eine Funktion gegeben. Wenn die unbekannten Parameter "richtig" gesetzt
>>> werden, bekomme ich für jeden x-Werte den gesuchten y-Wert und somit meine
>>> Kurve.
>>>
>>>
>>> Grüße
>>> Markus
>>>
>>>
>>> Am 10. Februar 2010 15:02 schrieb mathemas ordinate <info@XXXXXXX.de
>>> <http://info@XXXXXXX.de> >:
>>>> Hallo
>>>>
>>>> Und was soll f(x) dann sein ?
>>>>
>>>> Fitten heisst ja, man passt eine Kurve an eine Punktewolke an .
>>>>
>>>> Die Punktewolke besteht in der Regel aus Punkten mit Koordinaten wie
>>>> (x,y)-Werten (wobei man annimt y ist eine Funktion von x) oder
>>>> (x,y,z)-Werten (wobei man annimt z ist eine Funktion von x und y)
>>>>
>>>> oder allgemein (x1, x2, ..,xn,f(x1,x2,...,xn))
>>>>
>>>> Wie lautet also die Punktewolke in ihrem Fall
>>>>
>>>> Gruss Carsten Herrmann
>>>>
>>>> Am 10.02.10 12:51 schrieb "Markus Karwot" unter <mkarwot@XXXXXXX.com
>>>> <http://mkarwot@XXXXXXX.com> <http://mkarwot@XXXXXXX.com> >:
>>>>
>>>>> Hallo,
>>>>>
>>>>> ja, der Strom wird in der y-Achse und die Spannung in der x-Achse
>>>>> gezeichnet.
>>>>> f(x) = a*(Exp[K1*(x-y*b) ] )+c*(Exp[K2*(x-y*b) ] )+((x-y*d)).
>>>>> K1 und K2 sind zwei feste Konstanten. a, b, c und d die unbekannten, die
>>>>> gefittet werden sollen.
>>>>>
>>>>> Gruß
>>>>> Markus
>>>>>
>>>>> Am 10. Februar 2010 11:56 schrieb mathemas ordinate <info@XXXXXXX.de
>>>>> <http://info@XXXXXXX.de> <http://info@XXXXXXX.de> >:
>>>>>> Hallo,
>>>>>>
>>>>>> Was sind denn die x – Werte (die Spannung?)
>>>>>>
>>>>>> Was sind denn die y – Werte (der Strom) ?
>>>>>>
>>>>>> Was ist denn f(x) ?
>>>>>>
>>>>>> Gruss Carsten
>>>>>>
>>>>>> PS:
>>>>>> Es geht hier etwas durchaeinander: einerseits sagst du
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Am 10.02.10 11:48 schrieb "Markus Karwot" unter <mkarwot@XXXXXXX.com
>>>>>> <http://mkarwot@XXXXXXX.com> <http://mkarwot@XXXXXXX.com>
>>>>>> <http://mkarwot@XXXXXXX.com> >:
>>>>>>
>>>>>>> Hallo,
>>>>>>>
>>>>>>> wir haben ein Messstand. Da wird eine Spannung eingestellt und dazu der
>>>>>>> Strom gemessen (x, y). Zum Schluss kommt eine beliebige Anzahl von
>>>>>>> wertepaaren heraus. Die x-Werte sind (relativ) genau aber die y-Werte
>>>>>>> schwanken sehr. Durch den Fit der Funktion mit den gemessenen (x,y)
>>>>>>> Daten, soll ein genauerer y errechnet werden können. Dazu werden aber
>>>>>>> auch die Parameter benötigt. Dies sollen ebenfalls durch den Fit
>>>>>>> herauskommen.
>>>>>>> Um den Fit zu vereinfachen, könnte dieser mit groben Startwerten
>>>>>>> beginnen.
>>>>>>> Die Funktion wurde mir so übergeben. Da kann ich auch nicht mehr sagen
>>>>>>> :(
>>>>>>> Wird es jetzt einwenig verständlicher ??
>>>>>>>
>>>>>>> Grüße
>>>>>>> Markus
>>>>>>>
>>>>>>>
>>>>>>> Am 8. Februar 2010 10:51 schrieb mathemas ordinate <info@XXXXXXX.de
>>>>>>> <http://info@XXXXXXX.de> <http://info@XXXXXXX.de>
>>>>>>> <http://info@XXXXXXX.de> >:
Hallo
So bleibt es ja so unklar wie bisher
Was soll denn überhaupt gemacht werden ?
Man kann die a , b, c, d nicht berechnen, weil ja die grösse f unbekannt
ist.
Die normale aufgabe lautet : man hat werte für x,y, f(x,y) und will die a,
b, c, d finden für eine gute anpassung von
f(x,y )=a*(Exp[K1*(x-y*b) ] )+c*(Exp[K2*(x-y*b) ] )+((x-y*d))
Man könnte sicher auch lösen:
Man hat Werte für x, y, f(x) und sucht die werte für a,b, c, d.
Aber wenn man nur werte hat für x, y und f(x) könne beliebig wählbar sein
Woher stammt die Aufgabe ?
Gruss Carsten
Am 07.02.10 00:21 schrieb "Markus Karwot" unter <mkarwot@XXXXXXX.com
<http://mkarwot@XXXXXXX.com> <http://mkarwot@XXXXXXX.com>
<http://mkarwot@XXXXXXX.com> <http://mkarwot@XXXXXXX.com> >:
Hallo,
bei uns ist gerade Klausurzeit, deswegen konnte ich nicht gleich wieder
antworten. Wollte mir dann aber noch genug Zeit nehmen um noch einmal über
das ganze nach zu denken. Da war ich doch noch ziemlich verwirrt wegen dem
ganzen.
Wie ich es am Anfang geschrieben habe, war es so wie es sein sollte.
f(x)=a*(Exp[K1*(x-y*b) ] )+c*(Exp[K2*(x-y*b) ] )+((x-y*d))
D.h. Ich hab meine x und y Daten in einer Matrix. {{x1, y1}, ..,{xn,yn}} .
Das ist auch alles was ich habe. Ich könnte zwar grobe Start werte für die
unbekannten (a, b, c, d) errechnen, aber die sind nicht so "gut".
Es gibt bei Mathematica, im virtualbook, beim FindFit auch ein Part für
mehrere Variablen aber damit komme ich auch nicht weiter.
Hoffe das ich es jetzt verständlicher machen konnte. Falls nicht, werde ich
mich bemühen es noch besser zu erklären.
Beste Grüße
Markus
Am 5. Februar 2010 15:05 schrieb mathemas ordinate <info@XXXXXXX.de
<http://info@XXXXXXX.de> <http://info@XXXXXXX.de>
<http://info@XXXXXXX.de> <http://info@XXXXXXX.de> >:
>> Keine Bange, ich reisse ihnen nicht den virtuellen Kopf ab. Was steckt
>> hinter Ihrem Problem ?
>>
>>
>> Alte email:
>>
>>
>> Was sie da schreiben macht keinen Sinn auch mathematisch ist es nicht ganz
>> ausgegoren.
>>
>> Es scheint so nach den Datenpunkten, dass sie eine einfache Funktion y= f(x)
>> haben oder besser hatten. Jetzt schreiben Sie
>>
>> f(x)=a*(Exp[K1*(f(x)-y*b) ] )+c*(Exp[K2*(f(x)-y*b) ] )+((f(x)-y*d))
>>
>> Welche Form sollte f haben ?
>>
>> So wie Sie es schreiben kann f ja beliebig sein oder ?
>>
>>
>> Gruss Carsten Herrmann
>>
>>
>> Am 03.02.10 13:55 schrieb "Markus Karwot" unter <mkarwot@XXXXXXX.com
>> <http://mkarwot@XXXXXXX.com> <http://mkarwot@XXXXXXX.com>
>> <http://mkarwot@XXXXXXX.com> <http://mkarwot@XXXXXXX.com>
>> <http://mkarwot@XXXXXXX.com> >:
>>
>>
>> Hello,
>>
>> i try the NonlinearModelFit but without any positive results, actually i get
>> the same error message i ever get.
>> "NonlinearModelFit::fitc: Number of coordinates (1) is not equal to the
>> number of variables (3). >>"
>> (I append the mathematica nb file to this mail.)
>>
>> But maybe i still misunderstood this at all.
>> In my case. I have the values of x and y axis. The function f represent my
>> data. But i have f(x) on both sides.
>> I cant fill the data set array {{x1, y1, f1}, ..,{xn,yn,fn}} with values i
>> dont have.
>>
>> f(x)=a*(Exp[K1*(f(x)-y*b) ] )+c*(Exp[K2*(f(x)-y*b) ] )+((f(x)-y*d))
>>
>> The interesting values are the unknown variables like a,b,c,d, k1 and k2 and
>> the value i`am looking for are y.
>>
>> I hope you guys understand what i try to say :)
>>
>> Best regards
>> Markus
>>
>>
>> Am 2. Februar 2010 18:45 schrieb mathemas ordinate <info@XXXXXXX.de
>> <http://info@XXXXXXX.de> <http://info@XXXXXXX.de>
>> <http://info@XXXXXXX.de> <http://info@XXXXXXX.de>
>> <http://info@XXXXXXX.de> >:
>>>> Schön wäre, das vollständige kurze Beispiel zu sehen (ie mit den
>>>> Datenpunkten)
>>>>
>>>> ansonsten: Versuche es mal mit NonlinearModelFit
>>>>
>>>> Am 02.02.10 17:35 schrieb "mkarwot@XXXXXXX.de
>>>> <http://mkarwot@XXXXXXX.de> <http://mkarwot@XXXXXXX.de>
>>>> <http://mkarwot@XXXXXXX.de> <http://mkarwot@XXXXXXX.de>
>>>> <http://mkarwot@XXXXXXX.de> " unter
>>>> <mkarwot@XXXXXXX.de <http://mkarwot@XXXXXXX.de>
>>>> <http://mkarwot@XXXXXXX.de> <http://mkarwot@XXXXXXX.de>
>>>> <http://mkarwot@XXXXXXX.de> <http://mkarwot@XXXXXXX.de> >:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> > Hallo,
>>>>> >
>>>>> > Ich habe die Aufgabe eine (nicht–Analytische) Funktion mit Mathematica
>>>>> zu
>>>>> > Fitten. Leider komme ich nicht weiter. Habe auch schon vieles Probiert,
>>>>> aber
>>>>> > ohne Erfolg. Hoffe das Ihr mit weiter helfen könnt.
>>>>> >
>>>>> >
>>>>> > Die Funktion die ich habe sieht folgendermaßen aus.
>>>>> >
>>>>> > f(x)=a*(Exp[K1*(x-y*b) ] )+c*(Exp[K2*(x-y*b) ] )+((x-y*b))⁄d
>>>>> >
>>>>> > Mein Datensatz hat die folgende Form.
>>>>> > dataset = {{x1, y1},{x2,y2},…,[xn,yn}}
>>>>> >
>>>>> >
>>>>> > Wenn ich jetzt FindFit[] ausführe,
>>>>> > FindFit[dataset, f, {a, b, c, d}, {x,y}]
>>>>> >
>>>>> >
>>>>> > bekomme ich immer den folgenden Fehler
>>>>> >
>>>>> > FindFit::fitc : Number of coordinates (1) is not equal tot he number of
>>>>> > variables (2). >>
>>>>> >
>>>>> > Was mache ich Falsche? Oder habe ich da ein Funktion an der sich
>>>>> Mathematica
>>>>> > die
>>>>> > „Zähne“ ausbeißt.
>>>>> >
>>>>> > Beste Grüße von der HTWG-Konstanz.
>>>>> > Markus
>>>>> >
>>>>> >
>>>>> >
>>>>
>>>> --
>>>> mathemas ordinate, Dipl. Math. Carsten Herrmann, M.Sc.
>>>> GbR seit 12 Jahren ! Ums.St.ID <http://Ums.St.ID> <http://Ums.St.ID>
>>>> <http://Ums.St.ID> <http://Ums.St.ID> <http://Ums.St.ID>
>>>> <http://Ums.St.ID> DE135574376
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> __*__ Koenigsbergerstr. 97 in 24161 Altenholz
>>>> ===== WWW: http://www.ordinate.de Email info@XXXXXXX.de
>>>> <http://info@XXXXXXX.de> <http://info@XXXXXXX.de>
>>>> <http://info@XXXXXXX.de> <http://info@XXXXXXX.de>
>>>> <http://info@XXXXXXX.de>
>>>> || || Tel:0431 237-4500, Berlin 030 787-06259 Mobil: 0177 312 8557
>>>> || || Fax:0431 237-4501 oder alt. 0431 32888-12
>>>> Distribution+Training+Support: Mathematica ExtendSim MathType Kaleida..
>>>> Mathematica Tage http://www.ordinate.de/mathematicaTag.htm
>>>>> > ****************************************************************
>>>>> > Die in dieser E-Mail enthaltenen Informationen sind vertraulich.
>>>>> > Diese E-Mail ist ausschliesslich fuer den Adressaten bestimmt
>>>>> > und jeglicher Zugriff durch andere Personen ist nicht zulaessig.
>>>>> > Falls Sie nicht einer der genannten Empfaenger sind, ist jede
>>>>> > Veroeffentlichung, Vervielfaeltigung, Verteilung oder sonstige in
>>>>> > diesem Zusammenhang stehende Handlung untersagt und unter
>>>>> > Umstaenden ungesetzlich. Sollte diese Nachricht nicht fuer Sie
>>>>> > bestimmt sein, so bitten wir Sie, den Absender unverzueglich zu
>>>>> > informieren und die E-Mail zu loeschen.
>>>>> > ****************************************************************
>>>>> > The information in this e-mail is confidential. It is intended solely
>>>>> > for the addressee and access to the e-mail by anyone else is
>>>>> > unauthorised.
>>>>> > If you are not a named recipient, any disclosure,copying, distribution
>>>>> > or any action taken or omitted to be taken in reliance on it,
>>>>> is
>>>>> > prohibited and may be unlawful. If the notice is not intended for
>>>>> > you, please notify the sender immediately and delete the e-mail