python与计算物理:正负离子势能随距离的变化

正负离子势能随距离的变化曲线,如下图:

直接上代码:

#!/usr/bin/env python
#coding=utf-8
'''
Created on 2013年10月12日

@author: yanghl
正负离子势能随距离的变化
'''
import numpy as np
import matplotlib.pylab as plt

x = np.linspace(1e-10, 1.0, 1000)
E_N = -1.436/x+5.86e-6/x**9
Emin = min(E_N)
x1 = np.linspace(1e-10,0.279,1000)
Emin = [Emin for i in x1]
plt.plot(x,-1.436/x+5.86e-6/x**9,x,-1.436/x,':',x,5.86e-6/x**9,'-.',linewidth=3)
plt.legend(['$E_N$','$E_A$','$E_R$'])

plt.plot(x1,Emin,'--',linewidth=2.5)

E0 = np.linspace(-6,-4.575,1000)
x0 = [0.279 for i in E0]
plt.plot(x0,E0,'--',linewidth=2.5)

plt.plot(0.279,-4.579,'o')
plt.annotate('$r_0=0.279nm,E_0=-4.575eV$', xy=(0.279,-4.575), xytext=(0.25, -2.0), 
             arrowprops=dict(facecolor='black', shrink=0.05))

plt.text(0.6, -4, r'$E_A = \frac{5.86*10^{-6}}{x^9},E_R=\frac{-1.436}{x}$', fontsize=15)
plt.text(0.6, -5, r'$E_N = E_A + E_R$', fontsize=15)
        
plt.axis([0,1.0,-6,6])
plt.grid()
plt.title(u'$E_N,E_A,E_R$随直径$r$从$0nm$到$1.0nm$的变化曲线', fontsize=16,fontproperties='STSong')
plt.xlabel('$r(nm)$')
plt.ylabel('$E(eV)$')
plt.savefig('atomic')
plt.show()


转载于:https://my.oschina.net/yanghl/blog/171443

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值