1 view

Skip to first unread message

Jul 29, 2007, 11:37:09â€¯PM7/29/07

to

Our little demo continues... Hello again from the VM machine

which is still ignored by CAS manufacturers.

which is still ignored by CAS manufacturers.

----------------------------------------------------------------

N[MeijerG[{{1/2}, {}}, {{0, 0}, {-1}}, 1]/(2 Sqrt[Pi]), 30]

0.873218025861136139271426304072

----------------------------------------------------------------

NIntegrate[Log[1 + z^2] BesselJ[1, z]^2/z, {z, 0, Infinity}]

----------------------------------------------------------------

VERSION OUTPUT RESOLUTION

----------------------------------------------------------------

Mathematica 6.0 0.869058 <------------------------------ BUG

Mathematica 5.2 0.873025 OK

Mathematica 4.2 0.873025 OK

Mathematica 3.0 0.873025 OK

----------------------------------------------------------------

(**************************************************************)

Best wishes,

Vladimir Bondarenko

VM and GEMM architect

Co-founder, CEO, Mathematical Director

http://www.cybertester.com/ Cyber Tester, LLC

http://maple.bug-list.org/ Maple Bugs Encyclopaedia

http://www.CAS-testing.org/ CAS Testing

Jul 30, 2007, 2:32:31â€¯PM7/30/07

to

Hello comrade Vladimir.

I don't want to play the devil's advocate!

But, I guess that here you consider as a bug that Mma 6 does not give

a message which would indicate that the result could be wrong

something like

"NIntegrate::ploss: Numerical integration stopping due to loss of

precision. \

Achieved neither the requested PrecisionGoal nor AccuracyGoal; suspect

one of \

the following: highly oscillatory integrand or the true value of the

integral \

is 0. If your integrand is oscillatory try using the option \

Method->Oscillatory in NIntegrate."

That NIntegrate returns an incorrect result itself, it is not a bug

for me.

By playing with the options / changing the default integration

algorithm, I am sure that NIntegrate would return a correct numerical

estimation.

Dimitris

Jul 30, 2007, 2:53:36â€¯PM7/30/07

to

Hi Dimitris,

A bit of clarification.

Behaviour of Mathematica 5.2/4.2/3.0 is not a bug because

while it returns not fully correct answer, 0.873025 instead

of 0.873218, Mathematica warns honestly on account of a

possible numeric error with

"NIntegrate failed to converge" etc

In contrast, in Mathematica 6,

NIntegrate[Log[1 + z^2] BesselJ[1, z]^2/z, {z, 0, Infinity}]

returns an invalid result, 0.869058, WITHOUT any warning

message.

This is why it is a BUG.

By the way, again here we speak as usually about a family

of bugs, say

NIntegrate[Log[1 + z^2] BesselJ[0, z]^2/z, {z, 0, Infinity}]

NIntegrate[Log[1 + z^2] BesselJ[2, z]^2/z, {z, 0, Infinity}]

NIntegrate[Log[1 + z^2] BesselJ[3, z]^2/z, {z, 0, Infinity}]

manifest the same bug (invalid value AND no warning).

Best wishes,

Vladimir Bondarenko

VM and GEMM architect

Co-founder, CEO, Mathematical Director

http://www.cybertester.com/ Cyber Tester, LLC

http://maple.bug-list.org/ Maple Bugs Encyclopaedia

http://www.CAS-testing.org/ CAS Testing

On Jul 30, 11:32 am, dimitris <dimmec...@yahoo.com> wrote:

> On 30 , 06:37, Vladimir Bondarenko <v...@cybertester.com> wrote:

>

>

>

> > Our little demo continues... Hello again from the VM machine

> > which is still ignored by CAS manufacturers.

>

> > ----------------------------------------------------------------

>

> > N[MeijerG[{{1/2}, {}}, {{0, 0}, {-1}}, 1]/(2 Sqrt[Pi]), 30]

>

> > 0.873218025861136139271426304072

>

> > ----------------------------------------------------------------

>

> > NIntegrate[Log[1 + z^2] BesselJ[1, z]^2/z, {z, 0, Infinity}]

>

> > ----------------------------------------------------------------

> > VERSION OUTPUT RESOLUTION

> > ----------------------------------------------------------------

>

> > Mathematica 6.0 0.869058 <------------------------------ BUG

>

> > Mathematica 5.2 0.873025 OK

>

> > Mathematica 4.2 0.873025 OK

>

> > Mathematica 3.0 0.873025 OK

>

> > ----------------------------------------------------------------

>

> > (**************************************************************)

>

> > Best wishes,

>

> > Vladimir Bondarenko

>

> > VM and GEMM architect

> > Co-founder, CEO, Mathematical Director

>

> >http://www.cybertester.com/Cyber Tester, LLChttp://maple.bug-list.org/ Maple Bugs Encyclopaediahttp://www.CAS-testing.org/CAS Testing

Jul 30, 2007, 3:46:08â€¯PM7/30/07

to

>

> That NIntegrate returns an incorrect result itself, it is not a bug for me.

>

I cut the above and put in a big frame in front of me. Just to remind

me in the future that when I write a function that returns an

incorrect result and a user complains, I can just send them a copy of

the above and all will be well.

This must be the new modern software engineering definition of what is

not a bug. A function that returns an incorrect result is a feature,

not a bug.

> By playing with the options / changing the default integration

> algorithm, I am sure that NIntegrate would return a correct numerical

> estimation.

>

> Dimitris

But if an incorrect answer is not a bug, why should the user have to

do anything?

Nasser

Jul 30, 2007, 4:13:15â€¯PM7/30/07

to

On 30 , 21:53, Vladimir Bondarenko <v...@cybertester.com> wrote:

> Hi Dimitris,

>

> A bit of clarification.

>

> Behaviour of Mathematica 5.2/4.2/3.0 is not a bug because

> while it returns not fully correct answer, 0.873025 instead

> of 0.873218, Mathematica warns honestly on account of a

> possible numeric error with

>

> "NIntegrate failed to converge" etc

>

> In contrast, in Mathematica 6,

>

> NIntegrate[Log[1 + z^2] BesselJ[1, z]^2/z, {z, 0, Infinity}]

>

> returns an invalid result, 0.869058, WITHOUT any warning

> message.

>

> This is why it is a BUG.

>

> By the way, again here we speak as usually about a family

> of bugs, say

>

> NIntegrate[Log[1 + z^2] BesselJ[0, z]^2/z, {z, 0, Infinity}]

> NIntegrate[Log[1 + z^2] BesselJ[2, z]^2/z, {z, 0, Infinity}]

> NIntegrate[Log[1 + z^2] BesselJ[3, z]^2/z, {z, 0, Infinity}]

>

> manifest the same bug (invalid value AND no warning).

>

> Best wishes,

>

> Vladimir Bondarenko

>

> VM and GEMM architect

> Co-founder, CEO, Mathematical Director

>

> http://www.cybertester.com/ Cyber Tester, LLChttp://maple.bug-list.org/ Maple Bugs Encyclopaediahttp://www.CAS-testing.org/ CAS Testing> Hi Dimitris,

>

> A bit of clarification.

>

> Behaviour of Mathematica 5.2/4.2/3.0 is not a bug because

> while it returns not fully correct answer, 0.873025 instead

> of 0.873218, Mathematica warns honestly on account of a

> possible numeric error with

>

> "NIntegrate failed to converge" etc

>

> In contrast, in Mathematica 6,

>

> NIntegrate[Log[1 + z^2] BesselJ[1, z]^2/z, {z, 0, Infinity}]

>

> returns an invalid result, 0.869058, WITHOUT any warning

> message.

>

> This is why it is a BUG.

>

> By the way, again here we speak as usually about a family

> of bugs, say

>

> NIntegrate[Log[1 + z^2] BesselJ[0, z]^2/z, {z, 0, Infinity}]

> NIntegrate[Log[1 + z^2] BesselJ[2, z]^2/z, {z, 0, Infinity}]

> NIntegrate[Log[1 + z^2] BesselJ[3, z]^2/z, {z, 0, Infinity}]

>

> manifest the same bug (invalid value AND no warning).

>

> Best wishes,

>

> Vladimir Bondarenko

>

> VM and GEMM architect

> Co-founder, CEO, Mathematical Director

>

>

> - -

I agree partly with you.

It is a buggy performance as regards the no returning

of a warning message.

But as regards the incorrect result I don't believe

that it is a bug.

The default settings of NIntegrate cannot get a correct

numerical estaimation. That's all!

I don't believe that someone wants from a CAS algorithm

its default settings to cover all the possible integrals

that a user can encounter.

If so, who would need the so many options of NIntegrate?!

Dimitris

Jul 30, 2007, 4:19:41â€¯PM7/30/07

to

Hi.

I see a sense of humor that I don't encounter frequently in CAS

community.

Although I think I was clear in my first message I will make one

more attempt to explain myself.

This thread is about Numerical integration.

No Simplify, no Integrate, no (D)Solve and the staff.

Vladimir obviously discovers a bug.

But for me, it is a buggy performance because no message is returned

about the possible error of the result.

But as regards the incorrect result itself I don't believe

that it is a bug.

The default settings of NIntegrate cannot get a correct

numerical estaimation. That's all! No more, no less.

I don't believe that someone wants from a CAS algorithm

its default settings to cover all the possible integrals

that a user can encounter.

If so, who would need the so many options of NIntegrate?!

Dimitris

PS

In[4]:=

\!\(NIntegrate[\(1\/\@x\) BesselJ[0, x], {x, 0, }]\)

>From In[4]:=

\!\(\*

RowBox[{\(NIntegrate::"slwcon

"\), \(\(:\)\(\ \)\), "\<\"Numerical integration

converging too slowly; suspect

one of the following: singularity, value of the integration being

0, \

oscillatory integrand, or insufficient WorkingPrecision. If your

integrand is \

oscillatory try using the option Method->Oscillatory in NIntegrate. \

\\!\\(\\*ButtonBox[\\\"More...\\\", ButtonStyle->\\\"RefGuideLinkText\\

\", \

ButtonFrame->None, ButtonData:>\\\"NIntegrate::slwcon\\\"]\\)\"\>"}]\)

>From In[4]:=

\!\(\*

RowBox[{\(NIntegrate::"ncvb"\), \(\(:\)\(\ \)\), "\<\"NIntegrate

failed

to converge to prescribed accuracy

after \\!\\(7\\) recursive bisections in \\!\\(x\\) near \\!\\(x\

\) = \\!\

\\(1.9939919252733317`*^19\\). \\!\\(\\*ButtonBox[\\\"More...\\\", \

ButtonStyle->\\\"RefGuideLinkText\\\", ButtonFrame->None, \

ButtonData:>\\\"NIntegrate::ncvb\\\"]\\)\"\>"}]\)

Out[4]=

4.70489

Is is a bug the incorrect result?

Think twice!

In[3]:=

NIntegrate[(1/Sqrt[x])*BesselJ[0, x], {x, 0, Infinity}, Method ->

Oscillatory]

Out[3]=

2.092099240131269

Jul 30, 2007, 4:21:12â€¯PM7/30/07

to

> I don't believe that someone wants from a CAS algorithm

I should have said "waits" instead of wants.

Jul 30, 2007, 6:25:05â€¯PM7/30/07

to

On 30 , 06:37, Vladimir Bondarenko <v...@cybertester.com> wrote:

> http://www.cybertester.com/ Cyber Tester, LLChttp://maple.bug-list.org/ Maple Bugs Encyclopaediahttp://www.CAS-testing.org/ CAS Testing

Apart from the performance of NIntegrate iself, has

some interesting issues must be pointed out.

1)

Mma 5.2 (and 6 I guess, in view of Vladimir's original message)

In[3]:=

Integrate[Log[1 + z^2]*(BesselJ[1, z]^2/z), {z, 0, Infinity}]

N[%, 10]

Out[3]=

MeijerG[{{1/2}, {}}, {{0, 0}, {-1}}, 1]/(2*Sqrt[Pi])

Out[4]=

0.8732180258611361020606751916`10.

Maple 10

convert("Integrate[Log[1 + z^2]*(BesselJ[1, z]^2/z), {z, 0,

Infinity}]",FromMma,evaluate);evalf(%,20);

convert("Integrate[Log[1 + z^2]*(BesselJ[1, z]^2/z), {z, 0,

Infinity}]",FromMma,evaluate);evalf(%,20);

1/2

1/2 (2 Pi BesselI(0, 1) BesselK(0, 1)

1/2 / 1/2

+ 2 Pi BesselK(1, 1) BesselI(1, 1)) / Pi

/

0.87321802586113613925

Is would be cool how someone can simplify the MiejerG function

of Mma to the Bessels expression of Maple.

2)How can somebody obtaining in a reasonable timing

a numerical estimation in Maple 10?

evalf(Int(ln(1+z^2)*BesselJ(1,z)^2/z,z = 0 .. infinity));

does not return a result after several minutes.

If i miss something fundamentally of Maple, I apologize.

I would like to see how someone must work here.

3) Although Mma 5.2 is quite good I would like to see

a some workarounds offering better numerical estimation.

For example myself couldn't get something better than

In[16]:=

NIntegrate[Log[1+z^2]*(BesselJ[1,z]^2/z),{z,

0, },MaxRecursion\[Rule]18]//InputForm

>From In[16]:=

\!\(\*

RowBox[{\(NIntegrate::"slwcon

"\), \(\(:\)\(\ \)\), "\<\"Numerical integration

converging too slowly; suspect

one of the following: singularity, value of the integration being

0, \

oscillatory integrand, or insufficient WorkingPrecision. If your

integrand is \

oscillatory try using the option Method->Oscillatory in NIntegrate. \

\\!\\(\\*ButtonBox[\\\"More...\\\", ButtonStyle->\\\"RefGuideLinkText\\

\", \

ButtonFrame->None, ButtonData:>\\\"NIntegrate::slwcon\\\"]\\)\"\>"}]\)

>From In[16]:=

\!\(\*

RowBox[{\(NIntegrate::"ncvb"\), \(\(:\)\(\ \)\), "\<\"NIntegrate

failed

to converge to prescribed accuracy

after \\!\\(19\\) recursive bisections in \\!\\(z\\) near \\!\\(z\

\) = \

\\!\\(35857.55603944016`\\). \\!\\(\\*ButtonBox[\\\"More...\\\", \

ButtonStyle->\\\"RefGuideLinkText\\\", ButtonFrame->None, \

ButtonData:>\\\"NIntegrate::ncvb\\\"]\\)\"\>"}]\)

Out[16]//InputForm=

0.8732193803103058

Dimitris

Reply all

Reply to author

Forward

0 new messages

Search

Clear search

Close search

Google apps

Main menu