Я новичок в "R", и у меня проблема с изменением переменной. Вот мой код:
recursiveCall <- function(x, N)
{
x[2^(N-1)+1] <- x[2^(N-1)+1] + (x[1] + x[2^N+1] ) / 2
if (N>1) {
recursiveCall(x[1..2^(N-1)+1], N-1)
recursiveCall(x[2^(N-1)+1..N], N-1)
}
#cat("Wmodif = ", x, "\n")
}
PaulLevyBrownianMotion <- function(N)
{
cat("Paul Levy construction for N = ", N, "\n")
W = rnorm(2^N+1, 0, 1)
W[1] <- 0
cat("Wstandard = ", W, "\n")
recursiveCall(W, N)
return (W)
}
Но W не помнит изменения в последующем рекурсивном вызове. Что я должен написать, чтобы вторая строка была похожа на третью в выводе? Также, если у вас есть предложения по поводу моего кода, я буду рад их услышать.
Вот что я пытаюсь сделать с первым ответом:
recursiveCall <- function(x, N)
{
x[2^(N-1)+1] <- x[2^(N-1)+1] + (x[1] + x[2^N+1] ) / 2
if (N>1) {
x[1:2^(N-1)+1] <- [recursiveCall(x[1:2^(N-1)+1], N-1)
x[2^(N-1)+1:2^N] <- recursiveCall(x[2^(N-1)+1:2^N], N-1)
}
#cat("Wmodif = ", x, "\n")
return x
}
PaulLevyBrownianMotion <- function(N)
{
cat("Paul Levy construction for N = ", N, "\n")
W = rnorm(2^N+1, 0, 1)
W[1] <- 0
cat("Wstandard = ", W, "\n")
W <- recursiveCall(W, N)
return (W)
}
Спасибо, Нильс