How can I plot the Voigt Profile function with varying values of a in Python?

  • Context: Python 
  • Thread starter Thread starter sketos
  • Start date Start date
  • Tags Tags
    Python
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
4 replies · 4K views
sketos
Messages
55
Reaction score
0
I very new to python and this might look relatively easy to some of you. I need to write a code so that

[tex]H(a,u) = \frac{a}{\pi} \int_{-\infty}^{\infty} \frac{e^{-y^2}}{a^2+(u-y)^2}dy[/tex]

it plots the above function for different values of the a parameter, so that ultimately i will have a graph of 3 or more function of the form [itex]H(a_1,u)[/itex], [itex]H(a_2,u)[/itex], [itex]H(a_3,u)[/itex] as functions of u. Can anyone provide a code ?
 
Physics news on Phys.org
sketos said:
I very new to python and this might look relatively easy to some of you. I need to write a code so that

[tex]H(a,u) = \frac{a}{\pi} \int_{-\infty}^{\infty} \frac{e^{-y^2}}{a^2+(u-y)^2}dy[/tex]

it plots the above function for different values of the a parameter, so that ultimately i will have a graph of 3 or more function of the form [itex]H(a_1,u)[/itex], [itex]H(a_2,u)[/itex], [itex]H(a_3,u)[/itex] as functions of u. Can anyone provide a code ?

The key is
sketos said:
I need to write a code
We're not going to do this for you. We'll be happy to help you out on it, but you need to show us what you've tried.
 
import numpy as np
import pylab as pl
from math import exp
from scipy.integrate import quad

def voigt( u , a ):

def integrand( y ):

return exp(-y**2)/( a**2 + ( u - y )**2 )

return quad( integrand ,-np.inf , np.inf )x = np.linspace(-100 , 100 )

Func = voigt( x , 0.1 )

pl.plot( x , Func )

pl.show()

This is as far as i got before i posted...
 
sketos said:
I very new to python and this might look relatively easy to some of you. I need to write a code so that

[tex]H(a,u) = \frac{a}{\pi} \int_{-\infty}^{\infty} \frac{e^{-y^2}}{a^2+(u-y)^2}dy[/tex]

it plots the above function for different values of the a parameter, so that ultimately i will have a graph of 3 or more function of the form [itex]H(a_1,u)[/itex], [itex]H(a_2,u)[/itex], [itex]H(a_3,u)[/itex] as functions of u. Can anyone provide a code ?

Teach a man to fish he eats for a lifetime. Here's some important tools to breaking it down. I suck at calculus so I use this to calculate integrals.
http://integrals.wolfram.com/index.jsp
You would enter it in the Wolfram language, where x^y means x to the power of y, remember your parenthesis. Then take the output, and code it in the python language...its the same except x**y = x to the power of y.