Advertisement
gronke

interp hw

Jul 23rd, 2012
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. import numpy
  2. import pylab
  3.  
  4. data = numpy.loadtxt('data_interp.dat')
  5.  
  6. dx = data[:,0]
  7. dy = data[:,1]
  8.  
  9. sort_index = numpy.argsort(dx)
  10.  
  11. dx = dx[sort_index]
  12. dy = dy[sort_index]
  13.  
  14. x = numpy.arange(0,4.60,.01)
  15.  
  16. for i in range (0,x.size):
  17. while x > dx[i]:
  18. i += 1
  19.  
  20. dddy = dy[i+1]
  21.  
  22. ddy = dy[i]
  23.  
  24. ddyy = dy[i-1]
  25.  
  26. ddyyy = dy[i-2]
  27.  
  28. dddx = dx[i+1]
  29.  
  30. ddx = dx[i]
  31.  
  32. ddxx = dx[i-1]
  33.  
  34. ddxxx = dx[i-2]
  35.  
  36. y_pw =
  37.  
  38.  
  39. xa= x[i-1]
  40. ya= y[i-1]
  41. xb= x[i]
  42. yb= x[i]
  43. yy= (yb-ya)*((xx-xa)/(xb-xa))+ ya
  44.  
  45. y = (ddy-ddyy)*(x-ddxx)/(ddx-ddxx) + ddyy
  46.  
  47. mA = ((ddy-ddyy)*(ddxx-ddxxx)**2 + (ddyy-ddyyy)*(ddx-ddxx)**2)/((ddx-ddxx)*(ddxx-ddxxx)*(ddx-ddxxx))
  48.  
  49. mB = ((dddy-ddy)*(ddx-ddxx)**2 + (ddy-ddyy)*(dddx-ddx)**2)/((dddx-ddx)*(ddx-ddxx)*(dddx-ddxx))
  50.  
  51. x_s = (x - ddxx)/(ddx - ddxx)
  52.  
  53. a0 = ddyy
  54. a1 = (ddx - ddxx)*mA
  55. a2 = 3*(ddy - ddyy) - 2*(ddx-ddxx)*mA - (ddx - ddxx)*mB
  56. a3 = -2*(ddy - ddyy) + (ddx-ddxx)*mA + (ddx - ddxx)*mB
  57.  
  58. y2 = a0 + a1*x_s + a2*x_s**2 + a3*x_s**3
  59.  
  60. the_function = numpy.cos(numpy.arange(0,4.60,0.01))*numpy.tanh(numpy.arange(0,4.60,0.01))
  61.  
  62. pylab.figure(1)
  63. pylab.plot(dx,dy)
  64. pylab.plot(x,y_pw,'o')
  65. pylab.plot(x,y_cs,'^')
  66. pylab.plot(x,the_function,'--')
  67. pylab.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement