Skip to content

Instantly share code, notes, and snippets.

@KelviNosse
Created June 23, 2016 03:34
Show Gist options
  • Save KelviNosse/3979bb6878c926ea98dd7923740f9833 to your computer and use it in GitHub Desktop.
Save KelviNosse/3979bb6878c926ea98dd7923740f9833 to your computer and use it in GitHub Desktop.
Newton Interpolation Example - Python
print "Diferencias Divididas (Newton)"
n = int(raw_input("Ingrese el grado del polinomio a evaluar: "))+1
matrix = [0.0] * n
for i in range(n):
matrix[i] = [0.0] * n
vector = [0.0] * n
for i in range(n):
x = raw_input("Ingrese el valor de x: ")
y = raw_input("Ingrese el valor de f("+x+"): ")
vector[i]=float(x)
matrix[i][0]=float(y)
print vector
print matrix
point_offset = float(raw_input("Ingrese el punto a evaluar: "))
for i in range(1,n):
for j in range(i,n):
print "i=",i," j=",j
print "(",matrix[j][i-1],"-",matrix[j-1][i-1],")/(",vector[j],"-",vector[j-i],")"
matrix[j][i] = ( (matrix[j][i-1]-matrix[j-1][i-1]) / (vector[j]-vector[j-i]))
print "matrix[",j,"][",i,"] = ",(matrix[j][i-1]-matrix[j-1][i-1])/(vector[j]-vector[j-i])
for i in range(n):
print matrix[i]
aprx = 0
mul = 1.0
for i in range(n):
print "matrix[",i,"][",i,"]","=",matrix[i][i]
mul = matrix[i][i];
for j in range(1,i+1):
mul = mul * (point_offset - vector[j-1])
aprx = aprx + mul
print "El valor aproximado de f(",point_offset,") es: ", aprx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment