Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

import 

numpy as np
from sympy import *
import matplotlib.pyplot as plt

x = np.array([1,2,3,4,5,6,7,8,9,10])
y = np.array([1.8,3.5,4.2,4.9,5.3,6,6.8,6.5,6.4,6.9])
n = len(x) - 1
m = 2
pk = 0
x_ = []
vm = []

for i in range(n+1):
  for j in range(m+1):
    hit = x[i]**pk
    pk += 1
    x_.append(hit)
  vm.append(x_)
  pk = 0
  x_ = []
print("Matriks Vandermonde =", vm)

X = vm
Xt = np.transpose(X)
M = np.dot(Xt,X)
print(Xt)
print(M)
M_inv = np.linalg.inv(M)
print(M_inv)

yt = np.transpose(y)
B = np.dot(M_inv,Xt)
b = np.dot(B,yt)
print(b) #parameter terbaik (a0,a1,...an)

a = symbols('a')
p = 0
for i in range(0,m+1):
  p += b[i]*(a**i)
print(p) #persamaan polinomial

hsl = []
for i in range(0,n+1):
  hit = p.subs(a,x[i])
  hsl.append(hit)
print(hsl) #x disubstitusikan ke persamaan p

e = 0
for i in range(0,len(y)):
  e =+ (y[i]-hsl[i])**2
print(e)

#mencari koefisien determinasi
dt = 0 #sbg standar deviasi
ys = 0 #sbg y rata-rata
for i in range(0,len(y)):
  ys += y[i]
ys = ys/len(y)
for j in range(0,len(x)):
  dt += (y[i]-ys)**2
r2 = (dt - e)/dt #koefisien determinasi
r = sqrt(r2) #koefisien korelasi
print(r2)
print(r)

plt.plot(x,y,color='b')
plt.plot(x,hsl,color='r')
plt.show()

You might also like