Untitled

 avatar
unknown
python
5 months ago
1.3 kB
3
Indexable
def wartosc_wielomianu(wspolczynniki:list[int], x):
    # obliczanie wartości wielomianu metodą hornera dla x
    wartosc = wspolczynniki[0]
    
    for wspolczynnik in wspolczynniki[1:]:
        wartosc = wartosc * x + wspolczynnik
    
    return wartosc

def metoda_prostokatow(start:float, stop:float, probki:int, wspolczynniki:list[int]):
    pole = 0
    dystans = stop - start
    podstawa_prostokata = dystans / probki

    # wersja intuicyjna
    x = start
    for _ in range(probki):
        x += podstawa_prostokata
        h = wartosc_wielomianu(wspolczynniki, x)
        pole += podstawa_prostokata * h

    # wersja zoptymalizowana
    x = start
    h = 0
    for _ in range(probki):
        x += podstawa_prostokata
        h += wartosc_wielomianu(wspolczynniki, x)
    pole = podstawa_prostokata * h

    return pole


if __name__ == '__main__':
    # list[int, int] - kolejnych współczynników
    wspolczynniki = [int(elem) for elem in input('Współczynniki wielomianu: ').split()]
    start = int(input('Początek przedziału: '))
    end = int(input('Koniec przedziału: '))
    probki = int(input('Podaj ilość podziałów (idk jak to inaczej nazwać) funkcji: '))

    print(f'Pole pod wykresem dla funkcji, wynosi: {metoda_prostokatow(start, end, probki, wspolczynniki)}')
Editor is loading...
Leave a Comment