Я пытаюсь изучить поведение семейства карт t_h: [0,1]-> [0,1] определено T_H (x) = min (H, 1-2 | X-1/2 |). Я наткнулся на семью в конце этой статьи о теореме Шарковского, дающего доказательство «резкости» теоремы. h (m): = min (maxo | o period-m orbit of t_1) дает первое событие карты с некоторым периодом M в семье. Я не мог найти каких -либо вычислений значений h (n), поэтому я написал программу, но она дико неэффективна.
Потребуется несколько часов, чтобы вычислять 25, а скорость роста того времени больше, чем экспоненциально, поэтому я не буду рисковать, не зафиксируя его. Ниже: я написал рациональный класс, потому что мне нужно было справиться с точными обоснованиями и не мог признать ошибки усечения; Кэш - это не то, что я на самом деле знаю, это происходит от внимания CHATGPT об оптимизации программы; Pert1 вычисляет точки периода n, так как их легко получить.#include
#include
#include
#include
#include
#include
#include
#include
// ===================
// Rational type
// ===================
struct Rational {
long long num;
long long denom;
Rational(long long n = 0, long long d = 1) {
if (d == 0) throw std::runtime_error("Zero denominator");
if (d < 0) { n = -n; d = -d; }
long long g = std::gcd(n,d);
num = n/g;
denom = d/g;
}
Rational operator+(const Rational& r) const {
return Rational(num*r.denom + r.num*denom, denom*r.denom);
}
Rational operator-(const Rational& r) const {
return Rational(num*r.denom - r.num*denom, denom*r.denom);
}
Rational operator*(const Rational& r) const {
return Rational(num*r.num, denom*r.denom);
}
Rational operator/(const Rational& r) const {
return Rational(num*r.denom, denom*r.num);
}
bool operator
Подробнее здесь: https://stackoverflow.com/questions/796 ... -tent-maps