NIntegrate: How can I solve this integral numerically? NIntegrate fails while Integrate worksNIntegrate fails while Integrate worksCauchy principal value integral of a list of numbers. How?How to numerically integrate this integral?How to do multi-dimensional principal value integration?How to calculate the principal value for a two-dimensional integral numerically?Interesting discrepencies between integrate functionsHow to overcome this error in NIntegrate?Evaluating this double integral numerically using NIntegrateNIntegrate error message: “The integrand…has evaluated to non-numerical values for all sampling points in the region with boundaries…”How to solve this error in numerical integration?

Have any large aeroplanes been landed — safely and without damage — in locations that they could not be flown away from?

Why are examinees often not allowed to leave during the start and end of an exam?

Why didn't Caesar move against Sextus Pompey immediately after Munda?

Checkmate in 1 on a Tangled Board

What is the meaning of "it" in "as luck would have it"?

What's the point of stochastic volatiliy models if you can use local volatility?

Why doesn't SpaceX land boosters in Africa?

What could a Medieval society do with excess animal blood?

Find the closest three-digit hex colour

What would you need merely the term "collection" for pitches, but not "scale"?

What's the lunar calendar of two moons

How does the 'five minute adventuring day' affect class balance?

What is the lowest possible AC?

How to stop QGIS from looking for the wrong PostgreSQL host address in an existing workproject?

Tricolour nonogram

Why did the Apple IIe make a hideous noise if you inserted the disk upside down?

How useful would a hydroelectric power plant be in the post-apocalypse world?

Understanding the as-if rule, "the program was executed as written"

German idiomatic equivalents of 能骗就骗 (if you can cheat, then cheat)

How to track mail undetectably?

Robots in a spaceship

Is it advisable to inform the CEO about his brother accessing his office?

How does mmorpg store data?

How far can gerrymandering go?



NIntegrate: How can I solve this integral numerically? NIntegrate fails while Integrate works


NIntegrate fails while Integrate worksCauchy principal value integral of a list of numbers. How?How to numerically integrate this integral?How to do multi-dimensional principal value integration?How to calculate the principal value for a two-dimensional integral numerically?Interesting discrepencies between integrate functionsHow to overcome this error in NIntegrate?Evaluating this double integral numerically using NIntegrateNIntegrate error message: “The integrand…has evaluated to non-numerical values for all sampling points in the region with boundaries…”How to solve this error in numerical integration?













4












$begingroup$


I know the exact solution of the principal value of this integral is equal to zero:



$int_-1^1int_-1^1fracx^2sqrt1-x^2fracsqrt1-y^2y-xdydx=0$



doing:



Integrate[x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/(y - x), x, -1, 1, y, -1, 1, 
PrincipalValue -> True]


but I want to do it numerically and it doesn't work:



NIntegrate[x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/(y - x), x, -1, 1, y, -1, 1]


This is the error message returned:



enter image description here



How can I get Mathematica to solve this problem numerically?










share|improve this question











$endgroup$







  • 1




    $begingroup$
    The issue is that the integrand approaches infinity as x->±1, x->y, and y->x. That kind of behavior is toxic to numerical methods: you need to reason out a way to deal with it, not merely probe it numerically. PrincipalValue -> True gives you access to automated reasoning in this case, and you've solved the problem that way. Do you have a different problem you're trying to solve?
    $endgroup$
    – John Doty
    Mar 25 at 12:20










  • $begingroup$
    Yes, I'm trying to solve a similar integral, when x^2 is multplied by exp^(-i*b*(x + y)). So, firstly I wanted to try to solve this known integral.
    $endgroup$
    – Javier Alaminos
    Mar 25 at 12:31






  • 2




    $begingroup$
    Use option Exclusions -> -1, 1, y + x == 0]
    $endgroup$
    – user18792
    Mar 25 at 12:43






  • 1




    $begingroup$
    All that is built on the sand because the PrincipalValue option for multivariate integrals is undocumented.
    $endgroup$
    – user64494
    Mar 25 at 20:56















4












$begingroup$


I know the exact solution of the principal value of this integral is equal to zero:



$int_-1^1int_-1^1fracx^2sqrt1-x^2fracsqrt1-y^2y-xdydx=0$



doing:



Integrate[x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/(y - x), x, -1, 1, y, -1, 1, 
PrincipalValue -> True]


but I want to do it numerically and it doesn't work:



NIntegrate[x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/(y - x), x, -1, 1, y, -1, 1]


This is the error message returned:



enter image description here



How can I get Mathematica to solve this problem numerically?










share|improve this question











$endgroup$







  • 1




    $begingroup$
    The issue is that the integrand approaches infinity as x->±1, x->y, and y->x. That kind of behavior is toxic to numerical methods: you need to reason out a way to deal with it, not merely probe it numerically. PrincipalValue -> True gives you access to automated reasoning in this case, and you've solved the problem that way. Do you have a different problem you're trying to solve?
    $endgroup$
    – John Doty
    Mar 25 at 12:20










  • $begingroup$
    Yes, I'm trying to solve a similar integral, when x^2 is multplied by exp^(-i*b*(x + y)). So, firstly I wanted to try to solve this known integral.
    $endgroup$
    – Javier Alaminos
    Mar 25 at 12:31






  • 2




    $begingroup$
    Use option Exclusions -> -1, 1, y + x == 0]
    $endgroup$
    – user18792
    Mar 25 at 12:43






  • 1




    $begingroup$
    All that is built on the sand because the PrincipalValue option for multivariate integrals is undocumented.
    $endgroup$
    – user64494
    Mar 25 at 20:56













4












4








4





$begingroup$


I know the exact solution of the principal value of this integral is equal to zero:



$int_-1^1int_-1^1fracx^2sqrt1-x^2fracsqrt1-y^2y-xdydx=0$



doing:



Integrate[x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/(y - x), x, -1, 1, y, -1, 1, 
PrincipalValue -> True]


but I want to do it numerically and it doesn't work:



NIntegrate[x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/(y - x), x, -1, 1, y, -1, 1]


This is the error message returned:



enter image description here



How can I get Mathematica to solve this problem numerically?










share|improve this question











$endgroup$




I know the exact solution of the principal value of this integral is equal to zero:



$int_-1^1int_-1^1fracx^2sqrt1-x^2fracsqrt1-y^2y-xdydx=0$



doing:



Integrate[x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/(y - x), x, -1, 1, y, -1, 1, 
PrincipalValue -> True]


but I want to do it numerically and it doesn't work:



NIntegrate[x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/(y - x), x, -1, 1, y, -1, 1]


This is the error message returned:



enter image description here



How can I get Mathematica to solve this problem numerically?







numerical-integration






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 25 at 12:23









mjw

1,45011 bronze badges




1,45011 bronze badges










asked Mar 25 at 12:00









Javier AlaminosJavier Alaminos

213 bronze badges




213 bronze badges







  • 1




    $begingroup$
    The issue is that the integrand approaches infinity as x->±1, x->y, and y->x. That kind of behavior is toxic to numerical methods: you need to reason out a way to deal with it, not merely probe it numerically. PrincipalValue -> True gives you access to automated reasoning in this case, and you've solved the problem that way. Do you have a different problem you're trying to solve?
    $endgroup$
    – John Doty
    Mar 25 at 12:20










  • $begingroup$
    Yes, I'm trying to solve a similar integral, when x^2 is multplied by exp^(-i*b*(x + y)). So, firstly I wanted to try to solve this known integral.
    $endgroup$
    – Javier Alaminos
    Mar 25 at 12:31






  • 2




    $begingroup$
    Use option Exclusions -> -1, 1, y + x == 0]
    $endgroup$
    – user18792
    Mar 25 at 12:43






  • 1




    $begingroup$
    All that is built on the sand because the PrincipalValue option for multivariate integrals is undocumented.
    $endgroup$
    – user64494
    Mar 25 at 20:56












  • 1




    $begingroup$
    The issue is that the integrand approaches infinity as x->±1, x->y, and y->x. That kind of behavior is toxic to numerical methods: you need to reason out a way to deal with it, not merely probe it numerically. PrincipalValue -> True gives you access to automated reasoning in this case, and you've solved the problem that way. Do you have a different problem you're trying to solve?
    $endgroup$
    – John Doty
    Mar 25 at 12:20










  • $begingroup$
    Yes, I'm trying to solve a similar integral, when x^2 is multplied by exp^(-i*b*(x + y)). So, firstly I wanted to try to solve this known integral.
    $endgroup$
    – Javier Alaminos
    Mar 25 at 12:31






  • 2




    $begingroup$
    Use option Exclusions -> -1, 1, y + x == 0]
    $endgroup$
    – user18792
    Mar 25 at 12:43






  • 1




    $begingroup$
    All that is built on the sand because the PrincipalValue option for multivariate integrals is undocumented.
    $endgroup$
    – user64494
    Mar 25 at 20:56







1




1




$begingroup$
The issue is that the integrand approaches infinity as x->±1, x->y, and y->x. That kind of behavior is toxic to numerical methods: you need to reason out a way to deal with it, not merely probe it numerically. PrincipalValue -> True gives you access to automated reasoning in this case, and you've solved the problem that way. Do you have a different problem you're trying to solve?
$endgroup$
– John Doty
Mar 25 at 12:20




$begingroup$
The issue is that the integrand approaches infinity as x->±1, x->y, and y->x. That kind of behavior is toxic to numerical methods: you need to reason out a way to deal with it, not merely probe it numerically. PrincipalValue -> True gives you access to automated reasoning in this case, and you've solved the problem that way. Do you have a different problem you're trying to solve?
$endgroup$
– John Doty
Mar 25 at 12:20












$begingroup$
Yes, I'm trying to solve a similar integral, when x^2 is multplied by exp^(-i*b*(x + y)). So, firstly I wanted to try to solve this known integral.
$endgroup$
– Javier Alaminos
Mar 25 at 12:31




$begingroup$
Yes, I'm trying to solve a similar integral, when x^2 is multplied by exp^(-i*b*(x + y)). So, firstly I wanted to try to solve this known integral.
$endgroup$
– Javier Alaminos
Mar 25 at 12:31




2




2




$begingroup$
Use option Exclusions -> -1, 1, y + x == 0]
$endgroup$
– user18792
Mar 25 at 12:43




$begingroup$
Use option Exclusions -> -1, 1, y + x == 0]
$endgroup$
– user18792
Mar 25 at 12:43




1




1




$begingroup$
All that is built on the sand because the PrincipalValue option for multivariate integrals is undocumented.
$endgroup$
– user64494
Mar 25 at 20:56




$begingroup$
All that is built on the sand because the PrincipalValue option for multivariate integrals is undocumented.
$endgroup$
– user64494
Mar 25 at 20:56










2 Answers
2






active

oldest

votes


















2












$begingroup$

The main problem is the point x=y. In principle, it seems that there the integral is singular. If you agree to get the principal value of it, you may exclude this point by a regularization as follows



NIntegrate[
x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/Sqrt[(y - x)^2 + i^-2], x, -1 + 1/i,
1 - 1/i, y, -1 + 1/i, 1 - 1/i, Method -> "AdaptiveMonteCarlo"]


where i is a large number. Then you may increase i and check the convergence of the integral:



 lst = Table[1/i, 
NIntegrate[
x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/
Sqrt[(y - x)^2 + i^-2], x, -1 + 1/i, 1 - 1/i, y, -1 + 1/i,
1 - 1/i, Method -> "AdaptiveMonteCarlo"], i, 1000, 100000,
1000] // N;

ListLogPlot[lst /. x_, y_ -> 1/x, y, Frame -> True,
FrameLabel -> Style["Number i", 16], Style["Integral", 16]]


yielding this



enter image description here



One can further a few other methods which may eventually enable a more accurate estimate of the integral.



Have fun!






share|improve this answer









$endgroup$








  • 3




    $begingroup$
    I don't understand what you're plotting. The value of this integral is 0 and your result is around 12.
    $endgroup$
    – Javier Alaminos
    Mar 25 at 14:10










  • $begingroup$
    You are right, it is not the same integral, since I took Sqrt[(x-y)^2+eps^2] instead of x-y.
    $endgroup$
    – Alexei Boulbitch
    Mar 25 at 15:52










  • $begingroup$
    So, to solve the original integral what do I have to do?
    $endgroup$
    – Javier Alaminos
    Mar 25 at 18:28










  • $begingroup$
    Note that $sqrt(y-x)^2 + epsilon^2$ approaches $|y - x|$ as $epsilon to 0$, not the $y - x$ that's in the original integrand.
    $endgroup$
    – Michael Seifert
    Mar 25 at 18:35



















2












$begingroup$

As the others say,simply integrate by avoiding singular points?



Fixed.



Try other integral.




target = Compile[x, _Real, y, _Real, 
x/[Sqrt](1 - x) [Sqrt](1 - y^2)/(y - x)];
integrand[x_, y_] := If[Or[(1 - x) == 0, y == x], 0, target[x, y]];
Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1.]


=>



-4.06259



Integration by manual




.



Plus @@ Flatten@
Table[integrand[x, y]*0.001*0.001, x, -1., 1., 0.001, y, -1., 1.,
0.001]


=>



-3.99866



Integration by NIntegrate




N@Integrate[
x/Sqrt[1 - x] Sqrt[1 - y^2]/(y - x), x, -1, 1, y, -1, 1,
PrincipalValue -> True]


=>



-4.14669



the question's integral.



target = Compile[x, _Real, y, _Real, 
x^2/[Sqrt](1 - x^2) [Sqrt](1 - y^2)/(y - x)];
integrand[x_, y_] := If[Or[(1 - x^2) == 0, y == x], 0, target[x, y]];
Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1.]


=>



-0.4542



By manual.




Plus @@ Flatten@
Table[integrand[x, y]*0.1*0.1, x, -1., 1., 0.1, y, -1., 1., 0.1]


=>



-8.88178*10^-16



By other method.




Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1., 
Method -> "LocalAdaptive"]


=>



7.73766*10^-17


For now, we can see that the integral value is close to zero.






share|improve this answer











$endgroup$












  • $begingroup$
    But I can't avoid the singularity $x==y$, because for example if I have $x$ instead of $x^2$ the result of integral is $-pi^2/2$, and with your code the result is always 0.
    $endgroup$
    – Javier Alaminos
    Mar 25 at 18:05











  • $begingroup$
    @JavierAlaminos as your point,my code was always 0. it's mainly because my code returns Nothing when the condition met,I think. so just modified.
    $endgroup$
    – Xminer
    Mar 25 at 20:02













Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "387"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f193926%2fnintegrate-how-can-i-solve-this-integral-numerically-nintegrate-fails-while-in%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









2












$begingroup$

The main problem is the point x=y. In principle, it seems that there the integral is singular. If you agree to get the principal value of it, you may exclude this point by a regularization as follows



NIntegrate[
x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/Sqrt[(y - x)^2 + i^-2], x, -1 + 1/i,
1 - 1/i, y, -1 + 1/i, 1 - 1/i, Method -> "AdaptiveMonteCarlo"]


where i is a large number. Then you may increase i and check the convergence of the integral:



 lst = Table[1/i, 
NIntegrate[
x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/
Sqrt[(y - x)^2 + i^-2], x, -1 + 1/i, 1 - 1/i, y, -1 + 1/i,
1 - 1/i, Method -> "AdaptiveMonteCarlo"], i, 1000, 100000,
1000] // N;

ListLogPlot[lst /. x_, y_ -> 1/x, y, Frame -> True,
FrameLabel -> Style["Number i", 16], Style["Integral", 16]]


yielding this



enter image description here



One can further a few other methods which may eventually enable a more accurate estimate of the integral.



Have fun!






share|improve this answer









$endgroup$








  • 3




    $begingroup$
    I don't understand what you're plotting. The value of this integral is 0 and your result is around 12.
    $endgroup$
    – Javier Alaminos
    Mar 25 at 14:10










  • $begingroup$
    You are right, it is not the same integral, since I took Sqrt[(x-y)^2+eps^2] instead of x-y.
    $endgroup$
    – Alexei Boulbitch
    Mar 25 at 15:52










  • $begingroup$
    So, to solve the original integral what do I have to do?
    $endgroup$
    – Javier Alaminos
    Mar 25 at 18:28










  • $begingroup$
    Note that $sqrt(y-x)^2 + epsilon^2$ approaches $|y - x|$ as $epsilon to 0$, not the $y - x$ that's in the original integrand.
    $endgroup$
    – Michael Seifert
    Mar 25 at 18:35
















2












$begingroup$

The main problem is the point x=y. In principle, it seems that there the integral is singular. If you agree to get the principal value of it, you may exclude this point by a regularization as follows



NIntegrate[
x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/Sqrt[(y - x)^2 + i^-2], x, -1 + 1/i,
1 - 1/i, y, -1 + 1/i, 1 - 1/i, Method -> "AdaptiveMonteCarlo"]


where i is a large number. Then you may increase i and check the convergence of the integral:



 lst = Table[1/i, 
NIntegrate[
x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/
Sqrt[(y - x)^2 + i^-2], x, -1 + 1/i, 1 - 1/i, y, -1 + 1/i,
1 - 1/i, Method -> "AdaptiveMonteCarlo"], i, 1000, 100000,
1000] // N;

ListLogPlot[lst /. x_, y_ -> 1/x, y, Frame -> True,
FrameLabel -> Style["Number i", 16], Style["Integral", 16]]


yielding this



enter image description here



One can further a few other methods which may eventually enable a more accurate estimate of the integral.



Have fun!






share|improve this answer









$endgroup$








  • 3




    $begingroup$
    I don't understand what you're plotting. The value of this integral is 0 and your result is around 12.
    $endgroup$
    – Javier Alaminos
    Mar 25 at 14:10










  • $begingroup$
    You are right, it is not the same integral, since I took Sqrt[(x-y)^2+eps^2] instead of x-y.
    $endgroup$
    – Alexei Boulbitch
    Mar 25 at 15:52










  • $begingroup$
    So, to solve the original integral what do I have to do?
    $endgroup$
    – Javier Alaminos
    Mar 25 at 18:28










  • $begingroup$
    Note that $sqrt(y-x)^2 + epsilon^2$ approaches $|y - x|$ as $epsilon to 0$, not the $y - x$ that's in the original integrand.
    $endgroup$
    – Michael Seifert
    Mar 25 at 18:35














2












2








2





$begingroup$

The main problem is the point x=y. In principle, it seems that there the integral is singular. If you agree to get the principal value of it, you may exclude this point by a regularization as follows



NIntegrate[
x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/Sqrt[(y - x)^2 + i^-2], x, -1 + 1/i,
1 - 1/i, y, -1 + 1/i, 1 - 1/i, Method -> "AdaptiveMonteCarlo"]


where i is a large number. Then you may increase i and check the convergence of the integral:



 lst = Table[1/i, 
NIntegrate[
x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/
Sqrt[(y - x)^2 + i^-2], x, -1 + 1/i, 1 - 1/i, y, -1 + 1/i,
1 - 1/i, Method -> "AdaptiveMonteCarlo"], i, 1000, 100000,
1000] // N;

ListLogPlot[lst /. x_, y_ -> 1/x, y, Frame -> True,
FrameLabel -> Style["Number i", 16], Style["Integral", 16]]


yielding this



enter image description here



One can further a few other methods which may eventually enable a more accurate estimate of the integral.



Have fun!






share|improve this answer









$endgroup$



The main problem is the point x=y. In principle, it seems that there the integral is singular. If you agree to get the principal value of it, you may exclude this point by a regularization as follows



NIntegrate[
x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/Sqrt[(y - x)^2 + i^-2], x, -1 + 1/i,
1 - 1/i, y, -1 + 1/i, 1 - 1/i, Method -> "AdaptiveMonteCarlo"]


where i is a large number. Then you may increase i and check the convergence of the integral:



 lst = Table[1/i, 
NIntegrate[
x^2/Sqrt[1 - x^2] Sqrt[1 - y^2]/
Sqrt[(y - x)^2 + i^-2], x, -1 + 1/i, 1 - 1/i, y, -1 + 1/i,
1 - 1/i, Method -> "AdaptiveMonteCarlo"], i, 1000, 100000,
1000] // N;

ListLogPlot[lst /. x_, y_ -> 1/x, y, Frame -> True,
FrameLabel -> Style["Number i", 16], Style["Integral", 16]]


yielding this



enter image description here



One can further a few other methods which may eventually enable a more accurate estimate of the integral.



Have fun!







share|improve this answer












share|improve this answer



share|improve this answer










answered Mar 25 at 13:04









Alexei BoulbitchAlexei Boulbitch

22.6k27 silver badges76 bronze badges




22.6k27 silver badges76 bronze badges







  • 3




    $begingroup$
    I don't understand what you're plotting. The value of this integral is 0 and your result is around 12.
    $endgroup$
    – Javier Alaminos
    Mar 25 at 14:10










  • $begingroup$
    You are right, it is not the same integral, since I took Sqrt[(x-y)^2+eps^2] instead of x-y.
    $endgroup$
    – Alexei Boulbitch
    Mar 25 at 15:52










  • $begingroup$
    So, to solve the original integral what do I have to do?
    $endgroup$
    – Javier Alaminos
    Mar 25 at 18:28










  • $begingroup$
    Note that $sqrt(y-x)^2 + epsilon^2$ approaches $|y - x|$ as $epsilon to 0$, not the $y - x$ that's in the original integrand.
    $endgroup$
    – Michael Seifert
    Mar 25 at 18:35













  • 3




    $begingroup$
    I don't understand what you're plotting. The value of this integral is 0 and your result is around 12.
    $endgroup$
    – Javier Alaminos
    Mar 25 at 14:10










  • $begingroup$
    You are right, it is not the same integral, since I took Sqrt[(x-y)^2+eps^2] instead of x-y.
    $endgroup$
    – Alexei Boulbitch
    Mar 25 at 15:52










  • $begingroup$
    So, to solve the original integral what do I have to do?
    $endgroup$
    – Javier Alaminos
    Mar 25 at 18:28










  • $begingroup$
    Note that $sqrt(y-x)^2 + epsilon^2$ approaches $|y - x|$ as $epsilon to 0$, not the $y - x$ that's in the original integrand.
    $endgroup$
    – Michael Seifert
    Mar 25 at 18:35








3




3




$begingroup$
I don't understand what you're plotting. The value of this integral is 0 and your result is around 12.
$endgroup$
– Javier Alaminos
Mar 25 at 14:10




$begingroup$
I don't understand what you're plotting. The value of this integral is 0 and your result is around 12.
$endgroup$
– Javier Alaminos
Mar 25 at 14:10












$begingroup$
You are right, it is not the same integral, since I took Sqrt[(x-y)^2+eps^2] instead of x-y.
$endgroup$
– Alexei Boulbitch
Mar 25 at 15:52




$begingroup$
You are right, it is not the same integral, since I took Sqrt[(x-y)^2+eps^2] instead of x-y.
$endgroup$
– Alexei Boulbitch
Mar 25 at 15:52












$begingroup$
So, to solve the original integral what do I have to do?
$endgroup$
– Javier Alaminos
Mar 25 at 18:28




$begingroup$
So, to solve the original integral what do I have to do?
$endgroup$
– Javier Alaminos
Mar 25 at 18:28












$begingroup$
Note that $sqrt(y-x)^2 + epsilon^2$ approaches $|y - x|$ as $epsilon to 0$, not the $y - x$ that's in the original integrand.
$endgroup$
– Michael Seifert
Mar 25 at 18:35





$begingroup$
Note that $sqrt(y-x)^2 + epsilon^2$ approaches $|y - x|$ as $epsilon to 0$, not the $y - x$ that's in the original integrand.
$endgroup$
– Michael Seifert
Mar 25 at 18:35












2












$begingroup$

As the others say,simply integrate by avoiding singular points?



Fixed.



Try other integral.




target = Compile[x, _Real, y, _Real, 
x/[Sqrt](1 - x) [Sqrt](1 - y^2)/(y - x)];
integrand[x_, y_] := If[Or[(1 - x) == 0, y == x], 0, target[x, y]];
Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1.]


=>



-4.06259



Integration by manual




.



Plus @@ Flatten@
Table[integrand[x, y]*0.001*0.001, x, -1., 1., 0.001, y, -1., 1.,
0.001]


=>



-3.99866



Integration by NIntegrate




N@Integrate[
x/Sqrt[1 - x] Sqrt[1 - y^2]/(y - x), x, -1, 1, y, -1, 1,
PrincipalValue -> True]


=>



-4.14669



the question's integral.



target = Compile[x, _Real, y, _Real, 
x^2/[Sqrt](1 - x^2) [Sqrt](1 - y^2)/(y - x)];
integrand[x_, y_] := If[Or[(1 - x^2) == 0, y == x], 0, target[x, y]];
Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1.]


=>



-0.4542



By manual.




Plus @@ Flatten@
Table[integrand[x, y]*0.1*0.1, x, -1., 1., 0.1, y, -1., 1., 0.1]


=>



-8.88178*10^-16



By other method.




Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1., 
Method -> "LocalAdaptive"]


=>



7.73766*10^-17


For now, we can see that the integral value is close to zero.






share|improve this answer











$endgroup$












  • $begingroup$
    But I can't avoid the singularity $x==y$, because for example if I have $x$ instead of $x^2$ the result of integral is $-pi^2/2$, and with your code the result is always 0.
    $endgroup$
    – Javier Alaminos
    Mar 25 at 18:05











  • $begingroup$
    @JavierAlaminos as your point,my code was always 0. it's mainly because my code returns Nothing when the condition met,I think. so just modified.
    $endgroup$
    – Xminer
    Mar 25 at 20:02















2












$begingroup$

As the others say,simply integrate by avoiding singular points?



Fixed.



Try other integral.




target = Compile[x, _Real, y, _Real, 
x/[Sqrt](1 - x) [Sqrt](1 - y^2)/(y - x)];
integrand[x_, y_] := If[Or[(1 - x) == 0, y == x], 0, target[x, y]];
Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1.]


=>



-4.06259



Integration by manual




.



Plus @@ Flatten@
Table[integrand[x, y]*0.001*0.001, x, -1., 1., 0.001, y, -1., 1.,
0.001]


=>



-3.99866



Integration by NIntegrate




N@Integrate[
x/Sqrt[1 - x] Sqrt[1 - y^2]/(y - x), x, -1, 1, y, -1, 1,
PrincipalValue -> True]


=>



-4.14669



the question's integral.



target = Compile[x, _Real, y, _Real, 
x^2/[Sqrt](1 - x^2) [Sqrt](1 - y^2)/(y - x)];
integrand[x_, y_] := If[Or[(1 - x^2) == 0, y == x], 0, target[x, y]];
Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1.]


=>



-0.4542



By manual.




Plus @@ Flatten@
Table[integrand[x, y]*0.1*0.1, x, -1., 1., 0.1, y, -1., 1., 0.1]


=>



-8.88178*10^-16



By other method.




Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1., 
Method -> "LocalAdaptive"]


=>



7.73766*10^-17


For now, we can see that the integral value is close to zero.






share|improve this answer











$endgroup$












  • $begingroup$
    But I can't avoid the singularity $x==y$, because for example if I have $x$ instead of $x^2$ the result of integral is $-pi^2/2$, and with your code the result is always 0.
    $endgroup$
    – Javier Alaminos
    Mar 25 at 18:05











  • $begingroup$
    @JavierAlaminos as your point,my code was always 0. it's mainly because my code returns Nothing when the condition met,I think. so just modified.
    $endgroup$
    – Xminer
    Mar 25 at 20:02













2












2








2





$begingroup$

As the others say,simply integrate by avoiding singular points?



Fixed.



Try other integral.




target = Compile[x, _Real, y, _Real, 
x/[Sqrt](1 - x) [Sqrt](1 - y^2)/(y - x)];
integrand[x_, y_] := If[Or[(1 - x) == 0, y == x], 0, target[x, y]];
Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1.]


=>



-4.06259



Integration by manual




.



Plus @@ Flatten@
Table[integrand[x, y]*0.001*0.001, x, -1., 1., 0.001, y, -1., 1.,
0.001]


=>



-3.99866



Integration by NIntegrate




N@Integrate[
x/Sqrt[1 - x] Sqrt[1 - y^2]/(y - x), x, -1, 1, y, -1, 1,
PrincipalValue -> True]


=>



-4.14669



the question's integral.



target = Compile[x, _Real, y, _Real, 
x^2/[Sqrt](1 - x^2) [Sqrt](1 - y^2)/(y - x)];
integrand[x_, y_] := If[Or[(1 - x^2) == 0, y == x], 0, target[x, y]];
Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1.]


=>



-0.4542



By manual.




Plus @@ Flatten@
Table[integrand[x, y]*0.1*0.1, x, -1., 1., 0.1, y, -1., 1., 0.1]


=>



-8.88178*10^-16



By other method.




Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1., 
Method -> "LocalAdaptive"]


=>



7.73766*10^-17


For now, we can see that the integral value is close to zero.






share|improve this answer











$endgroup$



As the others say,simply integrate by avoiding singular points?



Fixed.



Try other integral.




target = Compile[x, _Real, y, _Real, 
x/[Sqrt](1 - x) [Sqrt](1 - y^2)/(y - x)];
integrand[x_, y_] := If[Or[(1 - x) == 0, y == x], 0, target[x, y]];
Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1.]


=>



-4.06259



Integration by manual




.



Plus @@ Flatten@
Table[integrand[x, y]*0.001*0.001, x, -1., 1., 0.001, y, -1., 1.,
0.001]


=>



-3.99866



Integration by NIntegrate




N@Integrate[
x/Sqrt[1 - x] Sqrt[1 - y^2]/(y - x), x, -1, 1, y, -1, 1,
PrincipalValue -> True]


=>



-4.14669



the question's integral.



target = Compile[x, _Real, y, _Real, 
x^2/[Sqrt](1 - x^2) [Sqrt](1 - y^2)/(y - x)];
integrand[x_, y_] := If[Or[(1 - x^2) == 0, y == x], 0, target[x, y]];
Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1.]


=>



-0.4542



By manual.




Plus @@ Flatten@
Table[integrand[x, y]*0.1*0.1, x, -1., 1., 0.1, y, -1., 1., 0.1]


=>



-8.88178*10^-16



By other method.




Quiet@NIntegrate[integrand[x, y], x, -1., 1., y, -1., 1., 
Method -> "LocalAdaptive"]


=>



7.73766*10^-17


For now, we can see that the integral value is close to zero.







share|improve this answer














share|improve this answer



share|improve this answer








edited Mar 25 at 19:59

























answered Mar 25 at 15:16









XminerXminer

6932 silver badges13 bronze badges




6932 silver badges13 bronze badges











  • $begingroup$
    But I can't avoid the singularity $x==y$, because for example if I have $x$ instead of $x^2$ the result of integral is $-pi^2/2$, and with your code the result is always 0.
    $endgroup$
    – Javier Alaminos
    Mar 25 at 18:05











  • $begingroup$
    @JavierAlaminos as your point,my code was always 0. it's mainly because my code returns Nothing when the condition met,I think. so just modified.
    $endgroup$
    – Xminer
    Mar 25 at 20:02
















  • $begingroup$
    But I can't avoid the singularity $x==y$, because for example if I have $x$ instead of $x^2$ the result of integral is $-pi^2/2$, and with your code the result is always 0.
    $endgroup$
    – Javier Alaminos
    Mar 25 at 18:05











  • $begingroup$
    @JavierAlaminos as your point,my code was always 0. it's mainly because my code returns Nothing when the condition met,I think. so just modified.
    $endgroup$
    – Xminer
    Mar 25 at 20:02















$begingroup$
But I can't avoid the singularity $x==y$, because for example if I have $x$ instead of $x^2$ the result of integral is $-pi^2/2$, and with your code the result is always 0.
$endgroup$
– Javier Alaminos
Mar 25 at 18:05





$begingroup$
But I can't avoid the singularity $x==y$, because for example if I have $x$ instead of $x^2$ the result of integral is $-pi^2/2$, and with your code the result is always 0.
$endgroup$
– Javier Alaminos
Mar 25 at 18:05













$begingroup$
@JavierAlaminos as your point,my code was always 0. it's mainly because my code returns Nothing when the condition met,I think. so just modified.
$endgroup$
– Xminer
Mar 25 at 20:02




$begingroup$
@JavierAlaminos as your point,my code was always 0. it's mainly because my code returns Nothing when the condition met,I think. so just modified.
$endgroup$
– Xminer
Mar 25 at 20:02

















draft saved

draft discarded
















































Thanks for contributing an answer to Mathematica Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid …


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f193926%2fnintegrate-how-can-i-solve-this-integral-numerically-nintegrate-fails-while-in%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

How to preserve electronics (computers, tablets and phones) for hundreds of years Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) The network's official Twitter account is up and running again. What content…How might modern humans leave a message for 50,000 years?How would an aquatic race develop computers?How do we make computers care for human life?Keeping supplies for 1000 yearsWhat will cell phones become in 100 years?What body armor protects against a laser?Could a society attain 1800s technology if limited to using copper and bronze?Electricity power (magic) and electronicsScavenging metal resources in post-apocalypse after 100 yearsWhy would precursors create devices that can survive and still work after hundreds of years?

155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해

Convert JSON to MapSimplest way to convert a string representing JSON array into Java array List of key value pairsHow to take String JSON values into HashMapConvert a JSON String to a HashMapCreating BSON object from JSON stringJSONObject - How to get a value ?Better Map ConstructorReading JSON from Url javaUpdate columns if input values are not null otherwise ignore and keep the existing values of column in databaseHow to store object represented as Json string into Couchbase Lite?Go JSON into MapHow do I efficiently iterate over each entry in a Java Map?Sort a Map<Key, Value> by valuesHow to round a number to n decimal places in JavaCan comments be used in JSON?How do I read / convert an InputStream into a String in Java?How can I pretty-print JSON in a shell script?What is the correct JSON content type?How can I deserialize JSON to a simple Dictionary<string,string> in ASP.NET?Why does Google prepend while(1); to their JSON responses?Parse JSON in JavaScript?