Frühere | Chronologischer Index | Spätere | ||
Vorherige | Thematischer Index | Nächste |
Hallo Frank, Oliver und Robert,
Ich werde dann mit den erhaltenen Coordinates per Interpolation[] meineneue InterpolatingFunction schaffen (falls es nicht noch einfacher geht?).
In der Hilfe ref/FunctionInterpolation steht geschrieben:You can use FunctionInterpolation to generate a single InterpolatingFunction object from an expression containing several such objects.
Dann machen wir doch das In[140]:= Clear[breitlingWegbedungen] breitlingWegbedungen[f_InterpolatingFunction, l_List] := Block[{x, x1, x2, x3, x4}, {x1, x2, x3, x4} = l; Check[f[x1], Return[$Failed]]; Check[f[x2], Return[$Failed]]; Check[f[x3], Return[$Failed]]; Check[f[x4], Return[$Failed]]; FunctionInterpolation[ Piecewise[{{f[x], x1 <= x < x2}, {(f[x2] (x3 - x) + f[x3] (x - x2))/(x3 - x2), x2 <= x < x3}, {f[x], x3 <= x < x4}}, 0], {x, x1, x4}, InterpolationPoints -> Floor[x4 - x1]^2, MaxRecursion -> 12 ] ] /; VectorQ[l, NumericQ] && Less @@ lwobei man den mittleren linearen Teil im Rahmen etwa der Stetigkeit oder gar der Differenzierbarkeit beliebig umgestalten mag, und frisieren damit die Lösung einer nichtlinearen Differentialgleichung
In[4]:= Clear[s] s = NDSolve[{y'[x] == y[x] Cos[x + y[x]], y[0] == 1}, y, {x, 0, 30}] Out[5]= {{y -> InterpolatingFunction[{{0, 30}}], <>]}} mittels In[142]:= t = breitlingWegbedungen[s[[1, 1, 2]], {0, 10, 15, 30}] Out[142]= InterpolatingFunction[{{0, 30}}], <>] und betrachten schliesslich das Ergebnis: In[143]:= Plot[{t[x], t'[x]}, {x, 0, 30}, PlotRange -> All]
ich habe eine Interpolating Function,die in einem kleinen Intervall vieleungenaue Werte enthält. Daher würde ich gerne alle Werte in diesemIntervall entfernen.
Wie von Oliver bemerkt wäre es besser, diese ungenauen Werte in der Modellierung unschädlich zu machen, statt sie wegzufrisieren. Aber letzteres geht, ganz einfach.
Gruss Udo.
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
wegbedungen.jpeg
Description: JPEG image
Frühere | Chronologischer Index | Spätere | ||
Vorherige | Thematischer Index | Nächste |
DMUG-Archiv, http://www.mathematica.ch/archiv.html