MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: inequality as constraints on NDSolve

  • To: mathgroup at smc.vnet.net
  • Subject: [mg106500] Re: [mg106196] inequality as constraints on NDSolve
  • From: Alexei Boulbitch <Alexei.Boulbitch at iee.lu>
  • Date: Thu, 14 Jan 2010 05:51:43 -0500 (EST)

Dear Stefano,

one way to cope with such a constraint would be to introduce a non-linear replacement of the variables 
that automatically accounts for the property you need. 

It is like in theory of magnetism or liquid crystals people introduce
a replacement of variables in the equation for order parameters, if they want to neglect the order parameter variation 
in absolute value. Typically they go to spherical coordinates of the order parameter, rather than to their Cartesian 
coordinates). If needed, you may have a look into the books:
Landau, L. D. & Lifshitz, E. M. Electrodynamics of Continuous Media (Elswier Butterworth-Heinemann, Oxford, 2004) and
de Gennes, P. G. The Physics of Liquid Crystals (Oxford University Press, London, 1974).

In particular, in your problem the best replacement would be the one most closely related to the physical sense of your 
variable x=x(t). However, if this physical sense-related transformation is not clear, why not to introduce x=z[t]^2?  
Or x=Exp[-z[t]] ? You should then formulate your system of equation in terms of y[t] and z[t].
Like this you make sure that your variable is positive everywhere. The price is the additional non-linearity introduced,
but since your solution is anyway numeric this may be not that bad.

Have success, Alexei 




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

-- 
Alexei Boulbitch, Dr., habil.
Senior Scientist

IEE S.A.
ZAE Weiergewan
11, rue Edmond Reuter
L-5326 Contern
Luxembourg

Phone: +352 2454 2566
Fax:   +352 2454 3566

Website: www.iee.lu

This e-mail may contain trade secrets or privileged, undisclosed or otherwise confidential information. If you are not the intended recipient and have received this e-mail in error, you are hereby notified that any review, copying or distribution of it is strictly prohibited. Please inform us immediately and destroy the original transmittal from your system. Thank you for your co-operation.




  • Prev by Date: Re: default options, OptionsPattern[], and FilterRules[]
  • Next by Date: Labeling points on ListPlot - Transform string date element in list of tripes
  • Previous by thread: Re: inequality as constraints on NDSolve
  • Next by thread: mathproject10