無標(biāo)題文章

import pylab as plt

import numpy as np

N=101

dx=2./(N-1)

dt=0.1

D=1./4(dx*2)/dt

class diffusion:

def init(self,step):

self.step=step

self.x=np.linspace(-1,1,N)

self.y=np.linspace(0,0,N)

self.old_y=np.linspace(0,0,N)

self.y[50]=1

def update(self):

for i in range(N):

self.old_y[i]=self.y[i]

for i in range(1,N-1):

self.y[i]=self.old_y[i]+Ddt/(dx2)(self.old_y[i+1]+self.old_y[i-1]-2*self.old_y[i])

def fire(self):

for i in range(self.step):

self.update()

i+=1

plt.plot(self.x,self.y,label="step="+str(self.step))

A=diffusion(1000)

A.fire()

A=diffusion(100)

A.fire()

A=diffusion(10)

A.fire()

A=diffusion(50)

A.fire()

A=diffusion(200)

A.fire()

A=diffusion(500)

A.fire()

plt.legend(loc="best")

plt.show()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容