Re: Apparently easy ODE
- To: mathgroup at smc.vnet.net
- Subject: [mg22950] Re: Apparently easy ODE
- From: Robert Knapp <rknapp at wolfram.com>
- Date: Fri, 7 Apr 2000 02:54:33 -0400 (EDT)
- Organization: Wolfram Research, Inc.
- References: <8chb0j$9af@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Kurt Taretto wrote:
>
> Hi, I'm having some problems solving PDE's, for example the folowing
> notebook
>
> Clear["Global`*"];
>
> (* constants definitions *)
>
> Es =11.8*8.85418`50*10^-14;
> q = 1.60218`50*10^-19;
>
> Nd = 1.0`50*^16; g = 1.0`50*^-4; G = 1.0`50*^20; u= 500.0`50; DD =
> 25.0`50;
> k1 = q/Es;
>
> solution = NDSolve[{e'[x] == k1 p[x],
>
> G - u e'[x] p[x] - u e[x] p'[x] + DD p''[x] == 0,
>
> e'[0] == 0, p[g] == 1.0`50*^10, p'[0] == 0},
>
> {e, p}, {x, 0, g}, WorkingPrecision -> 20];
>
> Plot[p[x] /. solution, {x, g/100, g}, PlotRange -> All];
>
> causes an error message, "Cannot find starting value for the variable
> x.", and obviously no solution is given. Apparently this error message
> is about the internals of the algorithm, but I can't figure out what I'm
> doing wrong. Any help on this would be appreciated.
>
The problem you are running into is that the algorithm NDSolve uses to
solve boundary value problems
a) Only works for a single equation (i.e. not a system as you have here)
b) Only works for linear equations.
In a version of Mathematica under development, the method has been
generalized to linear systems, and we are investigating the
possibilities for nonlinear systems.
I agree that the message could be clearer. I have been working to try
to make the messages from NDSolve more specific about what went wrong.
Rob Knapp
Wolfram Research, Inc.