1D Heat Conduction with a delta function

Analytic solution

#heat conduction with a delta function

import numpy as np
import matplotlib.pyplot as plt
import time

M = 100; #the number of division
x = np.linspace(0, 1, M+1);
N = 600; #finite series
#T = [0.001, 0.004, 0.016, 0.064] #time t
T = np.linspace(0,0.0001, M);
F = np.ones((1, M+1));
for k in xrange(1, N):
		w = k * np.pi;
		F += 2 * np.cos(w/2) * np.cos(w* x) 

plt.ion()
line, = plt.plot(x, F[0]);

for t in T:
	F = np.ones((1, M+1));
	for k in xrange(1, N):
		w = k * np.pi;
		F += 2 * np.cos(w/2) * np.cos(w* x) * np.e**(-w**2*t)
	line.set_ydata(F)
	time.sleep(0.1)
	plt.draw()