RE: Re: Partial differential equation with evolving boundary conditions
- To: mathgroup at smc.vnet.net
- Subject: [mg91528] RE: [mg91498] Re: Partial differential equation with evolving boundary conditions
- From: "Ingolf Dahl" <ingolf.dahl at telia.com>
- Date: Mon, 25 Aug 2008 06:55:58 -0400 (EDT)
- References: <g8o868$l6k$1@smc.vnet.net> <200808241105.HAA15454@smc.vnet.net>
Hi Jens-Peer, Thanks for your interest and your comments My problematic code was a little damaged by the copy-and-paste. I try again: Manipulate[s = NDSolve[{emax; dutycycle; \!\( \*SubscriptBox[\(\[PartialD]\), \(y, y\)]\ \(\[Theta][y, t]\)\) + elecy[t]*(5 - \[Theta][y, t])*y*(1 - y) == \[Lambda]*\!\( \*SubscriptBox[\(\[PartialD]\), \(t\)]\(\[Theta][y, t]\)\), \[Theta][0, t] == -\[Lambda]s*\!\( \*SubscriptBox[\(\[PartialD]\), \(t\)]\(\[Theta][0, t]\)\), \[Theta][1, t] == -\[Lambda]s*\!\( \*SubscriptBox[\(\[PartialD]\), \(t\)]\(\[Theta][1, t]\)\), \[Theta][ y, 0] == 0}, \[Theta], {y, 0, 1}, {t, 0, 2}]; Plot3D[\[Theta][y, t] /. s, {y, 0, 1}, {t, 0, 2}, PlotStyle -> Automatic, PlotRange -> {0, 5}], {{emax, 25., "emax"}, 0, 100, Appearance -> "Labeled"}, {{dutycycle, 0.25, "dutycycle"}, 0, 1, Appearance -> "Labeled"}, {{\[Lambda], 1., "\[Lambda]"}, 0.001, 10, Appearance -> "Labeled"}, {{\[Lambda]s, 1., "\[Lambda]s"}, 0.001, 10, Appearance -> "Labeled"}, Initialization :> (elecy[t_] := Which[0 <= Mod[t, 1] <= dutycycle, emax, dutycycle < Mod[t, 1] <= 1, 0.]), ContinuousAction -> False, ControlPlacement -> Top] Interleaved comments to your answer follow below Best regards Ingolf Dahl > -----Original Message----- > From: Jens-Peer Kuska [mailto:kuska at informatik.uni-leipzig.de] > Sent: den 24 augusti 2008 13:06 > To: mathgroup at smc.vnet.net > Subject: [mg91498] Re: Partial differential equation with > evolving boundary conditions > > Hi, > > a) the code DSolve[{\[Lambda];\[Lambda]s;emax;dutycycle;...}__] > is total useless because emax; make nothing .. The emax; command is there to tell Manipulate to recalculate NDSolve each time emax is changed. Maybe there is a better way to accomplish this? > > b) you can't have a first order equation on the boundary for > theta[1|0,t] you must integrate that to get > \[Theta][0, t] == Exp[-t/\[Lambda]s], > \[Theta][1, t] == Exp[-t/\[Lambda]s] That is a reformulation of my question, but it that of mathematical necessity or is it just necessary for NDSolve? I wanted to avoid this approach, because my real problem is slightly more involved, and then straightforward integration is not possible. By the way, the solutions you suggest are incomplete, they should read \[Theta][0, t] == integrationconstant0* Exp[-t/\[Lambda]s], \[Theta][1, t] == integrationconstant1* Exp[-t/\[Lambda]s] > > c) this is inconsistent with \[Theta][y,0]==0 and no soulution > would exist. and then with integrationconstant0 = integrationconstant1 = 0 there is trivial consistence with \[Theta][y,0]==0 > > > d) the classical way is to think about the existence and uniqueness > of the solution *before* a analytical or numeric solution > is attempt. Sometimes I prefer other ways, all roads should lead to Rome. Sometimes it is very illuminating to try to find a constructive solution. In this way I was able to formulate a question appropriate for MathGroup, where all answers use to be nice. But with \[Theta][0, t]==0 and \[Theta][1, t] == 0 there should exist solutions, and thus also in this case(?) I do not think that the rule ""Boundary condition ... should have derivatives of order lower than the differential order of the partial differential equation" is applicable in this case. End of my comments/ Ingolf > > e) > > Manipulate[s = NDSolve[{ > \!\( > \*SubscriptBox[\(\[PartialD]\), \(y, y\)]\ \(\[Theta][y, t]\)\) + > elecy[t]*(5 - \[Theta][y, t])*y*(1 - y) == > \[Lambda]*\!\( \*SubscriptBox[\(\[PartialD]\), > \(t\)]\(\[Theta][y, t]\)\), > \[Theta][0, t] == Exp[-t/\[Lambda]s], > \[Theta][1, t] == Exp[-t/\[Lambda]s], > \[Theta][y, 0] == 1}, \[Theta], {y, 0, 1}, {t, 0, 2}]; > Plot3D[\[Theta][y, t] /. s, {y, 0, 1}, > {t, 0, 2}, PlotStyle -> Automatic, > PlotRange -> {0, 5}], {{emax, 25., "emax"}, 0, 100, > Appearance -> "Labeled"}, {{dutycycle, 0.25, "dutycycle"}, 0, 1, > Appearance -> "Labeled"}, > {{\[Lambda], 1., "\[Lambda]"}, 0.001, 10, > Appearance -> "Labeled"}, {{\[Lambda]s, 1., > "\[Lambda]s"}, 0.001, 10, Appearance -> "Labeled"}, > Initialization :> (elecy[t_] := > Which[0 <= Mod[t, 1] <= dutycycle, emax, > dutycycle < Mod[t, 1] <= 1, 0.]), > ContinuousAction -> False, ControlPlacement -> Top] > > work fine. > > Regards > Jens > > Ingolf Dahl wrote: > > Best friends! > > I am trying to solve a partial differential equation (in > principle the > > heat > > equation) with boundary conditions that also evolve with time. For > > instance this works for me: > > > > Manipulate[s=NDSolve[{\[Lambda];emax;dutycycle;\!\( > > \*SubscriptBox[\(\[PartialD]\), \(y, y\)]\ \(\[Theta][y, > > t]\)\)+elecy[t]*(5-\[Theta][y,t])*y*(1-y)==\[Lambda]*\!\( > > \*SubscriptBox[\(\[PartialD]\), \(t\)]\(\[Theta][y, t]\)\), > > \[Theta][y,0]==0, -(\!\( \*SubscriptBox[\(\[PartialD]\), > > \(y1\)]\(\[Theta][y1, t]\)\)/.{y1->0})*0.1+\[Theta][0,t]==0,+( \!\( > > \*SubscriptBox[\(\[PartialD]\), \(y1\)]\(\[Theta][y1, > > t]\)\)/.{y1->1})*0.1+\[Theta][1,t]== > > > 0},\[Theta],{y,0,1},{t,0,2}];Plot3D[\[Theta][y,t]/.s,{y,0,1},{t,0,2},P > > lotSty > > > le->Automatic,PlotRange->{0,5}],{{emax,25.,"emax"},0,100,Appearance->" > > le->Labele > > d"},{{dutycycle,0.25,"dutycycle"},0,1,Appearance->"Labeled"}, > > > {{\[Lambda],1.,"\[Lambda]"},0.001,10,Appearance->"Labeled"},Initializa > > tion:> > > > (elecy[t_]:=Which[0<=Mod[t,1]<=dutycycle,emax,dutycycle<Mod[t,1]<=1,0. > > ]), > > ContinuousAction->False,ControlPlacement->Top] > > > > but this does not work > > > > Manipulate[s=NDSolve[{\[Lambda];\[Lambda]s;emax;dutycycle;\!\( > > \*SubscriptBox[\(\[PartialD]\), \(y, y\)]\ \(\[Theta][y, > > t]\)\)+elecy[t]*(5-\[Theta][y,t])*y*(1-y)==\[Lambda]*\!\( > > \*SubscriptBox[\(\[PartialD]\), \(t\)]\(\[Theta][y, t]\)\), > > \[Theta][0,t]==-\[Lambda]s*\!\( \*SubscriptBox[\(\[PartialD]\), > > \(t\)]\(\[Theta][0, t]\)\),\[Theta][1,t]==-\[Lambda]s*\!\( > > \*SubscriptBox[\(\[PartialD]\), \(t\)]\(\[Theta][1, t]\)\), > > > \[Theta][y,0]==0},\[Theta],{y,0,1},{t,0,2}];Plot3D[\[Theta][y,t]/.s,{y > > ,0,1}, > > > {t,0,2},PlotStyle->Automatic,PlotRange->{0,5}],{{emax,25.,"emax"},0,10 > > 0,Appe > > > arance->"Labeled"},{{dutycycle,0.25,"dutycycle"},0,1,Appearance->"Labe > > arance->led"}, > > > {{\[Lambda],1.,"\[Lambda]"},0.001,10,Appearance->"Labeled"},{{\[Lambda > > ]s,1., > > > "\[Lambda]s"},0.001,10,Appearance->"Labeled"},Initialization:>(elecy[t > > _]:=Wh ich[0<=Mod[t,1]<=dutycycle,emax,dutycycle<Mod[t,1]<=1,0.]), > > ContinuousAction->False,ControlPlacement->Top] > > > > I obtain the error message > > > > NDSolve::bdord: Boundary condition \[Theta][0,t]+1. > > (\[Theta]^(0,1))[0,t] should have derivatives of order > lower than the > > differential order of the partial differential equation. >> > > > > plus a lot more. As I understand it, the second case should be > > solvable in principle. Is this error a deficiency of > NDSolve, or have > > I made some mistake? This problem can be seen as a partial > > differential equation (in y and t) coupled to two ordinary > > differential equations (for the boundary conditions, only > in t). What is the best way to solve such problems? > > > > This is the simplification of a more involved case, where > the boundary > > conditions also are coupled to the partial differential > equation, but > > I have tried to boil down the problem here. > > > > Best regards > > > > Ingolf Dahl > > Sweden > > > > > > > >
- Follow-Ups:
- Re: RE: Re: Partial differential equation with
- From: Daniel Lichtblau <danl@wolfram.com>
- Re: RE: Re: Partial differential equation with
- References:
- Re: Partial differential equation with evolving boundary conditions
- From: Jens-Peer Kuska <kuska@informatik.uni-leipzig.de>
- Re: Partial differential equation with evolving boundary conditions