MathGroup Archive 2001

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

Search the Archive

Using NDSolve for 2-variables functions ?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg31040] Using NDSolve for 2-variables functions ?
  • From: Florent Saulnier <Florent.Saulnier at college-de-france.fr>
  • Date: Fri, 5 Oct 2001 01:22:55 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Hello

I'm a french user of Mathematica 4.0
Could you please put the following question in the Math Group ?
         Thanks a lot.

Title : Using NDSolve for 2-variables functions ?

I'm trying to solve a quasi-linear PDE using the method of characteristics.
For this, I need to calculate a function - for instance f[r_,t_] - by
NDSolve (I simplified the equation for clarity) and then use it again in
another differential equation :

Input[1]  Clear[f]
         f[r_,t_]==f[r]/.NDSolve[{f'[u]+u*f[u]====0,f[Sqrt[t]]====t^2},f,{u ,Sqrt[
f[r_,t_]==f[r]/.NDSolve[{f'[u]+u*f[u]====0,f[Sqrt[t]]====t^2},f,{u,Sqrt[t], 10^9}]
[[1]][[1]]
... gives the following error messages :
         NDSolve::ndnl : Endpoint Sqrt[t] in {u,Sqrt[t],1000000000} is not
a real number
         ReplaceAll::reps : {uf[u]+f'[u]====0} is neither a list of
replacement rules nor a valid dispatch table, and so cannot be used for
replacing.
Output[1] Null (f[r]/.uf[u]+f'[u]====0)


What surprises me even more is that if I give the definition of f[r,t] with
the sign :==, it gives me the correct result at any given point, with the
correct boundary conditions :

Input[1]  Clear[f]
         f[r_,t_]:==f[r]/.NDSolve[{f'[u]+u*f[u]====0,f[Sqrt[t]]====t^2},f,{ u,Sqrt
f[r_,t_]:==f[r]/.NDSolve[{f'[u]+u*f[u]====0,f[Sqrt[t]]====t^2},f,{u,Sqrt[t] ,10^9}
][[1]][[1]]
Out[1] Null=
Input[2] f[3,5]
Out[2]  3.3834
Input[3] f[2,4]
Out[3]  16

The main problem is that I need f[r,t] for a second equation, and of course
its resolution cannot be achieved :

Input[1] g[t_]==h[t]/.NDSolve[{h'[u]-f[h[u],u]====0,h[1]====1},h,{u,1,10}][ [1]][[1]]
         ...which gives the same error messages :
         NDSolve::ndnl : Endpoint Sqrt[t] in {u,Sqrt[t],1000000000} is not
a real number
         ReplaceAll::reps : {uf[u]+f'[u]====0} is neither a list of
replacement rules nor a valid dispatch table, and so cannot be used for
replacing.

Could you please help me about these problems ?
Is there any other instructions or objects I could use for it ?
         Thanks a lot !
         Florent Saulnier


  • Prev by Date: Re: RGBColor to Hue?
  • Next by Date: Re: Re: Urgent but simple problem III
  • Previous by thread: Many Lists
  • Next by thread: Any econometricians out there?