Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.41 KB | None | 0 0
  1. import pylab
  2. from mpl_toolkits.mplot3d import Axes3D
  3. import numpy
  4. import math
  5.  
  6. aa, x1, x2, eps = 1, 0, 1, 10**(-10)
  7.  
  8. def f(t, x):
  9.     return x**2
  10.  
  11. def fi(x):
  12.     return math.sin(math.pi * x) * math.cos(x)
  13.  
  14. def alpha1(t):
  15.     return 0
  16.  
  17. def alpha2(t):
  18.     return t
  19.  
  20. '''
  21. h = 0.01#float(input("Input H > "))
  22. t = 0.01#float(input("Input T > "))
  23. '''
  24. t1 = 0
  25. t2 = 1#float(input("Input TMAX > "))
  26.  
  27.  
  28. #1
  29. n = m = 100
  30. h = (x2 - x1) / n
  31. t = (t2 - t1) / m
  32. X = [0] * (n + 1)
  33. T = [0] * (m + 1)
  34. U = [[0] * (m + 1)] * (n + 1)
  35.  
  36. for i in range(n + 1):
  37.     X[i] = h * i
  38.     U[i][0] = fi(X[i])
  39.  
  40. for j in range(m + 1):
  41.     T[j] = t * j
  42.  
  43. for j in range(1, m + 1):
  44.     U[0][j] = alpha1(T[j])
  45.     for i in range(1, n):
  46.         U[i][j] = (f(X[i], T[j - 1]) + aa * (U[i + 1][j - 1] - 2 * U[i][j - 1] + U[i - 1][j - 1]) / (h * h)) * t + U[i][j - 1];
  47.     U[n][j] = alpha2(T[j])
  48.  
  49. Xg, Tg = numpy.meshgrid(X, T)
  50. Ug = numpy.asarray(U)
  51.  
  52. #print(Xg)
  53. #print(Tg)
  54. #print(Ug)
  55.  
  56.  
  57. for i in range(n + 1):
  58.     for j in range(m + 1):
  59.         print(X[i], T[j], U[i][j])
  60.     print('\n')
  61.  
  62. '''
  63. print(X)
  64. print(T)
  65. print(U)
  66.  
  67. def makeData ():
  68.    x = numpy.arange (-10, 10, 0.1)
  69.    y = numpy.arange (-10, 10, 0.1)
  70.    xgrid, ygrid = numpy.meshgrid(x, y)
  71.  
  72.    zgrid = numpy.sin (xgrid) * numpy.sin (ygrid) / (xgrid * ygrid)
  73.    return xgrid, ygrid, zgrid
  74.  
  75. x, y, z = makeData()
  76. '''
  77.  
  78. fig = pylab.figure()
  79. axes = Axes3D(fig)
  80.  
  81. axes.plot_surface(Xg, Tg, Ug)
  82.  
  83. pylab.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement