Re: NDSolve
- To: mathgroup at smc.vnet.net
- Subject: [mg125259] Re: NDSolve
- From: Cos Lol <giaexams at gmail.com>
- Date: Fri, 2 Mar 2012 07:51:30 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jinjgp$d0k$1@smc.vnet.net>
On 1 =CC=E1=F1, 12:37, rf248 <rf... at st-andrews.ac.uk> wrote: > Hello, > I am trying to solve an initial value problem with NDSolve. However, the initial values are set on a regular singular point. When solving Bessel's differential equation, one can avoid this problem with the option SolveDelayed ->True. > This however does not help with the following problem (hydrogen atom) to which the analytic solution is a Laguerre polynomial. > > l = 0; n = 1; a = 1; eps = -1/(2 n^2); > func = r D[r R[r], {r, 2}] + (2 (a r + eps r^2) - l (l + 1)) R[r] == 0; > nrad = NDSolve[{func, R[0] == 2, R'[0] == -2}, R[r], {r, 0, 100}, > SolveDelayed -> True] > > Above, the initial values chosen correspond to an exact solution for constants l, n, a and eps. Mathematica must therefor be able to find a solution. > > Thanks! it's a mathematical problem the func becomes r*(...) so if you drop the r assuming r is not equal to 0, mathematica then solves the DE otherwise if you want the formula to stand for any values-expressions, use isntead of 0 a number e=$MachineEpsilon i.e. l = 0; n = 1; a = 1; eps = -1/(2 n^2); e=$MachineEpsilon; func = r D[r R[r], {r, 2}] + (2 (a r + eps r^2) - l (l + 1)) R[r] = 0; nrad = NDSolve[{func, R[e] == 2, R'[e] == -2}, R[r], {r, e, 100}, SolveDelayed -> True]