Kun aineistossa on havainnot ja suoraa sovitetaan aineistoon, virhe voidaan laskea neliösummana kaavalla
Esimerkiksi kun aineisto on ja suoran parametrit ovat ja (eli suora on ), virhe on
Toteuta tiedostoon squaresum.py
luokka DataAnalyzer
, jossa on seuraavat metodit:
add_point(x, y)
: lisää havainto aineistooncalculate_error(a, b)
: ilmoita sovitettavan suoran virhe neliösummana aineistossa
Kummankin metodin tulee toimia ajassa .
class DataAnalyzer: def __init__(self): # TODO def add_point(self, x, y): # TODO def calculate_error(self, a, b): # TODO if __name__ == "__main__": analyzer = DataAnalyzer() analyzer.add_point(1, 1) analyzer.add_point(3, 2) analyzer.add_point(5, 3) print(analyzer.calculate_error(1, 0)) # 5 print(analyzer.calculate_error(1, -1)) # 2 print(analyzer.calculate_error(3, 2)) # 293 analyzer.add_point(4, 2) print(analyzer.calculate_error(1, 0)) # 9 print(analyzer.calculate_error(1, -1)) # 3 print(analyzer.calculate_error(3, 2)) # 437
Voit tutkia ratkaisusi tehokkuutta seuraavan testin avulla. Tässäkin tapauksessa koodin tulisi antaa vastaus välittömästi.
analyzer = DataAnalyzer() total = 0 for i in range(10**5): analyzer.add_point(i, i % 100) total += analyzer.calculate_error(i % 97, i % 101) print(total) # 25745448974503313754828