Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2013

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

Search the Archive

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





  • Prev by Date: Re: A question about numerically solving differential equations
  • Next by Date: 3D ViewPoint Selector (V5.2) in higher Mathematica versions ?
  • Previous by thread: Re: A question about numerically solving differential equations
  • Next by thread: Re: A question about numerically solving differential equations