m *= 2 # skratenie intervalu na polovicu h /= 2 for i in range(m): J += f(((a + (h * i)) + (a + h * (i + 1))) / 2) I.append(h * J) logger.info('m = {0}, h = {1}, Abs(I[k] - I[k + 1]) = {2}'.format( m, h, Abs(I[k] - I[k + 1]))) # skonci pri dosiahnuti presnosti if Abs(I[k] - I[k + 1]) <= e: return I[k + 1] k += 1 if __name__ == '__main__': a = float_input('Zadajte cislo a') b = float_input('Zadajte cislo b') m = int_input('Zadajte pocet delenia intervalu m') fn = expr_input('Zadajte funkciu fn') e = float_input('Zadajte presnost e', default=0.01) r = rectangle(a, b, m, fn, e) print('Aproximacia je: {0}'.format(r))
""" S vyuzitim Babylonskej metody vypocita odmocninu cisla n. """ assert n > 0, 'Cislo n musi byt vacsie ako nula' assert x0 > 0, 'Pociatocna hodnota x0 musi byt vacsia ako nula' assert e > 0, 'Presnost e musi byt vacsia ako nula' while True: # nova aproximacia je priemerom hodnot x0 a n / x0 x = 0.5 * (x0 + n / x0) logger.info( 'x = {0}, x0 = {1}, Abs(x - x0) = {2}'.format(x, x0, Abs(x - x0))) # skonci ak je dosiahnuta pozadovana presnost if Abs(x - x0) < e: return x x0 = x if __name__ == '__main__': n = int_input('Zadajte cislo n') x0 = float_input('Zadajte pociatocnu hodnotu x0') e = float_input('Zadajte presnost e', default=0.01) r = babylon(n, x0, e) print('Odmocnina je: {0}'.format(r))