Python : Mathematische Modellierung mit Python-Funktionen (Kreisfläche)?
Hallo,
ich benötige Hilfe mit meinen Programm.
Der folgende Quellcode zeigt eine Umsetzung des Algorithmus zur Annährung der Kreisfläche durch Rechtecke.
Der Aufruf der Funktion und die Berechnung der Genauigkeit, zeigen, dass durch die dargestellte Funktion eine größere Fläche berechnet wird (negatives Vorzeichen).
print(pi-piApprox(50))
--> -0.0366758575087
Die ursprünglich geplante Funktion hätte zu einer kleineren Fläche als 𝝅 führen sollen (positives Vorzeichen).
Könnt Ihr mir bitte helfen den Fehler zu finden?
Danke.
1 Antwort
Wie genau soll die Berechnung denn ablaufen?
Die Höhe wird via Pythagoras ermittelt, allerdings fängst der Algorithmus mit i=0 bei einer Höhe von 1 fürs erste Rechteck an, wenn Du allerdings ein Innenliegendes Rechteck haben willst, dann würdest Du doch im ersten Schritt mit der Höhe bei 1/n multiplizieren wollen.
Und der Algorithmus berechnet im ersten Schritt sqrt(1-(0*1/n)^2) - Derzeit wird also 0/n bis (n-1)/n verwendet, Du willst aber vermutlich für innenliegend 1/n bis n/n (letztes Glied wird dann null).
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1,11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Die Berechnung soll so ablaufen:
Zusammenfassung der Rechenschritte:
1. Einmalig die Breite b aller Rechtecke bestimmen: b = r / n = 1 / n
2. Höhe h aller Rechtecke bestimmen: h= √ 1 - bn^2
Dabei muss 𝒃𝒏 für jedes weitere Rechteck um b erhöht werden (Schleife).
3. Berechnung der Fläche: A = b * h
Jede neue Fläche A muss zur Gesamtfläche aufaddiert werden (Schleife).
Für die Breite der Rechtecke muss die Breite b = 1 / n aus Schritt 1 verwendet werden.
Der angegebene Radius beträgt 1.0