Ponavljanje¶

Za početak ćemo riješiti par zadataka vazano za Lagrangeov interpolacijski polinom

In [48]:
from IPython.lib.display import YouTubeVideo
vid = YouTubeVideo("IHqQ9T4F2F8")
display(vid)

Newtonov interpolacijski polinom¶

In [49]:
vid = YouTubeVideo("pd6gEaXx4kE")
display(vid)

Pogledajmo sada kako bismo implementirali interpolacijski polinom u Newtonovom obliku. Sljedeći kod sadrži funkciju koja izvrjednjava polinonom u danim točkama, te računa koeficijente interpolacijskog polinom au Newtonovoj bazi.

In [50]:
import numpy as np
from numpy import array,arange
from math import pi,cos
import matplotlib.pyplot as plt


def evalPoly(c,x,xu):
    n = len(x) - 1 # Degree of polynomial
    p = c[n]
    for k in range(1,n+1):
        p = c[n-k] + (xu -x[n-k])*p
    return p

def polycoef(x,y):
    n = len(x) # Number of data points
    c = y.copy()
    for j in range(1,n):
        c[j:n] = (c[j:n] - c[j-1])/(x[j:n] - x[j-1])
    return c

U sljedećem dijelu rješavamo primjer s početka predavanja o interpolaciji.

In [51]:
x=array([2 ,4 , 6, 8, 10 , 12, 14, 16, 18, 20, 22, 24])
y=array([0.0 ,0.35 , 0.46, 0.48, 0.50, 0.39,0.27,0.18,0.13,0.09, 0.07, 0.05])
c = polycoef(x,y)

xp = np.linspace(2, 24, 1000)


yu = evalPoly(c,x,xp)
    
fig, ax = plt.subplots(figsize=(6.5, 4))   
plt.plot(x, y, 'bo', label="Data")
plt.plot(xp, yu,label="yInterp")
ax.legend(loc='upper right')
plt.savefig("interolacija.eps") 
No description has been provided for this image

Zadaci vezano za Newtonov interpolacijski polinom¶

Sada ćem,o riješiti par zadataka vezano za Newtonov interpolacijski polinom i podijeljene razlike.

In [52]:
vid = YouTubeVideo("Z4cejoX8Fb4")
display(vid)
In [ ]: