Frage von bishare, 34

Doppelsummanden berechnen?

2        k
Σ        Σ      cos ( (pi / 2) (k + l))
k=0      l=0

Wie berechnet man solche Doppelsummanden? Wenn ich für k=0 bei dem ersten und bei dem zweiten Σ alles berechnet habe und dann wieder beim ersten das k um 1 ( k = 1) erhöhe, muss ich dann die Rechnung, die ich bei k = 0 gemacht habe, noch mal dazuaddieren ( wird also das l wieder zu 0?)

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von hypergerd, Community-Experte für Mathematik, 8

In der Aufgabe steckt mehr drin als man denkt!

Die innere Summe:

sum cos(Pi*(l+k)/2),l=0...k 

= ((-1)^k+sqrt(2)*sin(Pi/4-(k*Pi)/2))/2
 

damit lässt sich alles zu einer Summe schreiben:

sum ((-1)^k+sqrt(2)*sin(Pi/4-(k*Pi)/2))/2,k=0...n

 
(also viel allgemeiner als Dein Sonderfall mit n=2)

und das ist identisch zur expliziten Funktion
=(-1)^n/4+cos((Pi*n)/2)/2+1/4
=((-1)^n+2*cos((Pi*n)/2)+1)/4 

mit (-1)^n=pow(-1,n)=cos(Pi*n) für ganze Zahlen

 

=cos(Pi*n/4)²*cos(Pi*n/2)

per Universal Diagramm pow(cos(PI*x/4),2)*cos(PI*x/2)
siehe Bild 1

Diese periodische Funktion läuft bei allen Vielfachen von 4 durch 1,
was bei ganzen Zahlen viel genauer und schneller per Modulo funktioniert:
(x%4<1)?1:0; 

Man kann Deine Aufgabe n=2 -> nicht Vielfache von 4 -> also 0 dann im Kopf oder mit dieser schnellen Modulofunktion bis n = zig Mrd. leicht berechnen.

Genau diese Zahlenfolge sind auch die Ziffern von 10000/9999 in Variable a.

Alle 4 Algorithmen zeigt der Iterationsrechner im Beispiel 133 online:
http://www.gerdlamprecht.de/Roemisch_JAVA.htm#ZZZZZ0133

Kommentar von bishare ,

Ich glaube, ich brauche den Freitag noch, um diese Antwort ansatzweise zu verstehen xDD Vielen Dank für die Hilfe :) !!

Kommentar von hypergerd ,

Interessant ist die Verbesserung der Rechengeschwindigkeit:

während die Berechnungszeit der Doppelsumme von cos-Funktionen (die ja auch nur unendliche Summen sind) enorm ansteigt (etwa x^2.0165 also schon mehrere Sekunden bei i > 9000  )

liegt sie bei der Modulo Funktion im kaum messbaren Millisekundenbereich und steigt nur linear an. (also ist Modulo schon bei 9000 "äußeren Summanden" 1000 mal schneller)

übrigens: (i%4<1)?1:0

ist identisch zu pow(0,i%4) = 0^(i mod 4)

Und noch zur Ausgangsfrage: ja, jede Summe startet immer wieder von vorn analog zu 2 For Schleifen.

Expertenantwort
von Willy1729, Community-Experte für Mathe & Mathematik, 17

Hallo,

das erste Summenzeichen bezieht sich auf die höchste Zahl, die im zweiten für k eingesetzt wird.

Du rechnest also die Summen für 0 bis 0, 0 bis 1 und 0 bis 2 des zweiten Summenzeichens zusammen.

Herzliche Grüße,

Willy

Kommentar von bishare ,

Vielen Dank :)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten