我试图在Python中使用FiPy解决一些微分方程,作为一个新手,我仍然有一些问题。我所做的是以下内容:我定义了一个单元格变量,我为这个变量求解了一个方程式并对其进行了更新。我想在每次迭代后存储它的值。这是一个例子:
a = CellVariable(mesh,name='a', value=0., hasOld=True)
# eq is an equation involving 'a'
# define an array to store the values of 'a' after solving 'eq'
a_tt = []
for t in range(10):
eq.sweep(dt=0.01)
a.updateOld()
a_tt.append(a)
我意识到自己的错误 - ' a_tt'每次更新' a时都会更新,所以我最后会有一个包含所有相同元素的数组。 为了避免这种情况,我还能做些什么呢?
答案 0 :(得分:1)
我认为a_tt.append(a.copy())
可能有用。
否则,http://www.ctcms.nist.gov/fipy/examples/diffusion/generated/examples.diffusion.mesh1D.html的扫描部分中使用的方法应该有效。类似的东西:
a_tt.append(CellVariable(mesh=m, value=a.value))