Dealing with complex integrals of a highly oscillatory type
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
The following integral can be computed analytically using complex integration (required due to the pole at the origin):
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/338500/image.png)
However, if I try to evaluate this numerically, I run into trouble. Two approaches
1. Numerically: This is doomed to fail due to the function's behaviour at the origin.
fun = @(x) exp(1j*x)./x;
integral(fun,-inf,inf)
Warning: Reached the limit on the maximum number of intervals in use. Approximate bound on error
is 9.8e+00. The integral may not exist, or it may be difficult to approximate numerically to
the requested accuracy.
2. Symbolically: This gives the wrong answer and leaves a limit to be evaluated
syms x;
f(x) = exp(1j*x)/x;
int(f,[-inf,inf],'PrincipalValue',true)
ans =
- pi*1i + limit(- ei(-1i/eps27) + ei(1i/eps27), eps27, 0, 'Right')
What is the way to evaluating such integrals in matlab? I suspect the trouble is not at the origin, but at how the function is behaving (numerically) at the end points.
0 commentaires
Réponses (1)
Alan Stevens
le 29 Juil 2020
I don't know in general, but for this particular integral, since cos(x)/x is odd, its contribution to the integral is zero and we can do the following:
>> syms x
>> I = i*int(sin(x)/x,-inf,inf)
I =
pi*1i
Voir également
Catégories
En savoir plus sur Calculus dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!