2017-04-26 8 views
-2

So habe ich dieses Beispiel:Berechnung Summationen in R ohne Schleifen

Σ i = 1 √   i^(3) + log (5)  

Was ich brauche mit Codierung in R.

Meine Codierung für dieses Problem zu lösen ist:

i<-seq(from=1,to=32) 
sqrt((i)^3+log(5)) 
sum(sqrt((i)^3+log(5))) 

Aber ich bin mir nicht sicher, ob es richtig ist. Irgendwelche Hinweise?

+0

sieht gut aus (wenn die Quadratwurzel auf den vollständigen Ausdruck und nicht nur auf den i^3 angewendet werden soll) – user2957945

+0

hast du es ausgeführt? Hast du das gewünschte Ergebnis? –

+0

@ user2957945 ja die Quadratwurzel gilt für die ganze Sache. Danke für Ihre Rückmeldung. Ja tut es. –

Antwort

5

Sie können solche Dinge überprüfen, indem Sie kleinere Beispiele ausführen, von denen Sie sich selbst überzeugen können, indem Sie die Berechnung manuell durchführen. So ...

Ihr Code:

> i<-seq(from=1,to=32) 
> sum(sqrt((i)^3+log(5))) 
[1] 2409.853 

, die eine Summe von 32 Dinge ist: sqrt(1^3 + log(5) + sqrt(2^3 + log(5)) + usw. Kaum zu geben, dass alle aus. Also versuchen wir es mit 1 Sache:

> i<-seq(from=1,to=1) 
> sum(sqrt((i)^3+log(5))) 
[1] 1.615375 

Jetzt können wir das überprüfen, indem Sie:

> sqrt(1^3+log(5)) 
[1] 1.615375 

Okay, sieht gut aus. Lass uns zwei Dinge ausprobieren. Ihr Code:

> i<-seq(from=1,to=2) 
> sum(sqrt((i)^3+log(5))) 
[1] 4.715285 

Verglichen mit dem langen Weg rund:

> sqrt(1^3+log(5)) + sqrt(2^3+log(5)) 
[1] 4.715285 

Yay! Jetzt überprüfe es auf drei Punkte und das sollte jeden überzeugen. Es ist jedoch kein mathematischer Beweis der Korrektheit. Eine komplexere Funktion könnte etwas unerwartetes für einige Werte tun ...