Numerical integral of sin(x)/x from 0 to inf

11 views (last 30 days)
I am using a loop to estimate the parameters in a formula. However, when using the syntax 'integral' to numerically integrate sin(x)/x from 0 to inf, Matlab always gives me a warning and a wrong answer. The exact result of this integral is pi/2 if I use the syntax 'int'. Unfortunately, for estimation purpose, numerical integration saves me a great deal of time, and I can only use 'integral' rather than 'int'. My formula is pretty similar to the problem of integrating sin(x)/x. Can anyone help me correct the result given by Matlab 'integral'? Many thanks!

Accepted Answer

Star Strider
Star Strider on 2 Dec 2018
One option is to use a large upper limit that is less than Inf:
z = integral(@(x) sin(x)./x, 0, 1E+4)
z =
1.57089154538596
That is reasonably close to .
  2 Comments
Livvy Zhen
Livvy Zhen on 2 Dec 2018
Thanks! I have tried that before. But this function is just for demonstration. My formula is similar to it and this setup will greatly slow down my estimation. I am wondering if Matlab could use a more robust way to calculate the numerical integral.
Star Strider
Star Strider on 2 Dec 2018
My pleasure.
Please post the function you want to integrate, as well as any additional information as necesary. It may be possible to use the 'Waypoints' name-value pair to help approximating it. With the necessary information, we may be able to help you with it.

Sign in to comment.

More Answers (1)

madhan ravi
madhan ravi on 2 Dec 2018
y=@(x)sin(x)./x
integral(y,0,inf)
  5 Comments
madhan ravi
madhan ravi on 2 Dec 2018
So the error message is really clear " it is difficult to approximate numerically"
Livvy Zhen
Livvy Zhen on 2 Dec 2018
That is why I am posting this question. This numerical integral works well on other softwares.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!