# Using Simpson's method to integrate a complex function

Problem Statement
The question includes programming, but the basic problem is related to mathematics, that's why I posted it here.

In fact, I'm working on a condensed matter physics paper,where I need to draw integral

$g(\nu,2k_fz)$ in units of $(2k_f)^{-1}$ and interms of z.

$g(\nu,2k_fz)=\int_{1}^{-1}\dfrac{\nu^2(1-u^2)usin(2k_fzu)}{u^2-\nu^2/2+u\sqrt{u^2-\nu^2}}\, du$, where $\nu=0.5$

I'm using Simpson's method to evaluate this integral. The problem is that the sign inside the the radical in the denominator will be negative while evaluating this method, that's why we need to treat the integrand as a complex function. The program(python) will plot for me just the real part of the result.

But my main question is: Is it Ok to use Simpson's method in order to evaluate integrals that their integrand is a complex function?

because the graph I'm getting is not even close to the graph depicted in the paper.

Is contour integration a better choice?
Relevant Equations
Simpson's method :

Related Calculus and Beyond Homework News on Phys.org

#### DrClaude

Mentor
But my main question is: Is it Ok to use Simpson's method in order to evaluate integrals that their integrand is a complex function?
Yes, that shouldn't be a problem.

Yes, that shouldn't be a problem.
Yes, it was a tiny mistake in my code that was stopping the graph to appear as it should.
But if we consider the problem in case $\nu=0$,a singularity will arise while applying Simpson's method for u=0.
Do you know a trick or a way to go around this singularity?

#### DrClaude

Mentor
quadpack has routines to deal with integration of functions with singularities. It has been ported to C in GSL, but I don't think it is available in python.

#### cpt_carrot

quadpack has routines to deal with integration of functions with singularities. It has been ported to C in GSL, but I don't think it is available in python.

#### DrClaude

Mentor
I don't use python, but from the information I could find, only a basic quadrature method from quadpack is implemented in scipy, not the routines for dealing with singularities.

#### cpt_carrot

I don't use python, but from the information I could find, only a basic quadrature method from quadpack is implemented in scipy, not the routines for dealing with singularities.
By default I think quad calls qagse which does support singularities, you can also specify a series of domains to avoid them. With the right set of options you can get to most of the quadpack routines.

#### DrClaude

Mentor
By default I think quad calls qagse which does support singularities, you can also specify a series of domains to avoid them. With the right set of options you can get to most of the quadpack routines.
You're right. I stand corrected.

So, @amjad-sh, you can use scipy.integrate.quad and specify the position of the singularity.

"Using Simpson's method to integrate a complex function"

### Physics Forums Values

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving