]> AND Private Git Repository - cours-mesi.git/blobdiff - tps/chap2/diff_div.py
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
j
[cours-mesi.git] / tps / chap2 / diff_div.py
index 8ac41e36cdd50c4d84096dd9da827a858f2ce432..a2c7573aeaad4ce6914a33a1f514f4fa32f40918 100644 (file)
@@ -4,12 +4,12 @@ from math import *
 
 
 def coeffs(X,Y):
 
 
 def coeffs(X,Y):
-    n = len(X)-1
-    diff_div=[[0 for _ in xrange(n+1)] for _ in xrange(n+1)]
-    for i in xrange(n+1):
+    n = len(X)
+    diff_div=np.zeros((n,n))
+    for i in range(n):
         diff_div[i][0] = Y[i]
         diff_div[i][0] = Y[i]
-    for j in xrange(1,n+1):
-        for i in xrange(n-j+1):
+    for j in range(1,n):
+        for i in range(n-j):
             r = float(diff_div[i+1][j-1]-diff_div[i][j-1])/(X[i+j]-X[i])
             diff_div[i][j] = r
     print diff_div
             r = float(diff_div[i+1][j-1]-diff_div[i][j-1])/(X[i+j]-X[i])
             diff_div[i][j] = r
     print diff_div
@@ -34,6 +34,7 @@ def construit_et_eval_pol(X,Y,x):
 
 def construit_pol(X,Y):
     d = coeffs(X,Y)
 
 def construit_pol(X,Y):
     d = coeffs(X,Y)
+    print "les coeffs sont",d
     n = len(X)-1
     return lambda x : \
         sum([d[i]*prod([x - X[j] for j in xrange(i)]) for i in xrange(n+1)])
     n = len(X)-1
     return lambda x : \
         sum([d[i]*prod([x - X[j] for j in xrange(i)]) for i in xrange(n+1)])
@@ -41,17 +42,18 @@ def construit_pol(X,Y):
 
 
 
 
 
 
-"""
+
 
 print "tp 2.1....."
 X = [10,25,60]
 XX= [15,40,100]
 Y = [2.3, 8, 24.6]
 p = construit_pol(X,Y)
 
 print "tp 2.1....."
 X = [10,25,60]
 XX= [15,40,100]
 Y = [2.3, 8, 24.6]
 p = construit_pol(X,Y)
+
 Yp =[p(x) for x in XX]
 Ypp = [construit_et_eval_pol(X,Y,x) for x in XX]
 
 Yp =[p(x) for x in XX]
 Ypp = [construit_et_eval_pol(X,Y,x) for x in XX]
 
-print Yp, Ypp
+print "Yp", Yp#, Ypp
 
 
 x=np.linspace(10,100,100)
 
 
 x=np.linspace(10,100,100)
@@ -106,4 +108,4 @@ plt.ylabel('exp')
 plt.xlabel("x")
 plt.show()
 
 plt.xlabel("x")
 plt.show()
 
-
+"""