Buckets:
| from numpy import * | |
| from matplotlib.pyplot import * | |
| I = 1 | |
| a = 2 | |
| T = 4 | |
| dt = 0.2 | |
| Nt = int(round(T/dt)) # no of time intervals | |
| u = zeros(Nt+1) # array of u[n] values | |
| t = linspace(0, T, Nt+1) # time mesh | |
| theta = 1 # Backward Euler method | |
| u[0] = I # assign initial condition | |
| for n in range(0, Nt): # n=0,1,...,Nt-1 | |
| u[n+1] = (1 - (1-theta)*a*dt)/(1 + theta*dt*a)*u[n] | |
| # Compute norm of the error | |
| u_e = I*exp(-a*t) - u # exact u at the mesh points | |
| error = u_e - u | |
| E = sqrt(dt*sum(error**2)) | |
| print 'Norm of the error: %.3E' % E | |
| # Compare numerical (u) and exact solution (u_e) in a plot | |
| plot(t, u, 'r--o') # red dashes w/circles | |
| t_e = linspace(0, T, 1001) # very fine mesh for u_e | |
| u_e = I*exp(-a*t_e) | |
| plot(t_e, u_e, 'b-') # blue line for u_e | |
| legend(['numerical, theta=%g' % theta, 'exact']) | |
| xlabel('t') | |
| ylabel('u') | |
| show() | |
Xet Storage Details
- Size:
- 909 Bytes
- Xet hash:
- 7d57cfa22bccb18286aec3319fcc50b38f6910071bdff12d11d48e563d02632e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.