Я в пистоне новичек, поэтому не пинать.
Никак не могу заставить работать следующий код:
сама математическая часть работает. А вот анимацию никак не могу заставить работать. два часа бьюсь.
#!/usr/bin/python2
from numpy import *
from numpy.random import *
import matplotlib.pyplot as pyplot
from matplotlib import animation
gamma=1.6; sigma=1.6; mu=0.2; ro=1.5; D=100.0; alpha=3.0; beta=3.0; p=0.2;
N=20; M=20;
dx=1.0/N; dt=dx**2/(2*D)/2;
n=rand(N,M); w=rand(N,M);
lambda1=dt/dx**2
lambda2=dt*D/dx**2
def stempel(n,i,j):
return n[fmod(i+1+N,N),j]+n[fmod(i-1+N,N),j]+\
n[i,fmod(j-1+M,M)]+n[i,fmod(j+1+M,M)]-4*n[i,j]
def schritt(n,w):
n2=n; w2=w;
for i in range(0,N):
for j in range (0,M):
n2[i,j]=n[i,j]+lambda1*stempel(n,i,j)+\
dt*((gamma*w[i,j]/(1+sigma*w[i,j])-mu)*n[i,j]-n[i,j]**2);
w2[i,j]=w[i,j]+dt*(p-(1-ro*n[i,j])*w[i,j]-w[i,j]**2*n[i,j])+\
lambda2*stempel(w-beta*n,i,j);
return n2,w2
fig=pyplot.figure();
ax=pyplot.axes();
field=ax.pcolor(rand(0,0));
def init():
return
def animate(i):
n,w=schritt(n,w)
field.pcolor(n)
return field
anim=animation.FuncAnimation(fig, animate, init_func=init,frames=10,interval=20,blit=True)
#for i in range (0,20):
#pyplot.pcolor(n)
#fig.canvas.draw();
#n,w=schritt(n,w)