%matplotlib inline from scitools.std import * x0 = 100 # initial amount p = 5 # interest rate N = 4 # number of years index_set = range(N+1) x = zeros(len(index_set)) # Solution: x[0] = x0 for n in index_set[1:]: x[n] = x[n-1] + (p/100.0)*x[n-1] print x plot(index_set, x, 'ro', xlabel='years', ylabel='amount') x_old = x0 for n in index_set[1:]: x_new = x_old + (p/100.)*x_old x_old = x_new # x_new becomes x_old at next step import datetime date1 = datetime.date(2007, 8, 3) # Aug 3, 2007 date2 = datetime.date(2008, 8, 4) # Aug 4, 2008 diff = date2 - date1 print diff.days from scitools.std import * x0 = 100 # initial amount p = 5 # annual interest rate r = p/360.0 # daily interest rate import datetime date1 = datetime.date(2007, 8, 3) date2 = datetime.date(2011, 8, 3) diff = date2 - date1 N = diff.days index_set = range(N+1) x = zeros(len(index_set)) # Solution: x[0] = x0 for n in index_set[1:]: x[n] = x[n-1] + (r/100.0)*x[n-1] print x plot(index_set, x, 'ro', xlabel='days', ylabel='amount') p = zeros(len(index_set)) # fill p[n] for n in index_set (might be non-trivial...) r = p/360.0 # daily interest rate x = zeros(len(index_set)) x[0] = x0 for n in index_set[1:]: x[n] = x[n-1] + (r[n-1]/100.0)*x[n-1] N = int(sys.argv[1]) from numpy import zeros x = zeros(N+1, int) x[0] = 1 x[1] = 1 for n in range(2, N+1): x[n] = x[n-1] + x[n-2] print n, x[n] 2 2 3 3 4 5 5 8 6 13 ... 45 1836311903 Warning: overflow encountered in long_scalars 46 -1323752223 import sys N = int(sys.argv[1]) xnm1 = 1 # "x_n minus 1" xnm2 = 1 # "x_n minus 2" n = 2 while n <= N: xn = xnm1 + xnm2 print 'x_%d = %d' % (n, xn) xnm2 = xnm1 xnm1 = xn n += 1 x_2 = 2 x_3 = 3 ... x_198 = 173402521172797813159685037284371942044301 x_199 = 280571172992510140037611932413038677189525 x_200 = 453973694165307953197296969697410619233826 x[n] = x[n-1] + p/100.0)*x[n-1] x[n] = x[n-1] + (rho/100.0)*x[n-1]*(1 - x[n-1]/float(M)) def Newton(f, x, dfdx, epsilon=1.0E-7, max_n=100): n = 0 while abs(f(x)) > epsilon and n <= max_n: x = x - f(x)/dfdx(x) n += 1 return x, n, f(x) def Newton(f, x, dfdx, epsilon=1.0E-7, max_n=100, store=False): f_value = f(x) n = 0 if store: info = [(x, f_value)] while abs(f_value) > epsilon and n <= max_n: x = x - float(f_value)/dfdx(x) n += 1 f_value = f(x) if store: info.append((x, f_value)) if store: return x, info else: return x, n, f_value from math import sin, cos, exp, pi import sys def g(x): return exp(-0.1*x**2)*sin(pi/2*x) def dg(x): return -2*0.1*x*exp(-0.1*x**2)*sin(pi/2*x) + \ pi/2*exp(-0.1*x**2)*cos(pi/2*x) x0 = float(sys.argv[1]) x, info = Newton(g, x0, dg, store=True) print 'Computed zero:', x # Print the evolution of the difference equation # (i.e., the search for the root) for i in range(len(info)): print 'Iteration %3d: f(%g)=%g' % (i, info[i][0], info[i][1]) zero: 1.999999999768449 Iteration 0: f(1.7)=0.340044 Iteration 1: f(1.99215)=0.00828786 Iteration 2: f(1.99998)=2.53347e-05 Iteration 3: f(2)=2.43808e-10 zero: 42.49723316011362 Iteration 0: f(3)=-0.40657 Iteration 1: f(4.66667)=0.0981146 Iteration 2: f(42.4972)=-2.59037e-79 import numpy def note(frequency, length, amplitude=1, sample_rate=44100): time_points = numpy.linspace(0, length, length*sample_rate) data = numpy.sin(2*numpy.pi*frequency*time_points) data = amplitude*data return data data = note(440, 2) data = data.astype(numpy.int16) max_amplitude = 2**15 - 1 data = max_amplitude*data import scitools.sound scitools.sound.write(data, 'Atone.wav') scitools.sound.play('Atone.wav') # echo: e[n] = beta*s[n] + (1-beta)*s[n-b] def add_echo(data, beta=0.8, delay=0.002, sample_rate=44100): newdata = data.copy() shift = int(delay*sample_rate) # b (math symbol) for i in xrange(shift, len(data)): newdata[i] = beta*data[i] + (1-beta)*data[i-shift] return newdata data = scitools.sound.read(filename) data = data.astype(float) data = add_echo(data, beta=0.6) data = data.astype(int16) scitools.sound.play(data) # put data1, data2, ... after each other in a new array: data = numpy.concatenate((data1, data2, data3, ...)) E1 = note(164.81, .5) G = note(392, .5) B = note(493.88, .5) E2 = note(659.26, .5) intro = numpy.concatenate((E1, G, B, E2, B, G)) ... song = numpy.concatenate((intro, intro, ...)) scitools.sound.play(song) scitools.sound.write(song, 'tmp.wav') index_set = x = zeros(N+1) x[0] = x0 for n in index_set[1:]: x[n] = for n in index_set[1:]: x[n] = y[n] =