0 Daumen
86 Aufrufe

Aufgabe:

Wir betrachten die Kurve
C : [0, π] → R^3 mit t 7→ (t cos(t), tsin(t), 0)
im Raum .

Wir lassen nun die Kurve C um die x-Achse rotieren. Dadurch entsteht ein sogenannter Rotationskörper K(C), dessen Oberfläche die von C
bei der Rotation uberstrichene Fläche ist.
(a) Uberlegen Sie zunächst, wie die Kurve C verläuft, und fertigen Sie
davon eine Skizze an.


(b) Versuchen Sie herauszufinden, ob es möglich ist, das Volumen v des
Rotationskörpers K(C) symbolisch zu berechnen.


(c) Bestimmen Sie den kleinsten achsenparallelen Quader Q, der den
Rotationskörper K(C) entält.


(d) Schreiben Sie ein Programm, welches innerhalb von Q gemäß der
stetigen Gleichverteilung n Punkte zufällig erzeugt und die Anzahl
a(n) derjenigen Punkte zählt, die im Rotationskörper K(C) liegen.
Aus a(n) soll dann im Programm ein numerischer Näherungswert
v∗(n) für v berechnet werden.


(e) Fuhren Sie systematisch Experimente mit Ihrem Programm durch
und stellen Sie die Werte v

(n) in Abhängigkeit von n grafisch dar.
Wie lässt sich die von Ihnen erhaltene grafische Darstellung interpretieren?


Problem/Ansatz:

Ich habe gerade ein Problem bei der Aufgabe (d) .. Es wäre echt nett wenn jemanden mir hilfen kann, den Programmcode zu schreiben...


Vielen Dank

von

Was für Programmiersprachen kannst Du denn und bist Du ausgerüstet damit (Aufgabe e)), und was sind Deine Lösungen zu a) bis c)?

Normalerweise programmiere ich solche Aufgaben mit Java.

Der erste Teil habe ich mit Excel skizziert und kam eine Kurve die so aussieht .


ewerr.png

Text erkannt:

C

beim Teil (B) habe ich den Volumen des V Rotationskörpers K(C) mit einem Integral symbolisch berechnet. und Zwar :

wqwewe.png

Text erkannt:

\( V 1=\int \limits_{0}^{\frac{\pi}{2}} \pi(x \cdot \sin (x))^{2} \mathrm{dx}= \)
\( V 2=\int \limits_{\frac{\pi}{2}}^{\pi} \pi(x \cdot \cos (x))^{2} d x= \)
\( \mathrm{V}=\mathrm{V} 1+\mathrm{V} 2 \)


Beim Teil (C) muss man eigentlich den Punkte der Qader bestimmen und zwar :

x1= 0,63 , y1= 1,83

x2= -3,2 , y2= -1,83

=> x= 2,57, y= 3,66

und damit kriegen wir die Fläche des Rechecks: x*y= 9,4062

1 Antwort

0 Daumen
#include <cmath>
#include <iostream>
#include <random>
#include <string>

int main (int argc, char* argv[]) {
  double x_min = -4;
  double x_max = 1;
  double yz_min = -2;
  double yz_max = 2;

  int n = std::stoi(argv[1]);

  std::random_device random_device;
  std::mt19937 generator(random_device());
  std::uniform_real_distribution<double> x_distrib(x_min, x_max);
  std::uniform_real_distribution<double> yz_distrib(yz_min, yz_max);

  int in = 0;
  for (int i = 0; i < n; ++i) {
      double x = x_distrib(generator);
      double y = yz_distrib(generator);
      double z = yz_distrib(generator);
      double r = std::sqrt(x*x + y*y + z*z);
      double y_proj = std::sqrt(r*r - x*x);
      double t = std::atan2(y_proj, x);

      if (r <= t) {
          ++in;
      }
  }

  double bbox = (x_max -x_min)*(yz_max -yz_min)*(yz_max -yz_min);

  std::cout << bbox * in/n << "\n";
}
von 3,5 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community