= s-1/2-(1/3-1/2 + 1/4-1/3 + ... + 1/(n+1) - 1/n)
= s-1/2 - 1/(n+1)
Keltirilgan shaklda bo'lgan yig'indining qiymati = s-1/2 - 1/(n+1).
2-topshiriq
Quyidagi masalalar uchun algoritm va dastur kodini yozing. Har bir talaba o’zining jurnaldagi raqami bo’yicha bittadan masalani yechadi. Masalalar kam bo’lganda sanoq tartib boshidan boshlanadi. Masalan, 20 masala bo’lsa, 21-o’rindagi talaba 1-masalani, 22-o’rindagi talaba 2-masalani yechadi.
Quyidagi funksiyani to’rtburchaklar, Trapetsiya va Simpson formulalari yordamida taqribiy hisoblash dasturini tuzing. Har bir talaba guruh jurnalidagi raqami bo’yicha bitta masala uchun dastur tuzadi.
Ma'lumot uchun, bu masalani to'g'ri hisoblash uchun antiderivativani topish juda qiyin ekanligi sababli, integralni yaxshi hisoblash uchun, Simpson formulasi va trapetsiya formulasi qo'llanadi. Dastur Quyidagicha bo'ladi:
# Trapetsiya formulasi
def trapezoid(a, b, n):
h = (b - a) / n
I = (math.sin(a)/(1+a**2) + math.sin(b)/(1+b**2))/2
for i in range(1, n):
x = a + i*h
I += math.sin(x)/(1+x**2)
return I*h
# Simpson formulasi
def simpson(a, b, n):
if n % 2 != 0:
raise ValueError("n katta bo'lishi kerak")
h = (b - a) / n
x_even = a + 2*h
x_odd = a + h
sum_even = 0
sum_odd = math.sin(x_odd)/(1+x_odd**2)
for i in range(1, int(n/2)):
x_odd += 2*h
x_even += 2*h
sum_odd += math.sin(x_odd)/(1+x_odd**2)
sum_even += math.sin(x_even)/(1+x_even**2)
I = (math.sin(a)/(1+a**2) + math.sin(b)/(1+b**2) + 4*sum_odd + 2*sum_even)/3
return I*h
# Integralni hisoblash
Do'stlaringiz bilan baham: |