Skip to content

Instantly share code, notes, and snippets.

@pedrojimenezp
Created January 31, 2013 14:35
Show Gist options
  • Save pedrojimenezp/4683242 to your computer and use it in GitHub Desktop.
Save pedrojimenezp/4683242 to your computer and use it in GitHub Desktop.
Metodo de interpolacion de newton hecho en python
print "------- Interpolacion Polinomica (Newton) -------"
n = int(raw_input("Ingrese el grado del polinomio a evaluar: "))+1
# print "El grado del polinomio es: ", n
matriz = [0.0] * n
for i in range(n):
matriz[i] = [0.0] * n
vector = [0.0] * n
print matriz
print vector
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)
matriz[i][0]=float(y)
print vector
print matriz
punto_a_evaluar = float(raw_input("Ingrese el punto a evaluar: "))
print "------------------------------"
print "------- Calculando ... -------"
print "------------------------------"
for i in range(1,n):
for j in range(i,n):
print "i=",i," j=",j
print "(",matriz[j][i-1],"-",matriz[j-1][i-1],")/(",vector[j],"-",vector[j-i],")"
matriz[j][i] = ( (matriz[j][i-1]-matriz[j-1][i-1]) / (vector[j]-vector[j-i]))
print "matriz[",j,"][",i,"] = ",(matriz[j][i-1]-matriz[j-1][i-1])/(vector[j]-vector[j-i])
print "------------------------------"
print "------------------------------"
for i in range(n):
print matriz[i]
print "------------------------------"
print "------------------------------"
aprx = 0
mul = 1.0
for i in range(n):
print "matriz[",i,"][",i,"]","=",matriz[i][i]
mul = matriz[i][i];
print "mul antes del ciclo j=",mul
for j in range(1,i+1):
mul = mul * (punto_a_evaluar - vector[j-1])
print "mul en el ciclo j=",mul
# print aprx
aprx = aprx + mul
print "------------------------------"
print "------------------------------"
print "El valor aproximado de f(",punto_a_evaluar,") es: ", aprx
@crialope
Copy link

Me sale, error de síntaxis

@crialope
Copy link

Porfavor ayuda, necesito ese código

@Dystoland
Copy link

Dystoland commented Oct 5, 2017

El codigo tiene 5 años, para corregir los errores de sintaxis solo agreguen "( )" en los print ejemplo: print( "------- Interpolacion Polinomica (Newton) -------") y donde dice raw_input solo borren "raw_ " y listo

@Byhako
Copy link

Byhako commented Apr 11, 2018

Muchas gracias por compartir.

@BrayanMontoya
Copy link

BrayanMontoya commented Oct 31, 2020

print ("------- Interpolacion Polinomica (Newton) -------")
n = int(input("Ingrese el grado del polinomio a evaluar: "))+1

matriz = [0.0] * n
for i in range(n):
matriz[i] = [0.0] * n

vector = [0.0] * n

print (matriz)
print (vector)
for i in range(n):
x = input("Ingrese el valor de x: ")
y = input("Ingrese el valor de f("+x+"): ")
vector[i]=float(x)
matriz[i][0]=float(y)

print (vector)
print (matriz)

punto_a_evaluar = float(input("Ingrese el punto a evaluar: "))

print ("------------------------------")
print ("------- Calculando ... -------")
print ("------------------------------")

for i in range(1,n):
for j in range(i,n):
print ("i=",i," j=",j)
print ("(",matriz[j][i-1],"-",matriz[j-1][i-1],")/(",vector[j],"-",vector[j-i],")")
matriz[j][i] = ( (matriz[j][i-1]-matriz[j-1][i-1]) / (vector[j]-vector[j-i]))
print ("matriz[",j,"][",i,"] = ",(matriz[j][i-1]-matriz[j-1][i-1])/(vector[j]-vector[j-i]))

print ("------------------------------")
print ("------------------------------")
for i in range(n):
print (matriz[i])
print ("------------------------------")
print ("------------------------------")

aprx = 0
mul = 1.0
for i in range(n):
print ("matriz[",i,"][",i,"]","=",matriz[i][i])
mul = matriz[i][i];
print ("mul antes del ciclo j=",mul)
for j in range(1,i+1):
mul = mul * (punto_a_evaluar - vector[j-1])
print ("mul en el ciclo j=",mul)
aprx = aprx + mul

print ("------------------------------")
print ("------------------------------")
print ("El valor aproximado de f(",punto_a_evaluar,") es: ", aprx)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment