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












4












$begingroup$


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



$int_{-1}^{1}int_{-1}^{1}frac{x^2}{sqrt{1-x^2}}frac{sqrt{1-y^2}}{y-x}dydx=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









New contributor




Javier Alaminos is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$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
    2 days ago










  • $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
    2 days ago






  • 2




    $begingroup$
    Use option Exclusions -> {-1, 1, y + x == 0}]
    $endgroup$
    – user18792
    2 days ago










  • $begingroup$
    All that is built on the sand because the PrincipalValue option for multivariate integrals is undocumented.
    $endgroup$
    – user64494
    2 days ago
















4












$begingroup$


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



$int_{-1}^{1}int_{-1}^{1}frac{x^2}{sqrt{1-x^2}}frac{sqrt{1-y^2}}{y-x}dydx=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









New contributor




Javier Alaminos is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$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
    2 days ago










  • $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
    2 days ago






  • 2




    $begingroup$
    Use option Exclusions -> {-1, 1, y + x == 0}]
    $endgroup$
    – user18792
    2 days ago










  • $begingroup$
    All that is built on the sand because the PrincipalValue option for multivariate integrals is undocumented.
    $endgroup$
    – user64494
    2 days ago














4












4








4





$begingroup$


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



$int_{-1}^{1}int_{-1}^{1}frac{x^2}{sqrt{1-x^2}}frac{sqrt{1-y^2}}{y-x}dydx=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









New contributor




Javier Alaminos is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$




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



$int_{-1}^{1}int_{-1}^{1}frac{x^2}{sqrt{1-x^2}}frac{sqrt{1-y^2}}{y-x}dydx=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









New contributor




Javier Alaminos is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Javier Alaminos is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 2 days ago









mjw

1,04110




1,04110






New contributor




Javier Alaminos is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 2 days ago









Javier AlaminosJavier Alaminos

213




213




New contributor




Javier Alaminos is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Javier Alaminos is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Javier Alaminos is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








  • 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
    2 days ago










  • $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
    2 days ago






  • 2




    $begingroup$
    Use option Exclusions -> {-1, 1, y + x == 0}]
    $endgroup$
    – user18792
    2 days ago










  • $begingroup$
    All that is built on the sand because the PrincipalValue option for multivariate integrals is undocumented.
    $endgroup$
    – user64494
    2 days ago














  • 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
    2 days ago










  • $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
    2 days ago






  • 2




    $begingroup$
    Use option Exclusions -> {-1, 1, y + x == 0}]
    $endgroup$
    – user18792
    2 days ago










  • $begingroup$
    All that is built on the sand because the PrincipalValue option for multivariate integrals is undocumented.
    $endgroup$
    – user64494
    2 days ago








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
2 days ago




$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
2 days ago












$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
2 days ago




$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
2 days ago




2




2




$begingroup$
Use option Exclusions -> {-1, 1, y + x == 0}]
$endgroup$
– user18792
2 days ago




$begingroup$
Use option Exclusions -> {-1, 1, y + x == 0}]
$endgroup$
– user18792
2 days ago












$begingroup$
All that is built on the sand because the PrincipalValue option for multivariate integrals is undocumented.
$endgroup$
– user64494
2 days ago




$begingroup$
All that is built on the sand because the PrincipalValue option for multivariate integrals is undocumented.
$endgroup$
– user64494
2 days ago










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
    2 days ago










  • $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
    2 days ago










  • $begingroup$
    So, to solve the original integral what do I have to do?
    $endgroup$
    – Javier Alaminos
    2 days ago










  • $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
    2 days ago





















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
    2 days ago












  • $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
    2 days ago











Your Answer





StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");

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
});


}
});






Javier Alaminos is a new contributor. Be nice, and check out our Code of Conduct.










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
    2 days ago










  • $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
    2 days ago










  • $begingroup$
    So, to solve the original integral what do I have to do?
    $endgroup$
    – Javier Alaminos
    2 days ago










  • $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
    2 days ago


















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
    2 days ago










  • $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
    2 days ago










  • $begingroup$
    So, to solve the original integral what do I have to do?
    $endgroup$
    – Javier Alaminos
    2 days ago










  • $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
    2 days ago
















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 2 days ago









Alexei BoulbitchAlexei Boulbitch

21.9k2570




21.9k2570








  • 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
    2 days ago










  • $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
    2 days ago










  • $begingroup$
    So, to solve the original integral what do I have to do?
    $endgroup$
    – Javier Alaminos
    2 days ago










  • $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
    2 days ago
















  • 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
    2 days ago










  • $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
    2 days ago










  • $begingroup$
    So, to solve the original integral what do I have to do?
    $endgroup$
    – Javier Alaminos
    2 days ago










  • $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
    2 days ago










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
2 days ago




$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
2 days ago












$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
2 days ago




$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
2 days ago












$begingroup$
So, to solve the original integral what do I have to do?
$endgroup$
– Javier Alaminos
2 days ago




$begingroup$
So, to solve the original integral what do I have to do?
$endgroup$
– Javier Alaminos
2 days ago












$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
2 days ago






$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
2 days ago













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
    2 days ago












  • $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
    2 days ago
















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
    2 days ago












  • $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
    2 days ago














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 2 days ago

























answered 2 days ago









XminerXminer

33818




33818












  • $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
    2 days ago












  • $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
    2 days ago


















  • $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
    2 days ago












  • $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
    2 days ago
















$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
2 days ago






$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
2 days ago














$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
2 days ago




$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
2 days ago










Javier Alaminos is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















Javier Alaminos is a new contributor. Be nice, and check out our Code of Conduct.













Javier Alaminos is a new contributor. Be nice, and check out our Code of Conduct.












Javier Alaminos is a new contributor. Be nice, and check out our Code of Conduct.
















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 did Captain America manage to do this?

迪纳利

南乌拉尔铁路局