Ich lerne jetzt R und habe einige Schwierigkeiten beim Berechnen der Sigma-Notation. Ich weiß, wie man die grundlegenden Dinge wie folgt macht:

summ <- 10:100
sum(summ^3 + 4 * summ^2)

Ich weiß jedoch nicht, wie ich dieselben Operationen mit Werten ausführen soll, die sich von i unterscheiden (nicht nur i (z. B. x und y)) oder Operationen mit zwei Sigma-Notationen hintereinander.

The A example

Am Anfang dachte ich, dass es nur erforderlich ist, dasselbe wie in der einfachen Sigma-Notation mit nur i zu tun

summ <- 1:10
sum((x^summ) / (y^summ))

Es zeigt jedoch den Fehler, dass es sich nicht um ein numerisches Argument handelt.

The B example

Vielen Dank im Voraus für deine Hilfe.

0
Nikita 7 Okt. 2020 im 10:05

2 Antworten

Beste Antwort

Für Ihre zweite Formel können Sie eine Funktion wie unten definieren

f <- function(x,y,n) sum((x/y)**(1:n))

Für Ihre letzte Formel können Sie den Ausdruck als Produkt aus zwei Begriffen umschreiben (Sie benötigen als ersten Schritt eine mathematische Transformation , wenn Sie die Prozedur vereinfachen möchten), da i und { {X1}} sind unabhängig

> sum((1:20)**2)*sum(1/(5+(1:10)**3))
[1] 886.0118

Andernfalls könnte eine einfache Übersetzung aus der Formel verschachteltes sapply verwenden.

> sum(sapply(1:20,function(i) sapply(1:10, function(j) i**2/(5+j**3))))
[1] 886.0118
0
ThomasIsCoding 7 Okt. 2020 im 08:17

Das ist im Grunde die Antwort auf die erste Frage mit undefinierten Variablen x und y:

x <- readline(prompt = "Enter x: ")
y <- readline(prompt = "Enter y: ")

x <- as.integer(x)
y <- as.integer(y)

i = 1:10
answer <- sum((x^i) / (y^i))

answer
0
Nikita 7 Okt. 2020 im 08:40