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 de manera que . 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 .
[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 y con precisión para los valores muy pequeños de . 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 , si 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
exp
| expm
| expm1
| power
| mpower
| sqrt
| sqrtm
| nthroot