Advertisement
Arthur_Just_Arthur

UppedLagrange

Feb 21st, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.84 KB | None | 0 0
  1. from itertools import combinations as cb
  2. from numpy import prod #просто произведение всех чисел в контейнере
  3.  
  4. #functions are here:=========================================================================
  5. def Dispenser(tmp):
  6.     if(type(tmp) is not str): raise TypeError
  7.     array = tmp.split()
  8.     for c in range(array.__len__()):
  9.         array[c] = float(array[c])
  10.     return array
  11.  
  12. def Combinator(Raw:'list'):
  13.     List = list()
  14.     for c in range(len(Raw)):
  15.         TmpList = list()
  16.         for p in range(len(Raw)):
  17.             if c != p: TmpList.append(Raw[p])
  18.         List.append(TmpList)
  19.     return List
  20.  
  21. def Generator(Raw:'list'):
  22.     List = list()
  23.     for c in range(len(Raw)+1):
  24.         List.append([var for var in cb(Raw, c)])
  25.     return List
  26.  
  27. def Calculator(Raw:'list', Coefficient:'float', Final:'list'):
  28.     for i, ls in enumerate(Raw):
  29.         for j, tpl in enumerate(ls):
  30.             ls[j] = prod(tpl)
  31.         Final[i] *= Coefficient*sum(ls)
  32.     return Final
  33.  
  34. def GetCoefficients(RawX:'list', RawY:'list'):
  35.     Result = list()
  36.     for i in range(len(RawY)):
  37.         Denominator = 1
  38.         for j in range(len(RawX)):
  39.             if i != j: Denominator *= (RawX[i] - RawX[j])
  40.         Result.append(RawY[i]/Denominator)
  41.     return Result
  42.  
  43. #main program:================================================================================
  44. RawX = input('Enter x points: ')
  45. RawY = input('Enter y points: ')
  46. RawX = Dispenser(RawX)
  47. RawY = Dispenser(RawY)
  48.  
  49. Final = list([1 for element in range(len(RawX))])
  50.  
  51. Coefficients = GetCoefficients(RawX, RawY,)
  52.  
  53. RawMaterial = Combinator(RawX)
  54.  
  55. for i, ls in enumerate(RawMaterial):
  56.     RawMaterial[i] = Generator(ls)
  57.  
  58. for i, coef in enumerate(Coefficients):
  59.     Final = Calculator(RawMaterial[i], coef, Final)
  60.  
  61. for coef in Final:
  62.     print(coef)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement