Options for DSolve
- To: mathgroup at smc.vnet.net
- Subject: [mg123406] Options for DSolve
- From: Martin <mgrahl at gmx.net>
- Date: Tue, 6 Dec 2011 03:12:01 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
Hello,
I have a question concerning the options for Mathematica's DSolve. I
want to find the InterpolatingFunction for a function depending on two
independent variables U[k,phi] in the range {k,1,500} and {phi,
1600,2500}. I try to solve a single differential equation for U[k,phi]
involving the first derivative with respect to k, and the first and
the second derivative with respect to phi.
I use DSolve in the following form:
NDSolve[{ differential equation , initial condition }, U , {k,
1,500} , {phi,1600,2500} , Options]
My initial condition is U[500,phi]= 2.5 phi^2 .
The method worked for simpler differential equations involving also
two independent variables. The actual one however is a bit more
complicated, involving for example Coth and Tanh. Although Mathematica
finds a solution, it cannot be correct, since adding options like
PrecisionGoal change the result dramatically. So I tried to improve
the result using such options, but I don't know what is the right
strategy. I considered
PrecisionGoal ,
AccuracyGoal ,
MaxStepSize.
Using PrecisionGoal and AccuracyGoal simultaneously, at PrecisionGoal-
>18, AccuracyGoal->10 I obtain the following warnings:
NDSolve::mxsst: Using maximum number of grid points 10000 allowed by
the MaxPoints or MinStepSize options for independent variable \
[CurlyPhi].
NDSolve::ndtol: Tolerances requested by the AccuracyGoal and
PrecisionGoal options could not be achieved at k == 500.`.
So I decided to decrease the StepSize (which means increasing the
number of grid points, right?) by
MaxStepSize->0.01 which results in the warnings:
NDSolve::eerri: Warning: Estimated initial error on the specified
spatial grid in the direction of independent variable \[CurlyPhi]
exceeds prescribed error tolerance
NDSolve::ndtol: Tolerances requested by the AccuracyGoal and
PrecisionGoal options could not be achieved at k == 500.`
Could someone please explain to me what is a meaningful strategy in
such a case?
A further question: does MaxStepSize change the number of grid points
used in the computation? How can I tell Mathematica how much
GridPoints I want to use?
Here's the concrete example (copy- and paste-able into notebook):
T = 45
mu = 254
g = 3.2
sol = NDSolve[{k*D[U[k, \[CurlyPhi]], k] ==
k^5/(12*\[Pi]^2)*(3/Sqrt[
k^2 + 2*D[U[k, \[CurlyPhi]], \[CurlyPhi]]]*
Coth[Sqrt[k^2 + 2*D[U[k, \[CurlyPhi]], \[CurlyPhi]]]/(2*T)] +
1/Sqrt[k^2 + 2*D[U[k, \[CurlyPhi]], \[CurlyPhi]] +
4*\[CurlyPhi]*D[U[k, \[CurlyPhi]], {\[CurlyPhi], 2}]]*
Coth[Sqrt[
k^2 + 2*D[U[k, \[CurlyPhi]], \[CurlyPhi]] +
4*\[CurlyPhi]*D[U[k, \[CurlyPhi]], {\[CurlyPhi], 2}]]/(
2*T)] - (2*3*2)/Sqrt[
k^2 + g^2*\[CurlyPhi]]*(Tanh[(
Sqrt[k^2 + g^2*\[CurlyPhi]] - mu)/(2*T)] +
Tanh[(Sqrt[k^2 + g^2*\[CurlyPhi]] + mu)/(2*T)])),
U[500, \[CurlyPhi]] == 10/4*\[CurlyPhi]^2},
U, {k, 1, 500}, {\[CurlyPhi], 1600, 2500}, PrecisionGoal -> 18,
AccuracyGoal -> 10]
Thank you,
Martin
- Follow-Ups:
- Re: Options for DSolve
- From: Oliver Ruebenkoenig <ruebenko@wolfram.com>
- Re: Options for DSolve