DMUG-Archiv 2003

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

Re:

Guten Abend Herr Dolhaine,

zu dem Thema kann ich Ihnen - allenfalls wie Sauerbier - dieselbe Lösung
anbieten wie in der Diskussion in dieser Gruppe mit Hrn. Martin Heimann vom
21. 10. - 28. 10. vergangenen Jahres. Da Sie Funktionen (einer reellen
Veränderlichen) interpolieren wollen, sind die Argumente strikt monoton.
Deshalb kann man durch je drei aufeinanderfolgende Argument-Wert-Paare der
Funktion je einen Kreis legen und im mittleren Punkt die erste und zweite
Ableitung an diesen Kreis berechnen und diese beiden Ableitungen mit in die
Interpolation eingeben. Es ist klar, dass die Ableitungen einer diskreten
Wertetabelle irgendwie erfunden - definiert - werden müssen, und dies gelingt
mit sehr kleinem Aufwand mit Hilfe von Kreisen und ist in dem beiliegenden
Notebook (heimannSpline.nb) implementiert. Wie Sie an dem gleich folgenden
Bildchen sehen, funktioniert es, lediglich die Bestimmung der Ableitungen am
Anfangs- und Endpunkt des Intervalls habe ich recht primitiv behandelt; man
sollte heimannInter[] entsprechende Parameter geben, um den Nutzer die
Ableitungen vorgeben zu lassen.

Damit Ableitung und Funktion etwa denselben Wertebereich haben, betrachte man
die folgende
Punktliste:
p0 = Table[n 0.1 + Random[Real, {0., 0.099}], {n, 0, 32}] /. x : _Real -> {x,
Cos[x]}

definiere die Interpolation f und ihre Ableitung fd:
f = heimannInter[p0];
fd = Derivative[1][f];

und erzeuge ein Bildchen:
Show[{Graphics[Point[#] & /@
      p0],  Plot[{f[x], fd[x], Cos[x], -Sin[x]}, {x, First[First[p0]],
        First[Last[p0]]}, PlotRange -> All, PlotPoints -> 73,
      PlotStyle -> {RGBColor[0, 0, 1], RGBColor[1, 0, 0], RGBColor[0, 0,
      0], RGBColor[0, 0, 0]}, DisplayFunction -> Identity]}, DisplayFunction \

-> $DisplayFunction, Frame -> True, Axes -> True]

Das Bildchen ist im Anhang. heimannInter implementiert die oben genannte Idee,
es kommt in der
Ableitung fd recht gut -Sin[x] heraus.

Mit den besten Grüssen
U. Krause.



Hans.Dolhaine@XXXXXXX.com schrieb:

> Guten Morgen allerseits,
>
> wer kennt sich aus mit Interpolation?
>
> Ich habe eine Reihe experimenteller Daten data und kann mit
>
> f1= Interpolation[ data]
>
> wunderbar eine Funktion kreieren, die durch die Punkte geht.
> Das ist aber nicht das, was ich will. Ich suche eine Funktion, die die
> Ableitung der durch die Messwerte beschriebenen Funktion (die ist
> unbekannt) möglichst gut approximiert.
>
> Das ist siche nicht die Ableitung von f1.
>
> f2= Derivative[1][f1]
>
> weist Sprünge und Zacken auf und ist somit alles andere als glatt, was von
> der gesuchten Ableitung aber erwartet wird.
>
> Weiss jemand Rat?
>
> Hans Dolhaine
> _________________________________
>
> VTR-TS
> Phone:      +49-211-797-4809
> Fax:        +49-211-798-1853
> Mobile:     0171 97 17 049
> E-Mail:     Hans.Dolhaine@XXXXXXX.com

GIF image

Attachment: heimannSpline.nb
Description: Mathematica Notebook document

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

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