Professional Documents
Culture Documents
Interpolasi Newton Dan Lagrange
Interpolasi Newton Dan Lagrange
• Program
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import sys
tP = 0.0
for i in range(N):
tL = 1.0
for j in range(N):
if i!=j:
tL = tL * (xd-X[j])/(X[i]-X[j])
tP = tP + Y[i] * tL
return tP
def koef(data):
J = len(data[:,0])
I = J + 1
b = np.zeros(J)
for i in range(2, I):
for j in range(i-1, J):
data[j, i] = (data[j, i-1] - data[i-2, i-1])/ \
(data[j, 0] - data[i-2, 0])
for j in range(J):
b[j] = data[j, j+1]
return b
N = data[:,0].size
D = np.zeros((N, N+1))
D[:,0:2] = data
a = koef(D)
print(' Tes Data')
print('_________________')
print('| x | y |')
beda = 0
for i in range(a.size):
yn = pn(a, data[:,0], data[i,0])
print('| {0:4.2f} | {1:6.4f} |'.format(data[i,0], yn))
beda = beda + yn - data[i,1]
print('-----------------')
print()
print("Beda data = {0}".format(beda))
if beda < 1e-5:
print("\033[32mRumus sudah benar.")
else:
print("\033[31mRumus salah.")
sys.exit()
x2 = data[0:3,0]
y2 = data[0:3,1]
x22 = np.linspace(min(x2), max(x2), 50)
yn22 = [pn(a, data[0:3,0], xx) for xx in x22]
yl22 = [lg(xx, data[0:3,:]) for xx in x22]
x4 = data[:,0]
y4 = data[:,1]
x44 = np.linspace(min(x4), max(x4), 50)
yn44 = [pn(a, data[:,0], xx) for xx in x44]
yl44 = [lg(xx, data) for xx in x44]