Share Pastebin
Guest
Public paste!

Untitled

By: a guest | Mar 17th, 2010 | Syntax: Python | Size: 1.29 KB | Hits: 42 | Expires: Never
Copy text to clipboard
  1. import scipy as S
  2. import numpy as N
  3. import numpy as N
  4. from numpy import allclose, arange, eye, linalg, ones, zeros
  5. from scipy.sparse.linalg import dsolve
  6. from scipy import sparse, matrix
  7. from decimal import *
  8. getcontext()
  9. Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999999, Emax=999999999,
  10.         capitals=1, flags=[], traps=[Overflow, DivisionByZero,
  11.         InvalidOperation])
  12. re=5000
  13. n=100
  14. u=zeros((n+1,1), dtype=float)
  15. k=zeros((n+1,1), dtype=float)
  16. unew=zeros((n+1,1), dtype=float)
  17. iter=3000.0
  18. float (4)
  19. dy=1.0/n
  20. dt=re*dy*dy
  21.  
  22. u[n]=1
  23. b=1.0+dt/dy/dy/re
  24. a=-dt/2.0/dy/dy/re
  25. t=0.0
  26. for i in range(1, n):
  27.     t=t+dt
  28.     for j in range (2, n):
  29.         k[j]=(1.0-dt/dy/dy/re)*u[j]+dt/2.0/dy/dy/re*(u[j+1]+u[j-1])
  30.     k[2]=k[2]-a*u[n]
  31.     k[n]=k[n]-a*u[n+1]
  32.    
  33.     #przeskakujemy do linii 95 bo tam sie definiuje macierze do rozwiazania
  34.  
  35.     aa=zeros((n-1,n-1))  #linia 95
  36.     bb=zeros((n-1),1)   #linia 95
  37.     x=zeros((n-1),1)    #linia 95
  38.     kk=zeros((n,1)) #linia 97
  39.     for j in range(1,n-1)   #linia 99
  40.         bb[j]=kk[j+1]  
  41.     for i in range (1,n-1): #linia 104
  42.         for j in range(1,n-1):
  43.             aa[i,j]=0.0;    #liina 106
  44.                
  45.        
  46.         for j in range(1, n-1):
  47.             u[j+1]=unew[j]
  48. #koniec, teraz trzeba linie 73 odpalic