Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
blbadger authored Mar 5, 2021
1 parent 6adae40 commit 1c22852
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions reverse_logistic.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#include <iostream>
#include <vector>
#include <cmath>
#include <iomanip>
using namespace std;

vector<double> reverse_logistic(vector<double> values, double r, int steps){
if (steps == 0){
return values;
}
vector<double> new_values {};
for (int i=0; i < values.size(); i++){
double current_value = values[i];

if ((r*r-4*r*current_value) >= 0){
double numerator = r + sqrt(r*r - 4*r*current_value);
double next_value = numerator / (2*r);
if(0 < next_value and 1 > next_value){
new_values.push_back(next_value);
}

numerator = r - sqrt(r*r - 4*r*current_value);
next_value = numerator / (2*r);
if(0 < next_value and 1 > next_value){
new_values.push_back(next_value);
}
}

}
return reverse_logistic(new_values, r, steps-1);
}


int main() {
vector<double> values {0.5};
double r = 3.9;
int steps = 3;
vector<double> val = reverse_logistic(values, r, steps);
cout << val.size() << endl;
for (int i = 0; i < val.size(); i++){
cout << std::setprecision (17) << val[i] << ',' << ' ';
}
return 0;
}



0 comments on commit 1c22852

Please sign in to comment.