Exemplo n.º 1
0
terms = reshape(data[:,0], (n+2, nterms), order='F')
fsums = reshape(data[:,1], (n+2, nterms), order='F')

for k in range(nterms):
    term = terms[:,k]
    fsum = fsums[:,k]

    clf()
    subplot(2,1,1)
    plot(x,fsum,'b-')
    plot(x,f,'r-')
    title('Sum of first %s terms in Fourier series' % (k+1))
    axis([0,pi,-1.0,30.0])

    subplot(2,1,2)
    plot(x,term,'b-')
    title("k = %s term in Fourier series" % (k+1))
    plot(x, 0*x, 'k-')  # plot x-axis
    axis([0,pi,-8,10])


    J.save_frame(k, plotdir, verbose=True)

anim = J.make_anim(plotdir)

description = "Fourier sine series for the function exp(x)"

J.make_html(anim, file_name="FourierSum.html", title=description)
    
Exemplo n.º 2
0
from pylab import *

from JSAnimation import IPython_display
import JSAnimation_frametools as J

plotdir = '_plots'  # to store png files for each figure
J.make_plotdir(plotdir, clobber=True)  # ok to clobber if it already exists

x = linspace(0., 10., 1001)
nsteps = 21
dt = 11. / (nsteps + 1)

plotdir = '_plots'

for n in range(nsteps + 1):
    t = n * dt
    x0 = x - 1. - t
    u = sin(20. * x0) * exp(-5. * x0**2)
    clf()
    plot(x, u, 'b')
    ylim(-1.2, 1.2)
    title('Wave packet at t = %8.4f' % t, fontsize=20)

    # Save this frame:
    J.save_frame(n, plotdir, verbose=False)
    #show()

anim = J.make_anim(plotdir)

J.make_html(anim, file_name="Wave.html", title="Advecting wave packet")
Exemplo n.º 3
0
import JSAnimation_frametools as J
from JSAnimation import IPython_display
import numpy as np
import glob

plotdir = '_plots'
J.make_plotdir(plotdir, clobber='true')
fid = open('input_data.txt')
n = int(fid.readline())
tfinal = float(fid.readline())
fid.readline()
nsteps = int(fid.readline())

ax = plt.axes(xlim=(0, np.pi), ylim=(-1, 1))
line, = ax.plot([], [], lw=2)
line.set_data(range(n), range(n))

data = open('solution.txt')
for i in range(nsteps + 1):
    soln = []
    plt.clf()
    for j in range(n + 2):
        soln.append(float(data.readline()))
    plt.axes(xlim=(0, np.pi), ylim=(-1, 1))
    plt.plot(np.arange(0, np.pi, np.pi / (n + 2)), soln)
    plt.plot(np.arange(0, np.pi, np.pi / (n + 2)), soln, 'bo')
    t = "%.3f" % (i * tfinal / nsteps)
    plt.title('time = ' + t)
    J.save_frame(i)
J.make_html(J.make_anim(plotdir))