Advertisement
Guest User

newton

a guest
May 15th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Julia 0.72 KB | None | 0 0
  1. function NewtonPoly(x, dataX, dataY)
  2.     n = length(dataY)
  3.     numOfDiff = Int(((1+n)*n)/2)
  4.     Result = zeros(numOfDiff)
  5.     Elems = zeros(n+1)
  6.    
  7.     for i = 2 : n+1
  8.         Elems[i] = Elems[i-1] + (n-(i-2))
  9.     end
  10.    
  11.     for i = 1 : n
  12.         Result[i] = dataY[i]
  13.     end
  14.    
  15.     for i = n+1 : numOfDiff
  16.         level = n+1
  17.         while Elems[level] >= i
  18.             level-=1
  19.         end
  20.         iterator = Int(i-Elems[level] + Elems[level-1])
  21.         Result[i] = (Result[iterator+1] - Result[iterator]) / (dataX[Int(i-Elems[level] + level - 1)] - dataX[Int(i-Elems[level])])
  22.     end
  23.    
  24.     Coef = zeros(n)
  25.     for i = 1 : n
  26.         Coef[i] = Result[Int(Elems[i] + 1)]
  27.     end
  28.    
  29.     return Coef
  30. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement