Python实现将波函数由坐标空间变换为动量空间

import numpy as np
import math
import scipy as sci
import matplotlib.pyplot as plt
l=10
N=10000
x=np.linspace(-l,l,N)
phi1=np.exp(-x**2)#初始波函数
phi2=sci.fft(phi1)


scipy.fft为离散傅里叶变换,注意的是,直接将原波函数进行fft之后,也要将坐标空间转化为动量空间

def x_to_p(x):   #将坐标空间转化为动量空间与FFT之后的结果对应
    p=np.zeros_like(x)
    for i in range(0,int(N/2)):
        p[i]=math.pi*i/l
        p[i+int(N/2)]=math.pi*(i-N/2)/l
    return(p)
p=x_to_p(x)

这样变换之后的phi2中的元素就与动量空间的坐标相对应

本文地址:https://blog.csdn.net/m0_46296922/article/details/109892087