Proc 42. Описать функцию \(\text{Cos1}(x, \varepsilon)\) вещественного типа (параметры \(x, \varepsilon\) - вещественные, \(\varepsilon > 0\)), находящую приближенное значение функции cos(x):
\[\cos(x) = 1 - x^2/(2!) +x^4/(4!) - ... + (-1)^n\cdot x^{2\cdot n}/((2\cdot n)!) + ...\]
В сумме учитывать все слагаемые, модуль которых больше \(\varepsilon\). С помощью Cos1 найти приближенное значение косинуса для данного x при шести данных \(\varepsilon\).
Решение на Python 3
import random
import math
def Cos1(x,eps):
if eps <= 0:
print("Epsilon should be greater than 0")
y = 1
f = 1
i = 2
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("cos(",x,") = ",Cos1(x,eps),";",math.cos(x))
eps /= 10