Re: inequality as constraints on NDSolve +Integral...
- To: mathgroup at smc.vnet.net
- Subject: [mg106451] Re: [mg106196] inequality as constraints on NDSolve +Integral...
- From: "Stefano Pasetto" <spasetto at ari.uni-heidelberg.de>
- Date: Wed, 13 Jan 2010 05:57:11 -0500 (EST)
- References: <201001050642.BAA23770@smc.vnet.net> <4B4356F3.4080201@wolfram.com>
Dear Daniel Lichtblau, thank you very much, your solution is the most brilliant... but, now, suppose that I add a perturbation term (I'm not sure about my implementations) I define simply a perturbative term for t>0.5 and nothing for t<0.5 f[t_?NumericQ]:=Piecewise[{{Integrate[x[t+a],{a,0,1}],t>0.5},{0,t<=0. 5}}] so that the system become as you suggested (t interval spans 0->2) NDSolve[{ x'[t] == UnitStep[x[t]] (-y[t] - x[t]^2 + f[t]), y'[t] == UnitStep[y[t]] (2 x[t] - y[t]^3 + f[t]), x[0] == 1, y[0] == 1}, {x, y}, {t, 0, 2}] where I added the extra f[t]. Apparently it doesn't work. Better: is there any way to integrate a system like: NDSolve[{ x'[t] == UnitStep[x[t]] (-y[t] - x[t]^2 + Integrate[x[t+a],{a,0,1}]), y'[t] == UnitStep[y[t]] (2 x[t] - y[t]^3 + Integrate[x[t+a],{a,0,1}]), x[0] == 1, y[0] == 1}, {x, y}, {t, 0.5, 2}] or is it a mission impossible? thankX again for any help! Best regards Stefano -----Messaggio originale----- Da: Daniel Lichtblau [mailto:danl at wolfram.com] Inviato: marted=EC 5 gennaio 2010 16:13 A: Stefano Pasetto Oggetto: Re: [mg106196] inequality as constraints on NDSolve Stefano Pasetto wrote: > Dear Mathematica experts: > > is there a possibility to implement a constraint in NDSolve? > > Suppose I want to solve > > > > NDSolve[{x'[t] == -y[t] - x[t]^2, y'[t] == 2 x[t] - y[t]^3, x[0] == y[0] > == 1}, {x, y}, {t, 20}] > > > > But I want that the solutions satisfied the inequality x[t]>0 for every t > (because it represent a physical quantity that has no meaning to be > negative), i.e., and when it becomes =0 it has to stay zero. I've tried > something like > > > > x[t_]:=If[x[t]>0,x[t],0] > > > > in the definition of x or y but it does not make sense. Somehow, I'd need to > change the solution of the system when the solution itself become negative. > > ThankX for the help, :-) > > Best regards > > Stefano Pasetto Could just modify x'[t] so that the derivative is same as before for x>0, and zero otherwise. NDSolve[{x'[t] == UnitStep[x[t]]*(-y[t] - x[t]^2), y'[t] == 2 x[t] - y[t]^3, x[0] == y[0] == 1}, {x, y}, {t, 20}] Daniel Lichtblau Wolfram Research
- References:
- inequality as constraints on NDSolve
- From: "Stefano Pasetto" <spasetto@ari.uni-heidelberg.de>
- inequality as constraints on NDSolve