Proc 41. Описать функцию \(\text{Sin1}(x, \varepsilon)\) вещественного типа (параметры \(x, \varepsilon\) - вещественные, \(\varepsilon > 0\)), находящую приближенное значение функции sin(x):
\[\sin(x) = 1 - x^3/(3!) +x^5/(5!) - ... + (-1)^n\cdot x^{2\cdot n +1}/((2\cdot n + 1)!) + ...\]
В сумме учитывать все слагаемые, модуль которых больше \(\varepsilon\). С помощью Sin1 найти приближенное значение синуса для данного x при шести данных \(\varepsilon\).
Решение на Python 3
import random
import math
def Sin1(x,eps):
if eps <= 0:
print("Epsilon should be greater than 0")
y = x
f = x
i = 3
while abs(y) > eps:
y *= (-1) * x * x / ((i-1)*i)
i += 2
f += y
return f
eps = 0.01
for i in range(0, 6):
#x = -0.5
#x = 2
x = math.pi / 4
print("eps = ", eps, "; sin(",x,") = ",Sin1(x,eps),";",math.sin(x))
eps /= 10