Re: A question about numerically solving differential equations
- To: mathgroup at smc.vnet.net
- Subject: [mg130329] Re: A question about numerically solving differential equations
- From: Peter Pein <petsie at dordos.net>
- Date: Wed, 3 Apr 2013 04:09:42 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <kirks3$at8$1@smc.vnet.net>
Am 26.03.2013 09:05, schrieb Yue Zhao: > Hi, > > I am using Mathematica to numercially solve the following equations: > > 2 D[f0[r], r]/r + D[f0[r], r, r] == -2 A f1[r]/r^4 + 2 A D[f1[r], r]/r^3 > -2 f1[r]/r^2 + 2 D[f1[r], r]/r + D[f1[r], r, r] == 2 A D[f0[r], r]/r^3 > > And my boundary condition is > f0[10] == 0.01, f1[10] == 0.01, (D[f0[r], r] /. r -> 1) == 10^-3 A, > (D[f1[r], r] /. r -> 1) == 0 > > When I take A to be small, say 1, everything is fine. However, if I take A to be large, e.g. 100. Mathematica complains and gives me crazy results. Here are the error message I get: > NDSolve::bvluc: The equations derived from the boundary conditions are numerically ill-conditioned. The boundary conditions may not be sufficient to uniquely define a solution. The computed solution may match the boundary conditions poorly. >> > NDSolve::berr: There are significant errors {-5.55116*10^6,-7.26312*10^6,0.,0.} in the boundary value residuals. Returning the best solution found. >> > > Can anyone help me to deal with this issue? I appreciate your help! > > Thanks! > > YZ > > One might be lucky when increasing WorkingPrecision in cases like these. With eqns and cond holding the sets of equations and conditions respectively: Block[{A = 100}, soln = NDSolve[Join[eqns, cond], {f0[r], f1[r]}, {r, 1, 10}, Method -> "StiffnessSwitching", WorkingPrecision -> 80]] leads to a seemingly usable solution Plot[Through[{f0, f1}[r]] /. soln // Evaluate, {r, 1, 10}] hth, Peter