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
Click For Summary
SUMMARY

The forum discussion focuses on plotting the Voigt Profile function using Python, specifically the equation H(a,u) = (a/π) ∫(e^(-y²)/(a²+(u-y)²)) dy. Users are encouraged to implement this function for multiple values of the parameter 'a' and visualize the results. A sample code snippet utilizing NumPy, SciPy, and Matplotlib is provided, demonstrating the integration of the function and plotting capabilities. The discussion emphasizes the importance of understanding the underlying calculus and numerical integration techniques.

PREREQUISITES
  • Familiarity with Python programming
  • Understanding of numerical integration methods
  • Basic knowledge of the Voigt Profile function
  • Experience with data visualization libraries such as Matplotlib
NEXT STEPS
  • Learn about SciPy's quad function for numerical integration
  • Explore Matplotlib for advanced plotting techniques
  • Study the mathematical properties of the Voigt Profile function
  • Research numerical integration of infinite intervals
USEFUL FOR

Researchers, physicists, and data scientists interested in spectral analysis, as well as Python developers looking to enhance their skills in numerical methods and data visualization.

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

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

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 H(a_1,u), H(a_2,u), H(a_3,u) as functions of u. Can anyone provide a code ?
 
Technology 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

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

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 H(a_1,u), H(a_2,u), H(a_3,u) 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

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

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 H(a_1,u), H(a_2,u), H(a_3,u) 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.
 

Similar threads

  • · Replies 15 ·
Replies
15
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 50 ·
2
Replies
50
Views
6K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 7 ·
Replies
7
Views
5K
  • · Replies 4 ·
Replies
4
Views
6K
  • · Replies 6 ·
Replies
6
Views
2K
Replies
4
Views
5K
  • · Replies 1 ·
Replies
1
Views
3K