From 35562c0698b87f82ff0d2791885f43e2272aeb55 Mon Sep 17 00:00:00 2001 From: Patrice Matz Date: Sat, 9 Dec 2017 14:02:57 +0100 Subject: [PATCH] -fixed mid_diff --- SCE/SCE/DIFF.cpp | 9 +++++++-- SCE/SCE/DIFF.h | 2 -- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/SCE/SCE/DIFF.cpp b/SCE/SCE/DIFF.cpp index fe8ec06..497e550 100644 --- a/SCE/SCE/DIFF.cpp +++ b/SCE/SCE/DIFF.cpp @@ -3,7 +3,6 @@ using namespace std; DIFF::DIFF() { - y1values.resize(yvalues.size()); } @@ -70,10 +69,16 @@ vector DIFF::mid_diff(vectory, vectorx) temp.at(i) = (y.at(i + 1) - y.at(i)) / (x.at(i + 1) - x.at(i)); i++; - for (; i < y.size() - 1; i++) + temp.at(i) = (y.at(i + 1) - y.at(i)) / (x.at(i + 1) - x.at(i)); + temp.at(i) += (y.at(i + 1) - y.at(i - 1)) / (x.at(i + 1) - x.at(i - 1)); + temp.at(i) /= 2; + for (; i < y.size() - 2; ++i) { temp.at(i) = (y.at(i + 1) - y.at(i - 1)) / (x.at(i + 1) - x.at(i - 1)); } + temp.at(i) += (y.at(i) - y.at(i - 1)) / (x.at(i) - x.at(i - 1)); + temp.at(i) /= 2; + i++; temp.at(i) = (y.at(i) - y.at(i - 1)) / (x.at(i) - x.at(i - 1)); return temp; diff --git a/SCE/SCE/DIFF.h b/SCE/SCE/DIFF.h index 1e448f6..682b522 100644 --- a/SCE/SCE/DIFF.h +++ b/SCE/SCE/DIFF.h @@ -7,8 +7,6 @@ class DIFF public: vector xvalues = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250}; vector yvalues = {0, 2926, 10170, 21486, 33835, 45251, 55634, 65038, 73461, 80905, 87368, 92852, 97355, 100878, 103422, 104986, 106193, 110246, 119626, 136106, 162095, 199506, 238775, 277065, 314375, 350704}; - vector y1values; //y-values of 1st derivative - vector y2values; //y-values of 2nd derivative vector diff();