Recursive Trapezoid Method

Aturan trapesium adalah untuk aturan yang digunaka untuk menemukan nilai pasti integral - integral menggunakan metode numerik. Aturan ini terutama didasarkan pada rumus Newton-Cotes yang menyatakan bahwa seseorang dapat menemukan nilai tepat integral sebagai urutan polinomial.

Asumsikan bahwa f (x) adalah fungsi kontinu pada interval yang diberikan [a, b]. Sekarang bagilah interval [a, b] menjadi n sub-zona yang sama

Metode Recursive Trapezoid 1 interval

h=b-a
R(0,0)=\frac{b-a}{2}(f(a)+f(b))

Metode Recursive Trapezoid 2 interval

h=\frac{b-a}{2}
R(1,0)=\frac{b-a}{2}[(f(a+h)+\frac{1}{2}f(a)+f(b))]
R(1,0)=\frac{1}{2}R(0,0)+h[f(a+h)]

dimana R(0,0) berdasarkan estimasi sebelumnya dan f(a+h) berdasarkan pada titik baru $$ h = \frac{b-a}{4} $$

R(2,0)=\frac{b-a}{4}[f(a+h)+f(a+2h)+f(a+3h)+\frac{1}{2}(f(a)+f(b))]
R(2,0)=\frac{1}{2}R(1,0)+h[f(a+h)+f(a+3h)]

dimana R(1,0) berdasarkan estimasi sebelumnya dan f(a+h) berdasarkan titik baru

Formula Recursive Trapezoid

dari deskripsi diatas maka bisa disimpulkan bahwa rumus recursive trapezoid adalah $$ R(0,0) = \frac{b-a}{2}[f(a)+f(b)] $$

R(n,0)=\frac{1}{2}R(n-1,0)+h[\sum_{k=1}^{2^{(n-1)}}f(a+(2k-1)h)]
h = \frac{b-a}{2^n}

Program

#definisi fungsi
def fungsi(x):
    y = 1/(1+x)
    return y

print("fungsi yang digunakan adalah")
print("\t\t","f(x) = 1/(1+x)")
print("")


a = float(input("Masukkan batas bawah integral : "))
b = float(input("Masukkan batas atas integral : "))
c = int(input("masukkan n : "))
error = []
print("")
print("---------HASIL----------")
print("iterasi","\t","n","\t\t","Trapezoid")

for iterasi in range (0,c):
    n = 2**iterasi
    h = (b-a)/n

    xi = a
    y = 0
    for i in range (1,n):
        xi = xi + h
        y += fungsi(xi)
    trap =((h)*(fungsi(a) + (2*y) + fungsi(b)))/2
    error.append(trap)
    print(iterasi+1,"\t\t",n,"\t\t",trap)
print(error[iterasi-1])
print(error[iterasi])
hasil = (error[iterasi-1]-error[iterasi])
print(hasil)
print("estimasi error : "+str(hasil))
fungsi yang digunakan adalah
         f(x) = 1/(1+x)

Masukkan batas bawah integral : 0
Masukkan batas atas integral : 1
masukkan n : 15

---------HASIL----------
iterasi      n       Trapezoid
1        1       0.75
2        2       0.7083333333333333
3        4       0.6970238095238095
4        8       0.6941218503718504
5        16          0.6933912022075267
6        32          0.6932082082692488
7        64          0.6931624388834033
8        128         0.6931509952281075
9        256         0.6931481342324433
10       512         0.6931474189784099
11       1024        0.6931472401645831
12       2048        0.6931471954611083
13       4096        0.6931471842852348
14       8192        0.69314718149127
15       16384       0.6931471807927745
0.69314718149127
0.6931471807927745
6.984954836752877e-10
estimasi error : 6.984954836752877e-10