       Re: intermittent crash on numeric solution of elliptic integral

• To: mathgroup at smc.vnet.net
• Subject: [mg62718] Re: [mg62653] intermittent crash on numeric solution of elliptic integral
• From: Renan <renan.birck at gmail.com>
• Date: Fri, 2 Dec 2005 05:53:22 -0500 (EST)
• References: <200511300507.AAA00132@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```On 11/30/05, Chris Chiasson <chris.chiasson at gmail.com> wrote:
> MathGroup,
>
> The code below shuts down my kernel at seemingly different points in
> the plotting process every time I run it. What does it do for you?

For me (Mathematica 5.0, Linux) it gives me this:

renan@nightfall:~\$ math
Mathematica 5.0 for Linux
-- Motif graphics initialized --

In:= f[x_,m_]=Sqrt[(1+0.176*Sin[m]^2*Sin[x]^2)*(1+1.01769*Sin[m]^2*Sin[x]^2)/(1-
Sin[m]^2*Sin[x]^2)]
g[W_,m_]=W*46381*10^(-6)*Sqrt[1/(-0.0012245+Sin[m]^2)]
h[m_?NumericQ]:=NIntegrate[f[x,m],{x,ArcSin[0.002/Sin[m]],Pi/2}]
Plot[m/.FindRoot[h[m]\[Equal]g[1,m],{m,guess}],{guess,0,1}]
2       2                     2       2
(1 + 0.176 Sin[m]  Sin[x] ) (1 + 1.01769 Sin[m]  Sin[x] )
Out= Sqrt[---------------------------------------------------------]
2       2
1 - Sin[m]  Sin[x]

In:=
1
46381 W Sqrt[--------------------]
2
-0.0012245 + Sin[m]
Out= ----------------------------------
1000000

In:=
In:=

1.000000000000000
Divide::infy: Infinite expression ----------------- encountered.
0

FindRoot::jsing:
-8
Encountered a singular Jacobian at the point {m} = {4.16667 10  }
. Try perturbing the initial point(s).

1.000000000000000
Divide::infy: Infinite expression ----------------- encountered.
0

FindRoot::jsing:
-8
Encountered a singular Jacobian at the point {m} = {4.16667 10  }
. Try perturbing the initial point(s).

General::ovfl: Overflow occurred in computation.

General::ovfl: Overflow occurred in computation.

General::ovfl: Overflow occurred in computation.

General::stop: Further output of General::ovfl
will be suppressed during this calculation.

FindRoot::nlnum:
The function value {Underflow[] +
266
NIntegrate[f[x, <<6>>2 10    + <<1>>], <<1>>]} is not a list of numbers
266             266
with dimensions {1} at {m} = {-1.2252 10    + 1.33843 10    I}.

FindRoot::nlnum:
The function value {Underflow[] +
266
NIntegrate[f[x, <<7>>5 10    + <<1>>], <<1>>]} is not a list of numbers
266            266
with dimensions {1} at {m} = {-1.25415 10    + 2.1084 10    I}.

FindRoot::nlnum:
The function value {Underflow[] +
266
NIntegrate[f[x, <<7>>5 10    + <<1>>], <<1>>]} is not a list of numbers
266            266
with dimensions {1} at {m} = {-1.24295 10    + 1.5737 10    I}.

General::stop: Further output of FindRoot::nlnum
will be suppressed during this calculation.

1.000000000000000
Divide::infy: Infinite expression ----------------- encountered.
0

General::stop: Further output of Divide::infy
will be suppressed during this calculation.

FindRoot::jsing:
Encountered a singular Jacobian at the point {m} = {0.0325085}
. Try perturbing the initial point(s).

General::stop: Further output of FindRoot::jsing
will be suppressed during this calculation.

FindRoot::lstol:
The line search decreased the step size to within tolerance specified by
AccuracyGoal and PrecisionGoal but was unable to find a sufficient
decrease in the merit function.  You may need more than MachinePrecision
digits of working precision to meet these tolerances.

FindRoot::lstol:
The line search decreased the step size to within tolerance specified by
AccuracyGoal and PrecisionGoal but was unable to find a sufficient
decrease in the merit function.  You may need more than MachinePrecision
digits of working precision to meet these tolerances.

FindRoot::lstol:
The line search decreased the step size to within tolerance specified by
AccuracyGoal and PrecisionGoal but was unable to find a sufficient
decrease in the merit function.  You may need more than MachinePrecision
digits of working precision to meet these tolerances.

General::stop: Further output of FindRoot::lstol
will be suppressed during this calculation.

Plot::plnr: m /. FindRoot[h[m] == g[1, m], {m, guess}]
is not a machine-size real number at guess = 0.671108.

Plot::plnr: m /. FindRoot[h[m] == g[1, m], {m, guess}]
is not a machine-size real number at guess = 0.648969.

Plot::plnr: m /. FindRoot[h[m] == g[1, m], {m, guess}]
is not a machine-size real number at guess = 0.637992.

General::stop: Further output of Plot::plnr
will be suppressed during this calculation.

but doesn't seem to quit the kernel, instead it produces a seeming
strange (to me, but I don't have a deep knowledge of differential
equations) graph that can be seen here:

http://img528.imageshack.us/img528/7104/graphofmathgroup3sa.jpg

What do you think?

```

• Prev by Date: Types in Mathematica thread
• Next by Date: Re: How would you evaluate this limit in Mathmatica