| %matplotlib tk import matplotlib.pyplot as plt #Функции рисования графиков import matplotlib.animation as animation #Функции анимации import numpy as np #Для создания массивов в модели
ρ=np.full(100,10) #Массив сопротивлений между клетками ϕ=np.full(100,0.0) #Массив потенциалов в клетках I=np.full(100,0.0) #Массив токов между клетками
def battery(): #Работа батареи ϕ[0]=-4.5 ϕ[99]=4.5 def step(a): Δϕ = ϕ[a]-ϕ[a+1] #Считаем разность потенциалов между клетками a и a+1 I[a]=Δϕ/ρ[a] #Найдем силу тока I(a)
def tick(): battery() #Батарея задает потенциалы на концах for a in range(99): #Для каждой клетки step(a) #Рассчитываем обмен потенциалами клетки a (со следующей) for a in range(99): #Для каждой клетки ϕ[a]-=I[a] #Потенциал утекает из клетки a ϕ[a+1]+=I[a] #Потенциал притекает в клетку a+1
def animate(i): for t in range(20): #20 раз tick() #Проводим вычисления line.set_ydata(ϕ) #Передаем линии новые данные return line,
tick()
fig, ax = plt.subplots() #Создадим изображение (fig) и график (ax) line, = ax.plot(ϕ) #А теперь саму линию, отображающую наш массив ϕ (первоначально). ani = animation.FuncAnimation(fig, animate, interval=1, blit=True) #Создаем анимацию |