From 7750dbddb15ba21ff609c3252a2cae41eb96a10a Mon Sep 17 00:00:00 2001 From: david Date: Mon, 6 May 2019 14:27:39 +0200 Subject: [PATCH] Taylor --- taylor | Bin 0 -> 17872 bytes taylor.cpp | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100755 taylor create mode 100644 taylor.cpp diff --git a/taylor b/taylor new file mode 100755 index 0000000000000000000000000000000000000000..12b975b6e2451ad9332bbbbee685539b52b8ba0f GIT binary patch literal 17872 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 literal 0 HcmV?d00001 diff --git a/taylor.cpp b/taylor.cpp new file mode 100644 index 0000000..6d8d6fb --- /dev/null +++ b/taylor.cpp @@ -0,0 +1,38 @@ +#include +#include + +using namespace std; + +long factorial(long N) { + if (N < 2) return 1; + for (int i = N - 1; i > 0; --i) { + N = N * i; + } + return N; +} + +double sin_taylor(double x, int N) { + double res = 0; + for (int k = 0; k < N; ++k) { + res += pow(-1, k) * pow(x, 1 + 2*k) / (double)factorial(1 + 2*k); + } + return res; +} +void find_interval(int N) { + for (double x = 0; x < 3.14; x += 0.00000001) { + double real = sin(x); + double taylor = sin_taylor(x, N); + //cout << "Real: " << real << " Taylor: " << taylor << endl; + if (abs(real - taylor) > 0.001) { + cout << "Interval: [0, " << x - 0.01 << "]" << endl; + break; + } + } +} + +int main(int argc, char* argv[]) { + find_interval(1); + find_interval(2); + find_interval(3); + return 0; +}