Elevar una array a una potencia fraccionaria en R

Las arrays se pueden elevar a potencias integrales y no integrales en el lenguaje de programación R. El cálculo de la potencia de una array implica la multiplicación simultánea de la array tantas veces como se especifique el número entero de potencia. Sin embargo, en el caso de potencias fraccionarias, necesitamos usar las funciones R integradas para simular esta operación. 

Método 1: usar el paquete expm en R

El paquete expm se puede utilizar para realizar varios tipos de cálculos matriciales, como logaritmo, exponencial y otros. Esta función calcula la exponencial de una array cuadrada, que no es diagonalizable. El paquete expm incluye los métodos logm y sqrtm, respectivamente. Sin embargo, no se puede utilizar para trabajar con potencias fraccionarias negativas. El paquete expm se puede instalar en el directorio R usando el siguiente comando: 

install.packages("expm)

El paquete se incluye en el script y luego se puede usar el método expm que tiene la siguiente sintaxis: 

expm(x), where x is the matrix

Código:

R

require(expm)
library("expm")
  
mat <- matrix(c(1, 1, 1, 1), 2, 2)
print ("Original Matrix")
print (mat)
modified_matrix <- 1.1*logm(mat)
  
# computing power matrix 
powmat <- expm(modified_matrix)
  
# printing the power matrix 
print ("Power Matrix")
print (powmat)

Producción

[1] "Original Matrix"
    [,1]   [,2]    
[1,]   1      1
[2,]   1      1
[1] "Power Matrix"
         [,1]      [,2]    
[1,] 1.071773  1.071773
[2,] 1.071773  1.071773

Método 2: Usando el paquete powerplus en R

Las arrays se pueden elevar a potencias no enteras positivas o negativas usando el paquete powerplus en R. Se usa para elevar una array válida a cualquier potencia (incluso se permiten números complejos). Las arrays que se pueden utilizar son arrays cuadradas o arrays diagonalizables con valores propios positivos. El paquete powerplus se puede instalar en el directorio R usando el siguiente comando: 

install.packages("powerplus")

Luego, el paquete se puede incluir en el script y luego se puede usar el método Matpow(), que se puede usar para el cálculo de potencia exponencial de una array cuadrada.

Sintaxis: Matpow(M, power_number)

Argumentos: 

  • M – Una array cuadrada diagnosticable
  • power_number: el factor de potencia no integral de la array

Devuelve:   Una array elevada al factor power_number. 

Ejemplo 1: Los siguientes ejemplos ilustran el método Matpow() en R.

R

# requiring the necessary package
require("powerplus")
  
# declaring a non diagonizable matrix
mat <- matrix(c(2, 0, 1, 1), ncol = 2) 
print ("Original Matrix")
print (mat)
  
# raising the matrix to a fractional 
# power 0.5
print ("Power Matrix")
Matpow(mat, 0.5)
[1] "Original Matrix" 
      [,1] [,2] 
[1,]    1    1 
[2,]    0    1 
[1] "Power Matrix" 
      [,1] [,2] 
[1,]    1  0.5
[2,]    0  1.0

Ejemplo 2: Potencias integrales negativas.

Los métodos Matpow() también se pueden usar para trabajar con potencias integrales negativas. La salida es la array negativa en caso de que el resultado sea impar, de lo contrario, par. 

R

# requiring the necessary package
require("powerplus")
  
# declaring a non diagonizable matrix
mat <- matrix(c(2, 0, 1, 1), ncol = 2) 
print ("Original Matrix")
print (mat)
  
# raising the matrix to a fractional power 0.5
print ("Power Matrix")
Matpow(mat, -2.1)

Producción

[1] "Original Matrix" 
     [,1]     [,2]
 [1,]    2    1
 [2,]    0    1 
[1] "Power Matrix" 
          [,1]       [,2] 
[1,] 0.2332582 -0.7667418 
[2,] 0.0000000  1.0000000

Publicación traducida automáticamente

Artículo escrito por codersgram9 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *