Всем здравствуйте! Мне необходимо решить задачу по следующему условию: Вычислить интеграл и найти такое n, при котором интеграл будет получен с
относительной погрешностью, равной 0,01%. Я пытаюсь долго понять, как находить n, я написал программу, но она не выводит очень долго (или вообще) число n:
import math
def f(x):
return math.exp(x)*((1+math.sin(x))/(1+math.cos(x)))
def Is(a,b,n):
s = 0
x = a
h = (b-a)/n
for i in range(1,n):
x=x+h
s=s+f(x)
return (2*s+f(a)+f(b))*h/2
def F(x):
return math.exp(x)*math.tan(x/2)
a=0
b=1.5
result=F(b)-F(a)
print(“Точное значение интеграла: {0:.9}”.format(result))
for n in range(1,100):
integral = Is(a,b,n)
absol = abs(result-integral)
d= (absol/result)*100
while d>=0.01:
n *= 2
s1 = Is(a,b,n)
print(“Интеграл по методу трапеций: {0:.9} при n={1}”.format(s1,n))
Помогите, пожалуйста, оптимизировать программу таким образом, чтобы при заданной относительной погрешности 0.01 нужно найти n. Буду очень благодарен за помощь!