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

Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript