- Базовым решением R является определение вашей пользовательской функции
vander
, где используются sapply
+ cumprod
vander <- function(alpha,n) t(sapply(alpha, function(k) c(1,cumprod(rep(k,n-1)))))
vm1 <- vander(alpha,n)
- Другая опция из пакета
matrixcalc
, в котором vandermonde.matrix
может сделать это
vm2 <- matrixcalc::vandermonde.matrix(alpha,n)
Пример
Дано alpha
и n
, как показано ниже
alpha <- 1:4
n <- 5
тогда вы получите
> vm1
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 1 2 4 8 16
[3,] 1 3 9 27 81
[4,] 1 4 16 64 256
> vm2
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 1 2 4 8 16
[3,] 1 3 9 27 81
[4,] 1 4 16 64 256