0 Daumen
369 Aufrufe

Frage:

Man soll eine For Loop zu Berechnung von einer Gleichung ( sieht Anhang) für ein gegebenes N ∈ N programmieren:

\( \sum \limits_{i=1}^{N} i^{12}-i^{11}-i^{10} \)

Wieso muss man hier eig in der for Schleife s <– <- s + i ** 12 - i ** 11 - i ** 10

s+ machen?

Code:

s <- 0
N <- 10 # Beispielwert, muss nicht angegeben werden for(i in 1:N) {
s <- s + i ** 12 - i ** 11 - i ** 10 }
s
## [1] 1.21015e+12
Avatar von

1 Antwort

+1 Daumen
 
Beste Antwort

zu Berechnung von einer Gleichung

Du hast ist hier keine Gleichung, sondern eine Summe, nämlich \(\sum \limits_{i=1}^{N} i^{12}-i^{11}-i^{10} \).

s+ machen ?

Deine deklarierte Variable s ist hier eine Summe. Diese Summe willst du nach der Vorschrift \(\sum \limits_{i=1}^{N} \underbrace{i^{12}-i^{11}-i^{10}}_{=:a_i} \) berechnen.

In jedem i-ten Durchlauf hast du den i-ten Summanden \(i^{12}-i^{11}-i^{10} \), den du auf deine Summe s aufadieren willst. Dieser hat aber noch die Summe aller ersten Summanden, die vor dem i-ten Summanden kommen, also in der Form: \(s=a_1+...+a_{i-1}\). Und dieser Wert ist momentan in s gespeichert. Jetzt willst du aber den i-ten Summanden auch zu s addieren, weshalb du nun s den neuen Wert \(s+a_i\) zuweisen musst, da s sonst unverändert bleibt. Würdest du also s+ weglassen und stattdessen nur

\(s <–  i ** 12 - i ** 11 - i ** 10 \)

schreiben, so würde s in jedem i-ten Durchlauf der for-Schleife, den i-ten Summanden zugewiesen bekommen, was aber nicht der Berechnung der Summe \(\sum \limits_{i=1}^{N} i^{12}-i^{11}-i^{10} \) entspricht.

Avatar von

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

+1 Daumen
1 Antwort
Gefragt 23 Aug 2018 von Gast
0 Daumen
1 Antwort
0 Daumen
2 Antworten
0 Daumen
1 Antwort

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community