Potenze ed esponenti
Questo argomento mostra come calcolare potenze ed esponenti di matrici con diversi metodi.
Potenze di numeri interi positivi
Se A
è una matrice quadrata e p
è un numero positivo intero, allora A^p
moltiplica effettivamente A
per se stesso p-1
volte. Ad esempio:
A = [1 1 1 1 2 3 1 3 6]; A^2
ans = 3×3
3 6 10
6 14 25
10 25 46
Potenze inverse e frazionali
Se A
è una matrice quadrata e non singolare, allora A^(-p)
moltiplica effettivamente inv(A)
per se stesso p-1
volte.
A^(-3)
ans = 3×3
145.0000 -207.0000 81.0000
-207.0000 298.0000 -117.0000
81.0000 -117.0000 46.0000
MATLAB® calcola inv(A)
e A^(-1)
con lo stesso algoritmo, quindi i risultati sono esattamente identici. Sia inv(A)
che A^(-1)
generano avvisi se la matrice è vicina a essere singolare.
isequal(inv(A),A^(-1))
ans = logical
1
È consentito anche l'utilizzo di potenze frazionarie, come A^(2/3)
. I risultati ottenuti con potenze frazionarie dipendono dalla distribuzione degli autovalori della matrice.
A^(2/3)
ans = 3×3
0.8901 0.5882 0.3684
0.5882 1.2035 1.3799
0.3684 1.3799 3.1167
Potenze elemento per elemento
L'operatore .^
calcola le potenze elemento per elemento. Ad esempio, per calcolare il quadrato di ogni elemento in una matrice è possibile utilizzare A.^2
.
A.^2
ans = 3×3
1 1 1
1 4 9
1 9 36
Radici quadrate
La funzione sqrt
rappresenta un metodo utile per calcolare la radice quadrata di ogni elemento in una matrice. Un altro modo per eseguire questo calcolo consiste nell'utilizzare 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
Per altre radici è possibile utilizzare nthroot
. Ad esempio, calcolare 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
Queste radici orientate agli elementi sono diverse dalle radici quadrate di una matrice, che calcolano una seconda matrice come . La funzione sqrtm(A)
calcola A^(1/2)
con un algoritmo più accurato. La m
in sqrtm
distingue questa funzione da sqrt(A)
che, come A.^(1/2)
, utilizza un metodo 'elemento per 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
Basi scalari
Oltre a elevare una matrice a potenza, è anche possibile elevare uno scalare alla potenza di una matrice.
2^A
ans = 3×3
10.4630 21.6602 38.5862
21.6602 53.2807 94.6010
38.5862 94.6010 173.7734
Quando si eleva uno scalare alla potenza di una matrice, MATLAB utilizza gli autovalori e gli autovettori della matrice per calcolare la potenza della matrice stessa. Se [V,D] = eig(A)
, allora .
[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
Esponenziali di matrice
Gli esponenziali di matrici rappresentano un caso speciale per elevare uno scalare a una potenza di matrice. La base di un esponenziale di matrice è il numero di Eulero 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 funzione expm
rappresenta un metodo più utile per calcolare gli esponenziali di matrice.
expm(A)
ans = 3×3
103 ×
0.1008 0.2407 0.4368
0.2407 0.5867 1.0654
0.4368 1.0654 1.9418
Gli esponenziali di matrice possono essere calcolati in diversi modi. Per maggiori informazioni vedere Matrix Exponentials.
Operazioni con numeri piccoli
Le funzioni log1p
e expm1
di MATLAB calcolano accuratamente e per valori molto piccoli di . Ad esempio, se si prova ad aggiungere un numero inferiore rispetto alla precisione di macchina di 1, il risultato viene arrotondato a 1.
log(1+eps/2)
ans = 0
log1p
è tuttavia in grado di restituire una risposta più accurata.
log1p(eps/2)
ans = 1.1102e-16
Come accade per , se è molto piccolo, viene arrotondato a zero.
exp(eps/2)-1
ans = 0
Ancora una volta, expm1
è in grado di restituire una risposta più accurata.
expm1(eps/2)
ans = 1.1102e-16
Vedi anche
exp
| expm
| expm1
| power
| mpower
| sqrt
| sqrtm
| nthroot