Re: NDSolve and Piecewise

*To*: mathgroup at smc.vnet.net*Subject*: [mg92113] Re: NDSolve and Piecewise*From*: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>*Date*: Sat, 20 Sep 2008 05:00:07 -0400 (EDT)*References*: <gavt1g$g61$1@smc.vnet.net>

Hi, foo[t_?NumericQ] := Piecewise[{{t/10, 0 <= t < 5}, {(10 - t)/10, 5 <= t < 10}}] NDSolve[{D[u[t, x], t] == D[u[t, x], x, x], u[t, 0] == foo[t], u[0, x] == x/5, (D[u[t, x], x] /. x -> 5) == 1/5}, u, {t, 0, 10}, {x, 0, 5}] ?? Regards Jens M.G. Bartlett wrote: > Folks, > > I am having some trouble with getting Piecewise and NDSolve to play > nicely together. My problem is to find a solution to the heat flow > equation with an arbitrary time-varying upper boundary condition and a > Neumann-type lower boundary (steady head flow condition). My code > looks like this: > > NDSolve[{D[u[t, x], t] == D[u[t, x], x, x], > u[t, 0] == Piecewise[{{t/10, 0 <= t < 5}, {(10 - t)/10, 5 <= t < > 10}}], > u[0, x] == x/5, (D[u[t, x], x] /. x -> 5) == 1/5}, u, {t, 0, 10}, > {x, 0, 5}] > > This returns and NDSolve::ndum error on my system, which past > experience tells me is usually me leaving some symbolic value hanging > around somewhere it ought not to be. I can't see any such problem > this time. I'm pretty sure that I have written similar code in the > past (using Piecewise and NDSolve, though it was some time ago and I > can't locate the file now) and had it work, and it works if you > replace Piecewise with another functional form (like Sin[t]). Am I > missing something? > > Thanks, > > Marshall >