You are on page 1of 1

import numpy as np

import matplotlib.pyplot as plt

x1 = np.array([42,33,33,45,39,36,32,41,40,38])

x2 = np.array([272,226,259,292,311,183,173,236,230,235])

y = np.array([95,77,80,100,97,70,50,80,92,84])

m = len(x1)

w1= 1

w2= 0

b=1

alpha =0.00006

J = 1/(2*m)*np.dot(w1*x1 + w2*x2 + b-y,w1*x1 + w2*x2 +b-y)

print('it w1 w2 b J ')

for i in range(500):

print(f" {i+1:d} {w1:<5.4f} {w2:<6.4f} {b:<6.4f} {J:<7.5f}")

w1_baru= w1 - alpha *1/(2*m)* np.dot(w1*x1+w2*x2 + b - y,x1)

w2_baru= w2 - alpha *1/(2*m)* np.dot(w1*x1+w2*x2 + b - y,x2)

b_baru= b - alpha *1/(2*m)*np.dot(w1*x1+w2*x2 + b - y,np.ones(m))

J = 1/(2*m)*np.dot(w1_baru*x1+w2_baru*x2 + b_baru-y,w1_baru*x1+w2_baru*x2+b_baru-y)

w1 = w1_baru

w2 = w2_baru

b = b_baru

plt.plot(i,J,'-*')

if abs(J) <= 1e-4:

break

plt.show()

You might also like