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