Advertisement
Serafim_

Полином Лагранжа 1

Mar 14th, 2018
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.82 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. x=np.array([0,1,2,3,4,5], dtype=float)
  4. y=np.array([0.1,0.6,1,6,-2,-3], dtype=float)
  5. def lagranz(x,y,t):
  6.     z=0
  7.     for j in range(len(y)):
  8.         p1=1; p2=1
  9.         for i in range(len(x)):
  10.             if i==j:
  11.                 p1=p1*1; p2=p2*1
  12.             else:
  13.                 p1=p1*(t-x[i])
  14.                 p2=p2*(x[j]-x[i])
  15.         z=z+y[j]*p1/p2
  16.     return z
  17. def integr(a,b,dx):
  18.     points=np.arange(a,b,dx)
  19.     summ=0
  20.     for x_cur in points:
  21.         print x_cur
  22.         for x_cur in points:
  23.             summ+=lagranz(x,y,x_cur)*dx
  24.         return summ
  25.  
  26. xnew=np.linspace(np.min(x),np.max(x),100)
  27. ynew=[lagranz(x,y,i) for i in xnew]
  28. plt.plot(x,y,'o',xnew,ynew)
  29. plt.grid(True)
  30. plt.show()
  31.  
  32. print integr(np.min(x),np.max(x),0.1)
  33. print integr(0,1,0.1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement