Matplotlib动画无播放效果:多顶帽函数时间演化绘图问题求助
问题原因
动画不生效的核心原因是时间参数t没有正确传递到波函数的计算逻辑中,两个具体错误如下:
f_xtsqrd函数调用f_xt时,没有将自身接收的t参数传入,导致f_xt始终使用默认值t=0f_xt函数内部调用四个能量本征计算函数时,也没有传入t参数,本征函数始终用默认值t=0计算,最终得到的波函数模方不会随时间变化
修复方案
修改两个函数的对应逻辑即可:
def f_xt(x,n,x_0,alpha,t=0): sum_real=0 sum_imag=0 for i in range(1,n): if i % 2 == 0:# 偶数n sum_real += fn_even(i,alpha,x_0)*energy_eigen_even(x,i,t)[0] sum_imag += fn_even(i,alpha,x_0)*energy_eigen_even_image(x,i,t)[0] if i % 2 == 1: # 奇数n sum_real += fn_odd(i,alpha,x_0)*energy_eigen_odd(x,i,t)[0] sum_imag += fn_odd(i,alpha,x_0)*energy_eigen_odd_image(x,i,t)[0] return sum_real, sum_imag def f_xtsqrd(x,n,x_0,alpha,t=0): x,y=f_xt(x,n,x_0,alpha,t) return x**2 + y**2
修改完成后重新运行代码,即可正常生成随时间演化的动画。
内容的提问来源于stack exchange,提问作者Peter Sutherland
相关产品推荐
相关产品推荐

