exponenta event banner

Полномочия и экспоненты

В этом разделе показано, как вычислять мощности матрицы и экспоненты с помощью различных методов.

Положительные целочисленные степени

Если A является квадратной матрицей и p является положительным целым числом, то A^p эффективно умножает A сама по себе p-1 времена. Например:

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

     3     6    10
     6    14    25
    10    25    46

Обратные и дробные мощности

Если A является квадратным и несингулярным, то A^(-p) эффективно умножает inv(A) сама по себе p-1 времена.

A^(-3)
ans = 3×3

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

MATLAB ® вычисляетinv(A) и A^(-1) с тем же алгоритмом, так что результаты точно такие же. Оба inv(A) и A^(-1) создавать предупреждения, если матрица близка к сингулярной.

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

Дробные полномочия, такие как A^(2/3), также допускаются. Результаты с использованием дробных степеней зависят от распределения собственных значений матрицы.

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

    0.8901    0.5882    0.3684
    0.5882    1.2035    1.3799
    0.3684    1.3799    3.1167

Поэлементные мощности

.^ оператор вычисляет поэлементные мощности. Например, для возведения каждого элемента в квадрат в матрице можно использовать A.^2.

A.^2
ans = 3×3

     1     1     1
     1     4     9
     1     9    36

Квадратные корни

sqrt функция является удобным способом вычисления квадратного корня каждого элемента в матрице. Альтернативный способ сделать это - 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

Для других корней можно использовать nthroot. Например, рассчитать 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

Эти элементные корни отличаются от квадратного корня матрицы, который вычисляет вторую матрицу B так, что A = BB. Функцияsqrtm(A) вычисляет A^(1/2) по более точному алгоритму. m в sqrtm отличает эту функцию от sqrt(A), который, как A.^(1/2), выполняет свою работу поэлементно.

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

Скалярные базы

Помимо возведения матрицы в степень, можно также поднять скаляр до степени матрицы.

2^A
ans = 3×3

   10.4630   21.6602   38.5862
   21.6602   53.2807   94.6010
   38.5862   94.6010  173.7734

При возведении скаляра в степень матрицы MATLAB использует собственные значения и собственные векторы матрицы для вычисления мощности матрицы. Если [V,D] = eig(A), то 2A = V 2D V-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

Матричные экспоненты

Экспоненциальность матрицы является частным случаем возведения скаляра в степень матрицы. Основанием для экспоненциальной матрицы является число Эйлера 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

expm функция является более удобным способом вычисления экспонентов матрицы.

expm(A)
ans = 3×3
103 ×

    0.1008    0.2407    0.4368
    0.2407    0.5867    1.0654
    0.4368    1.0654    1.9418

Экспоненциальная матрица может быть вычислена несколькими способами. Дополнительные сведения см. в разделе Матричные экспоненты.

Работа с малыми числами

Функции MATLAB log1p и expm1 рассчитать log (1 + x) и ex-1 точно для очень малых значений x. Например, если вы пытаетесь добавить число меньше точности машины к 1, то результат округляется до 1.

log(1+eps/2)
ans = 0

Однако log1p способен вернуть более точный ответ.

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

Аналогично для ex-1, если x очень мал, то он округляется до нуля.

exp(eps/2)-1
ans = 0

Опять же, expm1 способен вернуть более точный ответ.

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

См. также

| | | | | | |

Связанные темы