       InterpolatingFunction in NDSolve

• To: mathgroup at smc.vnet.net
• Subject: [mg21640] InterpolatingFunction in NDSolve
• From: eborzova at my-deja.com
• Date: Tue, 18 Jan 2000 02:35:23 -0500 (EST)
• Sender: owner-wri-mathgroup at wolfram.com

```Hi everybody.
My question could be simple, but I just can't
figure it out. I need to use InterpolatingFunction
inside yet another function (Derivs) that is rhs
for NDSolve (please refer to the code below). The
problem is that if my rhs "Derivs" has some sort
of conditional logic (e.g. "If"), then it stops
working (see a comment with Return[sss[x]]).

Any help/hints/feedback are greatly appreciated!

Thanks.
Elena.
Clear[sss];
Clear[solution];
Clear[sol2];
solution = NDSolve[{Derivative[y][x]==-10*y
[x], y == 1},
y,{x, 0, 0.5}]

sss = (y[x] /. solution[])[];

(* interpolating function seems to be ok: can
Plot it *)
Plot[sss[t], {t, 0, 0.5}];

Derivs[y_, x_] := Block[{},

(* uncomment below to make it work *)

(* Return[sss[x]]; *)

If[x < 0.25, Return[sss[x]], Return[-sss
[x]]];

Print["Ooops!!!!"];

Abort[];
];

sol2 = NDSolve[{Derivative[y][x] == Derivs[y,
x], y == 0},
y,{x, 0, 0.5}]

Plot[Evaluate[y[x] /. sol2], {x, 0, 0.5}];

Sent via Deja.com http://www.deja.com/