Pi-Schleife programmieren < Folgen+Grenzwerte < Analysis < Oberstufe < Schule < Mathe < Vorhilfe
|
Hi,
ich moechte eine Schleife bauen, die Pi OHNE sinus usw. ausrechnet (Grund duerfte klar sein).
Die Genauigkeit ist eher sekundaer, ich wollte nur ueberpruefen lassen ob meine Schleife schon benutzbar ist.
Also fangen wir von Anfang an.
pi=u/d
u=Umfang
d=Durchmesser
d=2*r
r=Radius
r=1
Meine Idee ist nun, einen Kreis erstmal durch 4 zu teilen, die entstehende 'Seite' ist 1/4 pi (natuerlich nicht, aber es geht hier ums annaehern)
diese Kante ist x
[mm] x=(r^2+r^2)^{0,5}
[/mm]
pi=4*x
Die 4 ist ein Vorfaktor naemlich a
a=2^(2+n)
n=Anzahl der Durchlaeufe, startet bei 0=0
Jetzt teil ich das Viertel nochmal und habe die Seite c
c=1/2*x
dazu hab ich die Seite [mm] e=(r^2-c^2)^{0,5}
[/mm]
und daher die seite f=r-e
So und jetzt beginnt die Schleife(x wird nochmal veraendert) mit
kommentar// [mm] x=(c^2+f^2)^{0,5} [/mm] //
[mm] x=((x/2)^2 +(r-(r^2-(x/2)^2)^{0,5})^2)^{0,5}
[/mm]
n=n+1
etc.
Geht das auf?
Bitte zeichnet euch das auf ein Blatt Papier, sollte klar sein Welche Seiten c, e, und f darstellen :)
Allerdings bin ich mir nicht sicher ob ich in dem Schritt wo ich x veraender nicht lieber die Variablen nehmen.
|
|
|
|
Hallo!
Naja, wenn du möchtest, daß wir dir helfen, dann solltest du schon dazu beitragen, daß man die Sache gut versteht, und z.B. eine Skizze selbst dazu liefern.
> Meine Idee ist nun, einen Kreis erstmal durch 4 zu teilen,
> die entstehende 'Seite' ist 1/4 pi (natuerlich nicht, aber
> es geht hier ums annaehern)
"Durch vier teilen" kannst du eine Zahl, aber nicht einen Kreis. Aber da ich denke, daß ich weiß, was du willst: Du willst den Kreis mit zwei Graden in vier Viertel zerlegen.
> diese Kante ist x
>
> [mm]x=(r^2+r^2)^{0,5}[/mm]
> pi=4*x
>
> Die 4 ist ein Vorfaktor naemlich a
> a=2^(2+n)
> n=Anzahl der Durchlaeufe, startet bei 0=0
>
> Jetzt teil ich das Viertel nochmal und habe die Seite c
> c=1/2*x
> dazu hab ich die Seite [mm]e=(r^2-c^2)^{0,5}[/mm]
> und daher die seite f=r-e
>
Ok so weit....
> So und jetzt beginnt die Schleife(x wird nochmal
> veraendert) mit
> kommentar// [mm]x=(c^2+f^2)^{0,5}[/mm] //
> [mm]x=((x/2)^2 +(r-(r^2-(x/2)^2)^{0,5})^2)^{0,5}[/mm]
>
> n=n+1
>
> etc.
>
> Geht das auf?
>
> Bitte zeichnet euch das auf ein Blatt Papier, sollte klar
> sein Welche Seiten c, e, und f darstellen :)
>
> Allerdings bin ich mir nicht sicher ob ich in dem Schritt
> wo ich x veraender nicht lieber die Variablen nehmen.
Also, meiner Meinung nach geht das gut auf. Mir ist nicht ganz klar, was du mit deinem letzten Satz meinst. Prinzipiell kannst du deine Formel aber genau so in ein Computerprogramm übernehmen. Je nach verwendeter Sprache bedeutet das '^' allerdings was anderes, in C brauchst du z.b. ein pow(r,2) für ein Quadrat.
|
|
|
|
|
Also mit dem letzten Satz meinte ich eigentlich:
wuerde es genuegen jetzt nur noch die lange Formel von x=...
zu nehmen? Aber ist ja nicht so dramatisch, ist ja eh eine Schleife :)
Ja, mit der SKizze hast du recht, aber wie kann man hier ein Bild einfuegen?
Gruss
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:20 So 08.12.2013 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
> Hi,
>
> ich moechte eine Schleife bauen, die Pi OHNE sinus usw.
> ausrechnet (Grund duerfte klar sein).
>
> Die Genauigkeit ist eher sekundaer, ich wollte nur
> ueberpruefen lassen ob meine Schleife schon benutzbar ist.
>
> Also fangen wir von Anfang an.
>
> pi=u/d
> u=Umfang
> d=Durchmesser
>
> d=2*r
> r=Radius
>
> r=1
>
> Meine Idee ist nun, einen Kreis erstmal durch 4 zu teilen,
> die entstehende 'Seite' ist 1/4 pi (natuerlich nicht, aber
> es geht hier ums annaehern)
>
> diese Kante ist x
>
> [mm]x=(r^2+r^2)^{0,5}[/mm]
> pi=4*x
>
> Die 4 ist ein Vorfaktor naemlich a
> a=2^(2+n)
> n=Anzahl der Durchlaeufe, startet bei 0=0
>
> Jetzt teil ich das Viertel nochmal und habe die Seite c
> c=1/2*x
> dazu hab ich die Seite [mm]e=(r^2-c^2)^{0,5}[/mm]
> und daher die seite f=r-e
>
> So und jetzt beginnt die Schleife(x wird nochmal
> veraendert) mit
> kommentar// [mm]x=(c^2+f^2)^{0,5}[/mm] //
> [mm]x=((x/2)^2 +(r-(r^2-(x/2)^2)^{0,5})^2)^{0,5}[/mm]
>
> n=n+1
>
> etc.
>
> Geht das auf?
>
> Bitte zeichnet euch das auf ein Blatt Papier, sollte klar
> sein Welche Seiten c, e, und f darstellen :)
>
> Allerdings bin ich mir nicht sicher ob ich in dem Schritt
> wo ich x veraender nicht lieber die Variablen nehmen.
Hallo,
ich hatte dir schon eine sehr ausführliche Antwort geschrieben,
aber dann leider vergessen, sie wirklich abzuschicken, und
jetzt scheint sie verschwunden zu sein. Also nochmals,
etwas kürzer:
Deine Idee ist durchaus realisierbar. Sie entspricht auch
so ungefähr einer der Ideen, mit der Archimedes vor über
2200 Jahren gute Annäherungswerte für π berechnete.
Ich hätte ein paar Vorschläge:
1.) Verwende die Annahme r=1 konsequent - das vereinfacht
die Formeln.
2.) Betrachte statt den ganzen nur jeweils den halben Umfang
des Kreises bzw. der Vielecke. Vorteil: am Ende hast du
gerade π selbst und nicht 2π .
3.) Starte statt mit dem Quadrat (Viereck) als erster
Approximation mit einem "Zweieck" als nullter Approxi-
mation. Dieses hat den Umfang $\ [mm] u_0\ [/mm] =\ [mm] \left|\overline{AB}\right|+\left|\overline{AB}\right|\ [/mm] =\ 4*r\ =\ 4$
und den halben Umfang $\ [mm] p_0=\frac{u_0}{2}\ [/mm] =\ [mm] 1*x_0\ [/mm] =\ 2$
4.) Verwende eine konsequente Bezeichnungsweise bzw.
Nummerierung:
[mm] x_n [/mm] = Seitenlänge des [mm] 2^{n+1} [/mm] - Ecks
[mm] p_n [/mm] = halber Umfang des [mm] 2^{n+1} [/mm] - Ecks = [mm] 2^n*x_n [/mm]
Du hast dir schon überlegt, wie man aus einer Seitenlänge
[mm] x_n [/mm] die Seitenlänge [mm] x_{n+1} [/mm] des nächstfolgenden Vielecks
(mit verdoppelter Seitenzahl) berechnet. Zusammengefasst:
$\ c:=\ [mm] \frac{x_n}{2}$
[/mm]
$\ e:=\ [mm] \sqrt{r^2-c^2}\ [/mm] =\ [mm] \sqrt{1-\left(\frac{x_n}{2}\right)^2}$
[/mm]
$\ f:=\ r-e\ =\ 1- [mm] \sqrt{1-\left(\frac{x_n}{2}\right)^2}$
[/mm]
$\ [mm] x_{n+1}\ [/mm] :=\ [mm] \sqrt{c^2+f^2}$
[/mm]
Wenn du mit [mm] x_0=2 [/mm] startest, kannst du mittels dieser
Formeln und $\ [mm] p_n\ [/mm] =\ [mm] 2^n*x_n$ [/mm] eine Folge von Näherungs-
werten für π berechnen. Ich bin z.B. für das 256-Eck auf
Folgendes gekommen:
[mm] $\pi\ \approx\ p_7\ \approx\ [/mm] 3.1415$
was schon ziemlich gut ist.
Allerdings eignet sich dieses Verfahren nicht wirklich für
echt große Werte von n. Aber dies wäre ein anderes Kapitel.
LG , Al-Chwarizmi
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:04 Fr 06.12.2013 | Autor: | sinnlos123 |
Oh, ja klar, die Seite x, ist natuerlich nicht 1/4 pi :D
war wohl noch etwas muede zzz
Aber pi ist dann pi=(a*x)/(2r)
Bitte bloss nicht daran aufhaengen (weiss, die 2 kann man noch kuerzen xd mit a)
bin erstmal am nachvollziehen was Al-Chwarizmi geschrieben hat =)
|
|
|
|
|
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Für alle, die sich für ein Pi-Programm interessieren,
hier das ungefähr einfachste und kürzeste Programm,
welches Pi berechnet und dazu auch numerisch besser
funktioniert als das in diesem Thread vorher besprochene:
$\mbox{\Large{ p:=\ 2\ \ ;\ \ c:=\ 0}}$
$\mbox{\Large{repeat \ \ c:=\ \sqrt{(1+c)/2}}\quad ;\quad\mbox{\Large{ p:=\ p/c}}$
$\mbox{\Large{ until\ \ c\,=\,1}}}}$
$\mbox{\Large{write(p)}}$
Ich habe es vor langer Zeit entworfen und jetzt
wieder "ausgegraben". Der geometrische Hinter-
grund für die Rekursion beruht ebenfalls auf der
fortgesetzten Verdoppelung der Seitenzahl von
Vielecken.
Zwar ist die Repeat-Schleife in diesem Programm
theoretisch endlos, denn die Abbruchbedingung
kann gar nicht exakt erfüllt werden. Trotzdem
funktioniert das Programm praktisch tadellos,
falls man es mit üblicher Hard- und Software
laufen lässt (c=1 wird durch Runden erreicht).
LG , Al-Chw.
|
|
|
|
|
Dennoch fehlt fuer die "reinste" Pi-Zahl auch noch eine Naeherungsart um die Wurzel zu bestimmen (auch in meinem).
Ich moechte ja Pi ohne jegliches 'undurchschaubares' berechnen.
Gibt es da eine nachvollziehbare Methode?
Geht mehr ums verstehen als um die Genauigkeit :)
Zumal versteh ich deinen Baustein nicht, hast du vielleicht noch die Kommentare zur Verfuegung als du das gemacht hast? Oder wie du das hergeleitet hast.
|
|
|
|
|
> Dennoch fehlt fuer die "reinste" Pi-Zahl auch noch eine
> Naeherungsart um die Wurzel zu bestimmen (auch in meinem).
> Ich moechte ja Pi ohne jegliches 'undurchschaubares'
> berechnen.
Naja, "undurchschaubar" ist ja das Wurzelziehen ja nicht
(von der Theorie her) - aber es stimmt natürlich, dass auch
diese Rekursion, obwohl sie numerisch wesentlich bessere
Eigenschaften hat als die erste, bei der auch die Seitenlängen [mm] x_n
[/mm]
berechnet wurden, die für große n gegen Null streben und
deshalb zu numerischen Problemen führen spätestens, wenn
sie sich der kleinsten möglichen Maschinenzahl nähern,
etwa für die Rechnung "von Hand" kaum geeignet wäre
wegen dem Wurzelziehen - aber wer macht das denn
überhaupt noch in der heutigen Zeit ...
> Gibt es da eine nachvollziehbare Methode?
Für das Wurzelziehen gäbe es natürlich das Heronsche
Verfahren, das ebenfalls eine rekursive Methode ist,
bei der man aber für die Rechnungen mit den Grund-
operationen auskommt.
> Geht mehr ums verstehen als um die Genauigkeit :)
>
> Zumal versteh ich deinen Baustein nicht, hast du vielleicht
> noch die Kommentare zur Verfuegung als du das gemacht hast?
> Oder wie du das hergeleitet hast.
Vielleicht finde ich noch etwas Kopierbares. Doch ich kann
die Kernidee auch so erläutern. Mach dir eine Zeichnung:
[Dateianhang nicht öffentlich]
1.) Strecke AB der Länge [mm] p_0=2 [/mm] mit Mittelpunkt M
2.) Thales- Halbkreis mit Radius r=1. Bogenlänge = π
3.) Zeichne dann (vielleicht mit verschiedenen Farben)
die Streckenzüge [mm] p_1, p_2, p_3 [/mm] der (halben) Vielecke
aus 2, 4, 8 Teilstrecken.
4.) Nun kommt die Hauptidee. Es gilt:
[mm] $\frac{p_0}{p_1}$ [/mm] = cos(45°)
[mm] $\frac{p_1}{p_2}$ [/mm] = cos(22.5°)
[mm] $\frac{p_2}{p_3}$ [/mm] = cos(11.25°)
etc. (Winkel immer wieder halbieren !)
Dies kann man sich anhand der Zeichnung klar machen.
5.) Mit diesen Betrachtungen kommt man zur Darstellung
[mm] $\pi\ [/mm] =\ [mm] \frac{2}{cos\left(\frac{\pi}{4}\right)*cos\left(\frac{\pi}{8}\right)*cos\left(\frac{\pi}{16}\right)*cos\left(\frac{\pi}{32}\right)*\ .......\ }$
[/mm]
Zur Berechnung der Cosinuswerte können wir beim
Winkel [mm] \frac{\pi}{2} [/mm] mit dem Cosinuswert [mm] c_0=0 [/mm] beginnen (den
wir zwar als Nenner noch gar nicht benötigen) und
daraus mittels der Halbwinkelformel jeweils den
nächsten Cosinuswert (für den halbierten Winkel)
berechnen.
So kommt die Rekursion zustande: Start mit [mm] p_0=2
[/mm]
= Kreisdurchmesser [mm] |\overline{AB}|
[/mm]
Dann in jedem Schritt zuerst den neuen Cosinuswert
berechnen und das alte p ersetzen nach der Formel:
$\ [mm] p_{n+1}\ [/mm] =\ [mm] \frac{p_n}{c_{n+1}}$
[/mm]
Das Ganze war damals Inhalt einer Unterrichtssequenz
mit einer Klasse, in der ich gleichzeitig Mathe, also
auch Geometrie, und Informatik unterrichtete.
LG , Al-Chwarizmi
Dateianhänge: Anhang Nr. 1 (Typ: png) [nicht öffentlich]
|
|
|
|
|
Hi, ich kann gut nachvollziehen was du gemacht hast, jedoch versteh ich noch nicht wie du dann von dem n-fachen halbieren des winkels auf:
$ [mm] \pi\ [/mm] =\ [mm] \frac{2}{cos\left(\frac{\pi}{4}\right)\cdot{}cos\left(\frac{\pi}{8}\right)\cdot{}cos\left(\frac{\pi}{16}\right)\cdot{}cos\left(\frac{\pi}{32}\right)\cdot{}\ .......\ } [/mm] $
kommst.
Haettest du nicht auch "dumm" tun koennen und pi(bzw den umfang) 'pi mal daumen' schaetzen koennen fuer den Anfang?
In deinem Fall halt pi=2 als ausgangswert
Gehe ich uebrigens recht in der Annahe, dass dein Baustein egal wie gross das anfangs p ist immer gegen pi sich annaehert?
|
|
|
|
|
> Hi, ich kann gut nachvollziehen was du gemacht hast, jedoch
> versteh ich noch nicht wie du dann von dem n-fachen
> halbieren des winkels auf:
> [mm]\pi\ =\ \frac{2}{cos\left(\frac{\pi}{4}\right)\cdot{}cos\left(\frac{\pi}{8}\right)\cdot{}cos\left(\frac{\pi}{16}\right)\cdot{}cos\left(\frac{\pi}{32}\right)\cdot{}\ .......\ }[/mm]
>
> kommst.
Ich habe vor, noch eine Figur mit Kommentar zum Verständnis
dieser Berechnung zu machen.
> Haettest du nicht auch "dumm" tun koennen und pi(bzw den
> umfang) 'pi mal daumen' schaetzen koennen fuer den Anfang?
> In deinem Fall halt pi=2 als ausgangswert
>
> Gehe ich uebrigens recht in der Annahe, dass dein Baustein
> egal wie gross das anfangs p ist immer gegen pi sich
> annaehert?
Nein, das ist nicht so. [mm] p_n [/mm] steht für den halben Umfang des
regelmäßigen [mm] 2^{n+1} [/mm] - Ecks mit Umkreisradius r=1. Also
für n=1 regelmäßiges 4-Eck (Quadrat), für n=2 regelmäßiges
8-Eck etc. Mit n=0 und dem "regelmäßigen 2-Eck" habe ich
nur aus ästhetischen Gründen angefangen, weil das mit [mm] p_0=2
[/mm]
besonders einfach ist (und man dazu noch nicht einmal eine
Wurzel braucht) und weil man dann mit [mm] $\alpha_0=\frac{\pi}{2}$
[/mm]
mit [mm] c_0=cos(\alpha_0)=0 [/mm] starten kann ...
Da steckt möglicherweise auch so ein Quentchen Eitelkeit
(wegen der Eleganz des resultierenden Progrämmchens)
dahinter ...
Möglich gewesen wäre aber z.B. auch ein Start mit [mm] p_0=3
[/mm]
und $\ [mm] c_0=\frac{\sqrt{3}}{2}$ [/mm]
Dies entspräche dem regelmäßigen 6-Eck als Ausgangs-
figur (von dem auch Archimedes bei seiner Berechnung
von [mm] \pi [/mm] ausgegangen war).
LG , Al-Chw.
|
|
|
|
|
> Hi, ich kann gut nachvollziehen was du gemacht hast,
> jedoch versteh ich noch nicht wie du dann von dem
> n-fachen Halbieren des Winkels auf dies kommst:
> [mm]\pi\ =\ \frac{2}{cos\left(\frac{\pi}{4}\right)\cdot{}cos\left(\frac{\pi}{8}\right)\cdot{}cos\left(\frac{\pi}{16}\right)\cdot{}cos\left(\frac{\pi}{32}\right)\cdot{}\ .......\ }[/mm]
Guten Abend,
zur Erläuterung habe ich jetzt noch eine weitere
Zeichnung erstellt:
[Dateianhang nicht öffentlich]Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
M sei der Kreismittelpunkt und \overline{AB} eine Seite des
dem Kreis einbeschriebenen N-Ecks. Für die vorlie-
gende Zeichnung wäre N=3. Dies tut aber nichts
zur Sache. Ich habe dies nur so gewählt, um eine
sehr deutliche Figur zu erhalten. Für die eigentliche
Berechnungen brauchen wir dann ja für N Zweier-
potenzen: N=2^{n+1} mit n\in\IN_0 .
H halbiere den Bogen AB , P den Bogen AH und Q
den Bogen HB. Dann sind die Strecke \overline{AB} bzw.
die Streckenzüge \overline{AHB} , \overline{APHQB}
Teile der Umfänge des N-Ecks, des 2N-Ecks und des
4N-Ecks. Es gilt:
$\left|\overline{AB}\right|\ =\ s_N$
(eine Seitenlänge des N-Ecks)
Bei der Verdoppelung der Seitenzahl des Vielecks wird
aus der Strecke \overline{AB} mit der Länge s_N der Streckenzug
\overline{AHB} mit der Gesamtlänge 2*s_{2N} , und man kann leicht
erkennen, dass
$\ s_N\ =\ 2*s_{2N}*cos(\alpha)}$ (siehe Figur)
und damit:
$\left|\overline{AHB}\right|\ =\ \frac{\left|\overline{AB}\right|}{cos(\alpha)}}$
Analog gilt dann beim nächsten Schritt:
$\ s_{2N}\ =\ 2*s_{4N}*cos(\epsilon)}$
und damit:
$\left|\overline{APHQB}\right|\ =\ \frac{\left|\overline{AHB}\right|}{cos(\epsilon)}}$
Was wir hier nur für eine einzige Seite des N-Ecks
betrachtet haben, gilt auch dann, wenn wir den
gesamten (oder den halben) Umfang des Vielecks
betrachten: Für jede Verdoppelung der Eckenzahl
des dem Kreis eingeschriebenen regelmäßigen
Vielecks muss man den Umfang durch den Cosinus
des Winkels dividieren, welcher von einer Seite des
N-Ecks und einer Seite des 2N-Ecks eingeschlossen
wird, welche sich an einer Ecke des N-Ecks treffen.
Nun bleibt noch die Frage, wie man diese fortlaufenden
Winkel erhält. Das Rezept ist ganz einfach: bei jeder
Verdoppelung von N wird der Winkel halbiert. Dies
könnte man beispielsweise aus dem Winkelsummensatz
herleiten oder anhand der obigen Figur mit dem
Peripheriewinkelsatz. Da ist $\alpha\ =\ \angle HAB\ =\ \angle ABH$
der Peripheriewinkel im Kreis mit dem gegebenen Radius
zu jeder beliebigen Sehne der Länge s_{2N} , also etwa
zur Sehne \overline{AH} oder zur Sehne \overline{HB}.
Der nächste Winkel, hier mit \epsilon bezeichnet, ist in der
Zeichnung mehrfach markiert. Man sieht ein, dass alle
diese Winkel tatsächlich gleich groß sein müssen, wenn
man sich klar macht, dass sie allesamt Peripheriewinkel
zu einer Sehne der Länge $\ s_{2N}\ =\ \left|\overline{AP}\right|\ =\ \left|\overline{PH}\right|\ =\ \left|\overline{HQ}\right|\ =\ \left|\overline{QB}\right|$ sind.
Wegen $\alpha\ =\ \angle HAB\ =\ \angle ABH =\ \angle ABP +\angle PBH\ =\ \epsilon+\epsilon\ =\ 2\,\epsilon $
folgt nun, dass $\epsilon\ =\ \frac{\alpha}{2}$ bzw. in der für die Rekursion
zu verwendenden Notation:
$\alpha_{n+1}\ =\ \frac{\alpha_n}{2}$
Die zur rekursiven Berechnung der Cosinuswerte benötigte
Halbwinkelformel lässt sich leicht aus der Doppelwinkel-
formel der Cosinusfunktion herleiten bzw. aus dem
Additionstheorem.
So - es ist Mitternacht und ich habe Schlaf nötig, aber
wohl auch verdient ...
Alles Wesentliche ist gesagt.
LG , Al-Chwarizmi
Dateianhänge: Anhang Nr. 1 (Typ: png) [nicht öffentlich]
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 01:33 Sa 07.12.2013 | Autor: | sinnlos123 |
Schade, dass es keine Bedankfunktion gibt!
Vielen Dank Al-Chwarizmi fuer deine sehr ausfuehrliche Erklaerung, etwaige Fragen editier ich hier rein, allerdings glaube ich schon es verstanden zu haben, lese nur noch die Fachbegriffe nach.
Schnapp dir deine verdiente Muetze Schlaf :)
|
|
|
|