Я пытаюсь создать функцию, которая даст мне значение матрицы, когда она будет поднята до мощности. Это то, что я сделал до сих пор:Повышение мощности на матрицах
A <- matrix(c(1,2,3,4,0,1,2,3,0,0,1,2,0,0,0,1),nrow=4,ncol=4)
power <- function(A,n){
+ if(n == 0){
+ return(diag(4))
+ }else{
+ return(A%*%A^(n-1))
+ }
+ }
РЕЗУЛЬТАТ:
> power(A,4)
[,1] [,2] [,3] [,4]
[1,] 1 0 0 0
[2,] 10 1 0 0
[3,] 46 10 1 0
[4,] 146 46 10 1
Это дает другое значение от того, что получает мой калькулятор, и я пытаюсь понять, что я делаю неправильно , Любая помощь приветствуется!
Что такое ожидаемый выход – akrun
@akrun Просто используйте '(A% *% A)% *% (A% *% A)' в вашей консоли R ... это действительно не похоже на b правильно. –
'^' работает поэтапно. См. «A = матрица (1: 4, nrow = 2); A^2; A^3'. – Gregor