无标题文章

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()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容