Kun aineistossa on havainnot (x_1,y_1),(x_2,y_2),\dots,(x_n,y_n) ja suoraa ax+b sovitetaan aineistoon, virhe voidaan laskea neliösummana kaavalla
\sum_{i=1}^{n}(y_i-(ax_i+b))^2.
Esimerkiksi kun aineisto on (1,1),(3,2),(5,3), ja suora on x-1 (eli a=1 ja b=-1), virhe on
(1-(1-1))^2+(2-(3-1))^2+(3-(5-1))^2=2.
Toteuta luokka SquareSum
, jossa on seuraavat metodit:
add(x, y)
: lisää havainto aineistooncalc(a, b)
: ilmoita virheen neliösumma annetuilla parametreilla
Kummankin metodin tulee toimia ajassa O(1).
Toteuta tiedostoon squaresum.py
luokka SquareSum
seuraavan mallin mukaisesti.
class SquareSum: def __init__(self): # TODO def add(self, x, y): # TODO def calc(self, a, b): # TODO if __name__ == "__main__": s = SquareSum() s.add(1, 1) s.add(3, 2) s.add(5, 3) print(s.calc(1, 0)) # 5 print(s.calc(1, -1)) # 2 print(s.calc(0.5, 0.5)) # 0 s.add(4, 2) print(s.calc(0.5, 0.5)) # 0.25