import matplotlib.pyplot as plt
import numpy as np
class diffusion:
def __init__(self,constant=0.3,l=500,update_times=50):
self.l=l
self.c=constant
self.ss=[[0]*self.l]
self.n=update_times
def diff(self):
self.ss[-1][int(self.l/2)]=1
temp=[0]*self.l
counter=1
while(1):
for i in range(len(self.ss[-1])-2):
temp[i+1]=self.ss[-1][i+1]+self.c*(self.ss[-1][i+2]+self.ss[-1][i]-2*self.ss[-1][i+1])
self.ss.append(temp)
counter+=1
if counter>self.n:
break
def show(self):
x=np.arange(0,self.l,1)
plt.plot(x,self.ss[-1],'.',label='time=%.2f'%(len(self.ss)-1))
plt.legend(frameon=True)
plt.grid(True)
plt.xlabel('x')
plt.ylabel('density')
plt.title('diffusion in one dimension')
a=diffusion(update_times=100)
a.diff()
a.show()
a=diffusion(update_times=500)
a.diff()
a.show()
a=diffusion(update_times=1000)
a.diff()
a.show()
a=diffusion(update_times=10000)
a.diff()
a.show()
a=diffusion(update_times=50000)
a.diff()
a.show()
代碼5
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 審查日期:2017-08-11 審查人員:鳴人 代碼文件:SystemSettingAboutActivity(關(guān)...
- 全局監(jiān)聽廣播可以在基類onResume,onPause中動(dòng)態(tài)注冊、取消接收器。 onReceive方法結(jié)束后bro...
- Alamofire.request request 函數(shù)簽名 request 函數(shù)實(shí)現(xiàn) SessionManage...