diff --git a/drt.cpp b/drt.cpp index f2491dc43819cec094ed0e49b5779a215dcef7fd..5f910cfd0dd9a87c1291f490b40010cf77b22b14 100644 --- a/drt.cpp +++ b/drt.cpp @@ -118,7 +118,7 @@ public: x[i] += 2*epsilon; fvalue right = fn(x); x[i] -= epsilon; - x[i] = (right-left)/(2*epsilon); + out[i] = (right-left)/(2*epsilon); } return out; } @@ -126,6 +126,7 @@ public: fvalue operator()(Eigen::VectorX<fvalue>& x, Eigen::VectorX<fvalue>& grad) { grad = getGrad(std::bind(&RtFunct::function, this, std::placeholders::_1), x, epsilon); + std::cout<<"grad:\n"<<grad<<std::endl; return function(x); } }; diff --git a/main.cpp b/main.cpp index 4e2624532b06a7b9b6ed5f4ed91904d1ca688c76..745f8e4d5520c22977076dd591ea59ac11fe71b8 100644 --- a/main.cpp +++ b/main.cpp @@ -27,23 +27,19 @@ int main(int argc, char** argv) std::cout<<std::scientific; eis::Range omega(1, 1e6, 3, true); - std::vector<fvalue> omegaVector = omega.getRangeVector(); eis::Model model("r{10}-r{50}p{0.02, 0.8}"); - for(size_t i = 0; i < 2; ++i) - { - std::vector<eis::DataPoint> data = model.executeSweep(omega); - printImpedance(data); + std::vector<eis::DataPoint> data = model.executeSweep(omega); + printImpedance(data); - FitMetics fm = {}; - Eigen::VectorX<fvalue> omega; - Eigen::VectorX<std::complex<fvalue>> impedanceSpectra = eistoeigen(data, &omega); - Eigen::VectorX<fvalue> x = calcDrt(impedanceSpectra, omega, fm, FitParameters(1000)); + FitMetics fm = {}; + Eigen::VectorX<fvalue> omegaVector; + Eigen::VectorX<std::complex<fvalue>> impedanceSpectra = eistoeigen(data, &omegaVector); + Eigen::VectorX<fvalue> x = calcDrt(impedanceSpectra, omegaVector, fm, FitParameters(1000)); - std::cout<<"Iterations: "<<fm.iterations<<'\n'; - std::cout<<"fx "<<fm.fx<<'\n'; - std::cout<<"xVect\n"<<x<<'\n'; - } + std::cout<<"Iterations: "<<fm.iterations<<'\n'; + std::cout<<"fx "<<fm.fx<<'\n'; + std::cout<<"xVect\n"<<x<<'\n'; return 0; }