import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# membuka file
df = pd.read_csv('week4.csv')
x = df['Jam']
y = df['Tarif']
# fungsi untuk di-fit-kan ke data
def f(x,m,c):
return m*x+c
# cari fungsi yang "fit" ke data
from scipy.optimize import curve_fit
popt, pcov = curve_fit(f,x,y,p0=None)
print(popt) # f(x) = 21232.2 x + 34688.36
fvec = np.vectorize(f)
# menggambar grafik
plt.plot(x,y,'b.',label='Data Pengamatan') # "matplotlib.pyplot.plot" <-- google di sini untuk lihat macam-macam formatting
plt.plot(x, fvec(x,*popt),'r--',label='Fungsi Garis Regresi (y = 21232.2 x + 34688.36)')
plt.legend()
plt.title('Grafik Model Pemakaian Listrik')
plt.xlabel('Waktu Pemakaian (dalam jam)')
plt.ylabel('Tarif yang Dibayarkan')
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit # library untuk bikin fungsi prediksi
df2 = pd.read_csv('week4_1.csv')
x = df2['year']
x = [ t - 1960 for t in x] # x bukan tahun, tapi tahun sejak 1960
y = df2['time']
plt.plot(x,y,'gx')
#plt.xlim(1900,2020)
#plt.ylim(9,11)
def f(x,a,b,c):
return a + b * np.exp(c*x)
# a = asimtot,
popt, pcov = curve_fit(f,x,y,p0=(10, .1, -.5))
print(popt) # f (x) = 8.897 + 1.28 e^(-0.0069x)
plt.plot(x,y,'bx',label = 'Data Mentah dari Olimpiade/Kejuaraan Dunia')
fvec = np.vectorize(f)
plt.plot(x,fvec(x,*popt),'r--', label = 'Model Fungsi Eksponen f(x) = 8.897 + 1.28 e^(-0.0069x)')
y1 = np.ones(len(x))*popt[0]
plt.plot(x,y1,'k')
plt.ylim(8,11)
plt.legend()
plt.xlabel('Tahun sejak 1960')
plt.ylabel('Waktu Sprint 100m')
plt.title('Pemodelan Prediksi Waktu Sprint 100m')