4

ここで何が起こっているのか(Mathematicaバージョン8.x):

NIntegrate[Log[1/2 + Sqrt[1/4 - 1/(4 x^2)]]/x, {x, 1, Infinity}]
--> -0.171007

Integrate[Log[1/2 + Sqrt[1/4 - 1/(4 x^2)]]/x, {x, 1, Infinity}] // N
--> 0.171007

NIntegrate[]値は正しいです。以前に選択で問題が発生しましPrincipalValueたが、a)mma8で修正されており、b)この積分には、積分領域に極がないか、少なくともあるべきではありません。

編集:この問題の解決策を提案する人々のおかげで、一般的な解決策は、例えば、排他的に使用することになるでしょうNIntegrate。ただし、具体的になぜこれが発生するのか、したがってこのバグが予測可能かどうかを調べることに興味があります。

4

1 に答える 1

5

これはのバグですIntegrate、私は恐れています。回避策として、変数の変更を行いますx->u^(-1/2)

In[12]:= Log[1/2 + Sqrt[1/4 - 1/(4*x^2)]]/x Dt[x]/Dt[u] /. 
 x -> 1/Sqrt[u]

Out[12]= Log[1/2 + Sqrt[1/4 - u/4]]/(2 u)

それで

In[14]:= Integrate[%, {u, 1, 0}]

Out[14]= 1/24 (-\[Pi]^2 + Log[8] Log[16])

In[15]:= N[%]

Out[15]= -0.171007

これはに同意しNIntegrateます。

于 2011-05-17T19:04:36.903 に答える