Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2001
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2001

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

Search the Archive

Re: Using NDSolve for 2-variables function ?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg31160] Re: Using NDSolve for 2-variables function ?
  • From: BobHanlon at aol.com
  • Date: Sun, 14 Oct 2001 04:11:53 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

In a message dated 2001/10/10 8:29:49 PM, 
Florent.Saulnier at college-de-france.fr writes:

>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] 
>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)
>
>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] 
>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^2
>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 ?
>

soln = (f[u] /. DSolve[f'[u]+u*f[u] == 0, f[u], u][[1]])

C[1]/E^(u^2/2)

soln /. Solve[(soln /. u -> Sqrt[t]) == t^2, C[1]][[1]]

E^(t/2 - u^2/2)*t^2

f[u_, t_] := t^2 * Exp[(t-u^2)/2];

D[f[u,t],u]+u*f[u,t] == 0

True

f[Sqrt[t], t] == t^2

True

f[3,5]

25/E^2

%//N

3.3833820809153177

f[2,4]

16


Bob Hanlon
Chantilly, VA  USA


  • Prev by Date: Re: Solving simultaneous equations with inequalities
  • Next by Date: Re: Using NDSolve for 2-variables function ?
  • Previous by thread: Re: Using NDSolve for 2-variables function ?
  • Next by thread: Re: Using NDSolve for 2-variables function ?