Arkadaşlar merhaba ,
simpson 1/3 kuralına göre integral hesaplayan bir fonksiyon yazdım. Bu fonksiyonun işlem süresini kısaltmak için farklı olarak ne yapabilirim ?
def integral(func,baslangıc_noktası,bitis_noktası):
try:
delta_x: float = 0.000001
n = (bitis_noktası - baslangıc_noktası) / delta_x
n = int(round(n, 0))
except TypeError:
pass
if n//2 == 0 :
n =n
elif n//2 == 1:
n = n+1
liste1 = list()
liste1.append(func(baslangıc_noktası))
liste1.append(func(bitis_noktası))
for i in range(1,n-1,2):
liste1.append(4*func(baslangıc_noktası+i*delta_x))
for i in range(2,n-2,2):
liste1.append(2*func(baslangıc_noktası+i*delta_x))
integral_degeri = (delta_x/3)*sum(liste1)
return integral_degeri
import math
a = lambda x :(math.sin(x)**2)/(math.cos(x)**2)
print(integral(a,0,10))