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.