Re: NDSolve problem
- To: mathgroup at smc.vnet.net
- Subject: [mg42434] Re: [mg42425] NDSolve problem
- From: Selwyn Hollis <selwynh at earthlink.net>
- Date: Mon, 7 Jul 2003 03:05:59 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Owen, NDSolve isn't any good at solving nonlinear boundary-value problems, and your condition V[0] == V[3]-100 make matters even worse. Here's an approach that *might* work: Define f[v0_, vp0_] :=V /. First[NDSolve[ {1 - 5*x - 0.2*V[x] - V'[x] + V'[x]^2 + V''[x] == 0, V[0] == v0, V'[0] == vp0}, V, {x, 0, 100}]] Now you want to solve the system v0 == f[v0,vp0][3] - 100, f[v0,vp0][100] == -200, for v0 and vp0. In principle, that can be done with FindRoot: FindRoot[{v0 == f[v0, vp0][3] - 100, f[v0, vp0][100] == -200}, {v0, 0, 1}, {vp0, 0, 1}] The catch is that you need to provide good initial guesses. (The zeros and ones I have here don't work.) If you have some rough idea of what V[0] and V'[0] should be, you might get this to work. But then again, I'm not convinced that the problem even *has* a solution. ----- Selwyn Hollis http://www.math.armstrong.edu/faculty/hollis On Sunday, July 6, 2003, at 06:57 AM, Owen Wu wrote: > Hello, > > I try to numerically solve a nonlinear ODE: > > NDSolve[ > {1-5x-0.2V[x]-V'[x]+V'[x]^2+V''[x]==0, V[0]==V[3]-100,V[100]==-200}, > V,{x,0,100}] > > Mathematica returns: > NDSolve::inrhs: Differential equation does not evaluate to a number or > the equation is not an nth order linear ordinary differential > equation. > > How can I get around this difficulty? > > Thanks, > Owen > >