using Test # Part 2.1 function sin(x) soma = big(0) for i in 0:10 n = 1 + (i * 2) soma += (-1)^i * (x^n) / factorial(big(n)) end return soma end function cos(x) soma = big(0) for i in 0:10 n = i * 2 soma += (-1)^i * big(x^n) / factorial(big(n)) end return soma end function tan(x) soma = big(0) for n in 1:10 soma += (2^(2 * n) * (2^(2 * n) - 1) * bernoulli(n) * x^(2 * n - 1)) / factorial(2 * n) end return soma end function bernoulli(n) n += 1 A = Vector{Float64}(undef, n + 1) for m = 0 : n A[m + 1] = 1 // (m + 1) for j = m : -1 : 1 A[j] = j * (A[j] - A[j + 1]) end end return A[1] end # --- function quaseigual(v1, v2) erro = 0.0001 igual = abs(v1 - v2) if igual <= erro return true else return false end end function check_sin(value, x) return quaseigual(value, Base.sin(x)) end function check_cos(value, x) return quaseigual(value, Base.cos(x)) end function check_tan(value, x) return quaseigual(value, Base.tan(x)) end # --- function taylor_sin(x) soma = big(0) for i in 0:10 n = 1 + (i * 2) soma += (-1)^i * (x^n) / factorial(big(n)) end return soma end function taylor_cos(x) soma = big(0) for i in 0:10 n = i * 2 soma += (-1)^i * big(x^n) / factorial(big(n)) end return soma end function taylor_tan(x) soma = big(0) for n in 1:10 soma += (2^(2 * n) * (2^(2 * n) - 1) * bernoulli(n) * x^(2 * n - 1)) / factorial(2 * n) end return soma end function bernoulli(n) n *= 2 A = Vector{Rational{BigInt}}(undef, n + 1) for m = 0 : n A[m + 1] = 1 // (m + 1) for j = m : -1 : 1 A[j] = j * (A[j] - A[j + 1]) end end return abs(A[1]) end