|
Hallo Oliver, vielen Dank! InterpolatingFunctionCoordinates[ifun] aus dem Paket "DifferentialEquations`InterpolatingFunctionAnatomy`" ist wohl genau das, wonach ich gesucht hatte. Hier noch der Link zum Tutorial: http://reference.wolfram.com/mathematica/tutorial/NDSolvePackages.html Ich werde dann mit den erhaltenen Coordinates per Interpolation[] meine neue InterpolatingFunction schaffen (falls es nicht noch einfacher geht?). Viele Grüße Frank On 2010-05-17 15:18, Oliver Ruebenkoenig wrote: > > > > Hallo Frank, > > > On Mon, 17 May 2010, Frank Breitling wrote: > >> Hallo Robert, >> >> vielen Dank für die schnelle Antwort. >> >> Ja, mir wäre auch erst mal nicht klar, wie ich nun aus der FullForm >> Punkte in einem Intervall [x1,x2] löschen kann. >> >> Leider habe ich auch keine Daten, sondern erhalte die >> InterpolatingFunction als Lösung von NDSolve. Ein resample-n wäre zwar >> möglich, aber wegen dem Verlust an Genauigkeit wohl nicht gerade ideal >> und außerdem umständlich. >> >> Trotzdem Danke für die Idee. Vielleicht geht es ja doch in die richtige >> Richtung. >> >> Viele Grüße >> >> Frank >> >> >> On 2010-05-17 13:52, Robert Nowak wrote: >>> Hallo Frank, >>> >>> mit FullForm lässt sich die Struktur einer InterpolatingFunction >>> darstellen. >>> Mit Kenntnis der Struktur kann man die wohl auch manipulieren. >>> >>> In[112]:= f={y1,y2,y3,y4}//Interpolation >>> f//FullForm >>> Out[112]= InterpolatingFunction[{{1,4}},<>] >>> Out[113]//FullForm= >>> InterpolatingFunction[List[List[1,4]],List[3,1,0,List[4],List[4],0,0,0,0],List[List[1,2,3,4]],List[List[y1],List[y2],List[y3],List[y4]],List[Automatic]] >>> >>> >>> Scheint aber nicht gerade straight forward zu sein. >>> Besser in den Daten die störenden Punkte entfernen (oder z.B. durch >>> Mittelwerte von Nachbarpunkten) und neu interpolieren. >>> >>> >>> >>> Liebe Grüße Robert >>> >>> >>> >>> >>> >>> >>> Frank Breitling schrieb: >>>> Hallo, >>>> >>>> ich habe eine Interpolating Function die in einem kleinen Intervall >>>> viele ungenaue Werte enthält. Daher würde ich gerne alle Werte in >>>> diesem >>>> Intervall entfernen. >>>> Ich habe es bereits mit Piecewise und Condition (/;) versucht, das >>>> Intervall zu korrigieren. Eine so definierte Funktion verursacht aber >>>> dann auf Grund ihrer komplexeren Gestalt Probleme in meinen weiteren >>>> Rechnungen. >>>> Daher möchte ich die ursprüngliche InterpolatingFuction behalten und >>>> nur >>>> die problematischen Punkte entfernen. >>>> Wie ginge das? >>>> >>>> Viele Grüße >>>> >>>> Frank >>>> >>>> >>>> >>>> >>> >>> >> >> >> > > > mit dem Package > > Needs["DifferentialEquations`InterpolatingFunctionAnatomy`"]; > > aus tutorial/NDSolvePackages > > kannst Du Teile aus der interpolating function raus holen. Es waere aber > wohl besser, wenn man untersuchen wuerde warum NDSolve dort solche Werte > liefert. > > Gruss, > Oliver |