DMUG-Archiv 2000

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Nichtlineare Regression

hallo Tim!

auf die gefahr einer trivial antwort hin folgender vorschlag:

wenn die zu fittende funktion zwar nicht linear aber wenigstens linear in
ihren koeffizienten ist, so geht das mit Fit[] bewzw Regress[].
fuer die beispielfunction:
f[x_]:= a0 +a1 x + a2 x^2 + a3 x^3 + a4 Sin[x]^3.4 + a5 Exp[x]^3.5
sieht das dann so aus :
Fit[data, {1, x, x^2, x^3, Sin[x]^3.5, Exp[x]^3.5}, x]
dabei treten mit sicherheit keine complexen zahlen auf wenn die
teilfunktionen reell fuer alle elemente aus data sind.

ein tip zu NonlinearRegress[]
falls du Re[] oder Abs[] benuzt kannst du versuchen die ableitungen selber
zu finden und dann mittels der option Gradient->{f1, f2, f3, ...}
uebergeben.

gruesse Robert
---
Robert Nowak (robert.nowak@XXXXXXX.at)
Ionen Mikrofabrikations Systeme GmbH
A-1020 Wien, Schreygasse 3, Austria
Phone: (+43 1)2144894-32, Fax: (+43 1)2144894-99

----- Original Message -----
From: Timm Reinisch <TReinisch@XXXXXXX.de>
To: dmug <dmug@XXXXXXX.ch>
Sent: Thursday, March 16, 2000 9:07 PM
Subject: Nichtlineare Regression


> Hallo Liebe Mathematica Experten,
>
> ich habe eine Reihe von Problemen,
> mit der nichtlinearen Regression, und
> dem was dazugehoert. Vielleicht kann mir ja
> jemand hier oder da einen guten Tip geben?
>
> Ich moechte eine nichtlineare Funktion
> an einen Satz von Messwerten fitten. Die
> Funktion enthaelt als wesentlichen Bestandteil
> die Loesung eines Polynomes dritten Grades.
>
> 1) Hier taucht schon mein erstes Problem auf:
> alle drei Loesungen dieses Polynomes sind
> reell. Aber Mathematica hat in allen drei
> Loesungen einen Imaginaerteil. Was erst spaeter
> beim fitten schlimm wird, denn der Imaginaerteil
> verschwindet nicht!! Es bleibt stets etwas in der
> Form wie
> 4711+1*10^-16i.
>
> Und darueber scheint
> NonlinearRegress nicht erfreut zu sein!
>
> Kommt dies durch Rundungsfehler? Was kann ich
> dagegen tun? Re[] scheint die symbolische
> Berechnung der Gradienten zu verhindern.
>
> 2) Ich habe versucht das Polynom mittels
> FindRoot zu loesen, was auch relativ gut geht,
> da ich einen recht guten Startwert angeben kann.
>
> Das Problem ist dann, dass ich nur noch
> FindMinimum einsetzen kann, um die Chi^2
> Funktion zu minimieren. Dazu habe ich folkgende Fragen:
>
> 2.1) Ist es richtig, dass nur bei Method->Gradient
> eine numerische Auswertung der Gradientenfunktion
> ausreicht? Dazu finde ich keine Angaben.
>
> 2.2) Gibt es demnach keine Moeglichkeit in
> MMA einen Fit mit Levenberg Marquardt und numerischer
> Auswertung des Gradienten zu machen?
>
> Danke im Vorraus fuer jeden Tip
>
> MfG
>
>  Timm
>


Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html