Nugroho's blog.: Lagrange Polynomial Interpolation on Python.

Wednesday, April 19, 2017

Lagrange Polynomial Interpolation on Python.


It's a whole a lot easier than Newton's divided differences interpolation polynomial, because there is no divided difference part that need a recursive function.






I use these data points
(0,0)
(1,1)
(2,4)
(4,16)
(5,25)







from pylab import *

def L(i,xs,x,y):
    Ls = 1
    for j in arange (len(x)):
        if i != j:
            Ls *= (xs-x[j])/(x[i]-x[j])

    return Ls

def f(xs,x,y):
    fs =0 
    for i in arange(len(x)):
        fs += L(i,xs,x,y)*y[i]

    return fs

x = []
y = []
#initial value
x.append(0)
x.append(1)
x.append(2)
x.append(4)
x.append(5)

y.append(0)
y.append(1)
y.append(4)
y.append(16)
y.append(25)

#for testing
xc = 3

yc = f(xc,x,y)

print ''
print xc, yc
#plot
t = linspace(-6,6,100)
u = f(t,x,y)
plot(t,u)

grid(True)
show()


.

with other data points

(0,0)
(1,1)
(2,4)
(4,-16)
(5,25)

No comments:

323f (5) amp (1) android (12) apple (7) arduino (18) art (1) assembler (21) astina (4) ATTiny (23) blackberry (4) camera (3) canon (2) cerita (2) computer (106) crazyness (11) debian (1) delphi (39) diary (286) flash (8) fortran (6) freebsd (6) google apps script (8) guitar (2) HTML5 (10) IFTTT (7) Instagram (7) internet (12) iOS (5) iPad (6) iPhone (5) java (1) javascript (1) keynote (2) LaTeX (6) lazarus (1) linux (29) lion (15) mac (28) macbook air (8) macbook pro (3) macOS (1) Math (3) mathematica (1) maverick (6) mazda (4) microcontroler (35) mountain lion (2) music (37) netbook (1) nugnux (6) os x (36) php (1) Physicist (29) Picture (3) programming (189) Python (109) S2 (13) software (7) Soliloquy (125) Ubuntu (5) unix (4) Video (8) wayang (3) yosemite (3)