Броуновская матрица движения и ковариации - PullRequest
4 голосов
/ 10 февраля 2012

Учитывая вектор т.Как заполнить матрицу типа

t[1] t[1] t[1] ... t[1]  
t[1] t[2] t[2] ... t[2]  
t[1] t[2] t[3] ... t[3]  
...  ...  ...  ...  ...  
t[1] t[2] t[3] ... t[n]

, которая соответствует ковариационной матрице для броуновского движения в моменты времени t?

Ответы [ 2 ]

4 голосов
/ 11 февраля 2012

Значение коэффициента (i, j) равно min (i, j):

m <- matrix( NA, nr=5, nc=5 ) # Empty matrix with the right size
m <- pmin( col(m), row(m) )
4 голосов
/ 10 февраля 2012

Вот один из способов.

t <- 11:15
m <- vapply(seq_along(t), function(i) c(t[seq_len(i)], rep(t[i], length(t)-i)), numeric(length(t)))
m
#     [,1] [,2] [,3] [,4] [,5]
#[1,]   11   11   11   11   11
#[2,]   11   12   12   12   12
#[3,]   11   12   13   13   13
#[4,]   11   12   13   14   14
#[5,]   11   12   13   14   15

Вы также можете использовать sapply - немного короче, но немного медленнее (вы не указываете, что возвращает функция):

m <- sapply(seq_along(t), function(i) c(t[seq_len(i)], rep(t[i], length(t)-i)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...