22 using Array = std::vector<double>;
24 const double omega = 0.5;
28 Array radii, velocities, accelerations;
30 for (
double r = 0.1; r < R; r += 0.2) {
34 const double v = omega * r;
36 velocities.push_back(v);
38 const double a = pow(v, 2) / r;
40 accelerations.push_back(a);
43 for (
size_t idx = 0; idx < radii.size(); idx++) {
44 std::cout << radii[idx] <<
"," 45 << velocities[idx] <<
"," 46 << accelerations[idx] << std::endl;
48 std::cout <<
"-------------------------------" << std::endl;
50 for (
size_t idx = 0; idx < radii.size(); idx++) {
51 std::cout << radii[idx] <<
";" 52 << velocities[idx] <<
";" 53 << accelerations[idx] << std::endl;
62 using Array = std::vector<double>;
63 const double omega = 0.5;
67 Array radii, velocities, accelerations;
70 auto v = [omega](
double r) {
return omega * r; };
71 auto a = [omega](
double r) {
return pow(omega, 2) * r; };
76 auto print = [](
const auto &v1,
80 for (
size_t idx = 0; idx < v1.size(); idx++) {
81 std::cout << v1[idx] << sep
83 << v3[idx] << std::endl;
88 for (
double r = 0.1; r < R; r += 0.2) {
90 velocities.push_back(v(r));
91 accelerations.push_back(a(r));
95 print(radii, velocities, accelerations);
96 print(radii, velocities, accelerations,
';');
104 using Array = std::vector<double>;
105 const double omega = 0.5;
108 Array radii, velocities, accelerations;
110 double startval = -0.1;
112 std::generate_n(std::back_inserter(radii), 5, [&startval]() {
113 return startval += 0.2;
117 auto v = [omega](
double r) {
return omega * r; };
118 auto a = [omega](
double r) {
return pow(omega, 2) * r; };
121 std::transform(radii.begin(), radii.end(), std::back_inserter(velocities), v);
124 std::transform(radii.begin(), radii.end(), std::back_inserter(accelerations), a);
129 auto print = [](
char sep,
const auto &v1,
const auto &... v) {
130 for (
size_t idx = 0; idx < v1.size(); idx++) {
131 std::cout << v1[idx];
132 ((std::cout << sep << v[idx]), ...);
133 std::cout << std::endl;
138 print(
',', radii, velocities, accelerations);
139 print(
';', radii, velocities, accelerations);
147 using Table = std::vector<std::array<double, 4>>;
151 const double T1 = 20;
152 const double T2 = 15;
154 const auto omega1 = 2 *
Math::PI / T1;
155 const auto omega2 = 2 *
Math::PI / T2;
158 for (
double t = 0; t < T1; t += 0.001) {
159 const double phi1 = omega1 * t;
160 const double phi2 = omega2 * t;
163 std::array vals = { t, phi1, phi2, phi2 - phi1 };
164 table.push_back(vals);
168 auto exactfn = [omega1, omega2](
double deltaphi) {
169 return deltaphi / (omega2 - omega1);
172 std::cout << std::fixed << std::setprecision(3);
175 for (
auto n : { 10, 30, 60, 90 }) {
178 double epsilon = 1e-6;
179 Table::iterator fidx;
184 auto pfn = [angle, &epsilon](
const auto &a) {
185 return std::abs(a[3] - angle) <= epsilon;
188 fidx = std::find_if(table.begin(), table.end(), pfn);
189 if (fidx != table.end()) {
193 }
while ((epsilon *= 10) < 1e-2);
195 if (fidx != table.end()) {
198 std::cout << std::distance(table.begin(), fidx)
199 << std::setw(8) << row[0]
201 << std::setw(8) << exactfn(angle) << std::endl;
204 std::cout <<
"time not found for angle:" 214 std::vector<double> v1(20);
217 std::iota(std::begin(v1), std::end(v1), 0);
220 std::vector<double> v2;
225 std::copy_if(std::begin(v1),
227 std::back_inserter(v2),
228 [](
double x) {
return x > 6; });
231 auto print = [](
double x) { std::cout << x <<
","; };
234 std::for_each(std::begin(v1), std::end(v1), print);
235 std::cout << std::endl;
237 std::for_each(std::begin(v2), std::end(v2), print);
238 std::cout << std::endl;
240 const double xmin = 10, xmax = 16;
243 auto itr1 = std::find_if(std::begin(v1),
245 [xmin](
auto x) {
return x > xmin; });
248 auto itr2 = std::find_if(std::begin(v1),
250 [xmax](
auto x) {
return x > xmax; });
252 std::for_each(itr1, itr2, print);
static double to_degrees(double x)
void ex5()
ex5 lambda-Funktionen und Container
void ex2()
ex7 Die Bahngeschwindigkeit als Funktion des Abstands von der Rotationsachse, Version 2...
void ex4()
ex4 Gleichförmige Kreisbewegung von zwei Teilchen
void ex1()
ex1 Die Bahngeschwindigkeit als Funktion des Abstands von der Rotationsachse, Version 1...
static double to_radians(double x)
static constexpr double PI
void ex3()
ex8 Die Bahngeschwindigkeit als Funktion des Abstands von der Rotationsachse, Version 3...