Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Potencias y exponenciales

En este tema se muestra cómo calcular potencias y exponenciales de matrices con varios métodos.

Potencias enteras positivas

Si A es una matriz cuadrada y p es un entero positivo, A^p efectivamente multiplica a A por sí misma p-1 veces. Por ejemplo:

A = [1 1 1
     1 2 3
     1 3 6];
A^2
ans = 3×3

     3     6    10
     6    14    25
    10    25    46

Exponentes inversos y racionales

Si A es cuadrada y no singular, A^(-p) efectivamente multiplica a inv(A) por sí misma p-1 veces.

A^(-3)
ans = 3×3

  145.0000 -207.0000   81.0000
 -207.0000  298.0000 -117.0000
   81.0000 -117.0000   46.0000

MATLAB® calcula inv(A) y A^(-1) con el mismo algoritmo, por lo que los resultados son exactamente los mismos. Tanto inv(A) como A^(-1) generan advertencias si la matriz está cerca de ser singular.

isequal(inv(A),A^(-1))
ans = logical
   1

También se permiten los exponentes racionales, como A^(2/3). Los resultados con exponentes racionales dependen de la distribución de los valores propios de la matriz.

A^(2/3)
ans = 3×3

    0.8901    0.5882    0.3684
    0.5882    1.2035    1.3799
    0.3684    1.3799    3.1167

Potencias elemento por elemento

El operador .^ calcula potencias elemento por elemento. Por ejemplo, para calcular la raíz cuadrada de cada elemento en una matriz, puede utilizar A.^2.

A.^2
ans = 3×3

     1     1     1
     1     4     9
     1     9    36

Raíces cuadradas

La función sqrt es una manera cómoda de calcular la raíz cuadrada de cada elemento en una matriz. Una alternativa para ello es A.^(1/2).

sqrt(A)
ans = 3×3

    1.0000    1.0000    1.0000
    1.0000    1.4142    1.7321
    1.0000    1.7321    2.4495

Para calcular otras raíces cuadradas, puede utilizar nthroot. Por ejemplo, para calcular A.^(1/3).

nthroot(A,3)
ans = 3×3

    1.0000    1.0000    1.0000
    1.0000    1.2599    1.4422
    1.0000    1.4422    1.8171

Estas raíces de elemento por elemento difieren de la raíz cuadrada de la matriz, que calcula una segunda matriz B de manera que A=BB. La función sqrtm(A) calcula A^(1/2) mediante un algoritmo más exacto. La m en sqrtm distingue esta función de sqrt(A), la cual, al igual que A.^(1/2), opera elemento por elemento.

B = sqrtm(A)
B = 3×3

    0.8775    0.4387    0.1937
    0.4387    1.0099    0.8874
    0.1937    0.8874    2.2749

B^2
ans = 3×3

    1.0000    1.0000    1.0000
    1.0000    2.0000    3.0000
    1.0000    3.0000    6.0000

Bases de escalares

Además de elevar una matriz a una potencia, también puede elevar un escalar a la potencia de una matriz.

2^A
ans = 3×3

   10.4630   21.6602   38.5862
   21.6602   53.2807   94.6010
   38.5862   94.6010  173.7734

Al elevar un escalar a la potencia de una matriz, MATLAB utiliza los valores y vectores propios de la matriz para calcular la potencia de la misma. Si [V,D] = eig(A), entonces 2A=V2DV-1.

[V,D] = eig(A);
V*2^D*V^(-1)
ans = 3×3

   10.4630   21.6602   38.5862
   21.6602   53.2807   94.6010
   38.5862   94.6010  173.7734

Exponenciales de una matriz

El exponencial de una matriz es un caso especial de elevación de un escalar a la potencia de una matriz. La base para el exponencial de una matriz es el número de Euler e = exp(1).

e = exp(1);
e^A
ans = 3×3
103 ×

    0.1008    0.2407    0.4368
    0.2407    0.5867    1.0654
    0.4368    1.0654    1.9418

La función expm es una manera más cómoda de calcular los exponenciales de una matriz.

expm(A)
ans = 3×3
103 ×

    0.1008    0.2407    0.4368
    0.2407    0.5867    1.0654
    0.4368    1.0654    1.9418

El exponencial de una matriz se puede calcular de varias maneras. Para obtener más información, consulte Exponenciales de una matriz.

Manejo de números pequeños

Las funciones de MATLAB log1p y expm1 calculan log(1+x) y ex-1 con precisión para los valores muy pequeños de x. Por ejemplo, si intenta añadir un número más pequeño que la precisión de la máquina en 1, el resultado se redondea a 1.

log(1+eps/2)
ans = 0

Sin embargo, log1p puede devolver una respuesta más precisa.

log1p(eps/2)
ans = 1.1102e-16

Al igual que ex-1, si x es muy pequeño, se redondea a cero.

exp(eps/2)-1
ans = 0

De nuevo, expm1 puede devolver una respuesta más precisa.

expm1(eps/2)
ans = 1.1102e-16

Consulte también

| | | | | | |

Temas relacionados