MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

MATLAB\MATLAB

В.Г.Потемкин "Справочник по MATLAB"
Линейная алгебра

  В оглавление книги \ К следующему разделу \ К предыдущему разделу

Вычисление функций от матриц

EXPM, EXPM1, EXPM2, EXPM3
Вычисление матричной экспоненты

Синтаксис:

Y = expm(A) Y = expm2(A)
Y = expm1(A) Y = expm3(A)

Описание:

Функция Y = expm(A) является встроенной функцией интерпретатора системы MATLAB и вычисляет функцию eA от матрицы A.

Функция Y = expm1(A) является M-файлом, который полностью соответствует встроенной функции expm(A). Он вычисляет функцию eA, используя разложение Паде матрицы A [1].

Функция Y = expm2(A) вычисляет функцию eA, используя разложение Тейлора матрицы A [2]. Этот метод имеет меньшую скорость сходимости по сравнению с разложением Паде.

Функция Y = expm3(A) вычисляет функцию eA, используя спектральное разложение матрицы A:

             [R, D] = eig(A);
             Y = R * diag(exp(diag(D))) / R;,

которое, строго говоря, справедливо только для случая различных собственных значений.

Замечание:

Функцию матричной экспоненты expm(A) не следует путать с функцией exp(A), которая вычисляет экспоненту от каждого элемента массива A.

Пример:

Рассмотрим тестовую матрицу порядка n = 5 с дефектом 1, имеющую 5 кратных собственных значений, равных нулю [3].

image7101.gif (2710 bytes)

image7102.gif (2677 bytes)

image7103.gif (2855 bytes)

norm(Y1 - Y) norm(Y1 - Y2) norm(Y1 - Y3)
0 1.0560e-013 0.0065

Как следует из анализа полученных данных, функции expm(A) и expm1(A) дают совпадающие результаты, функция expm2(A) имеет погрешность в пределах ошибки округления, однако функция expm3(A) имеет ошибки в третьем знаке, что является следствием того, что исходная система меет кратные собственные значения.

Используя пакет программ JORD [4], можно выявить точную структуру формы Жордана матрицы A.

R = J =
0.2342 0.2342 0.0679 -0.0102 -0.0050
0.2342 0.1656 0.0093 -0.0210 0.0000
0.2342 0.0000 -0.0492 0.0000 0.0099
0.2342 -0.1656 0.0093 0.0210 0.0000
0.2342 -0.2342 0.0679 0.0102 -0.0050
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
0 0 0 0 0

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

Аналитическая функция f(J), где J - клетка Жордана, соответствующая собственному значению l, может быть вычислена следующим образом [4]:

          f(J) = image711.gif (1219 bytes).

В рассматриваемом случае матрица eJ равна

           EJ =

1.0000 1.0000 0.5000 0.1667 0.0417
0 1.0000 1.0000 0.5000 0.1667
0 0 1.0000 1.0000 0.5000
0 0 0 1.0000 1.0000
0 0 0 0 1.0000

а матрица Y0 = eA = R * eJ * R-1 может быть вычислена так:

          Y0 = R * EJ / R.

Вычисленная матрица Y0 имеет вид

          Y0 =

21.0000 -32.4853 21.0000 -15.5147 7.0000
11.1569 -15.7782 9.2426 -6.5355 2.9142
1.0000 0.0000 0.0000 0.0000 0.0000
-0.1569 0.5355 0.7574 -0.2218 0.0858
0.0000 0.0000 1.0000 0.0000 0.0000

Cчитая данное решение точным, оценим нормы невязок для предыдущих решений.

norm(Y0 - Y) norm(Y0 - Y1) norm(Y0 - Y2) norm(Y0 - Y3)
1.2635e-013 1.2635e-013 6.3827e-014 0.0065

Из анализа следует, что функции expm1(A) и expm2(A) дают результаты с погрешностью в пределах ошибки округления, а функция expm3(A) имеет ту же погрешность.

Сопутствующие функции: EXP, FUNM, LOGM, SQRTM.

Ссылки:

  1. Golub G. H., Van Loan. Matrix Computation. Oxford. John Hopkins University Press, 1983.
  2. Moler C. B., Van Loan. Nineteen Dubious Ways to Compute the Exponential of a Matrix//SIAM Review, 1979. Vol. 20. P. 801-836.
  3. Higham N. J. The Test Matrix Toolbox for MATLAB (version 3.0)//Numerical Analysis Report. Manchester, 1995. Vol. 276.
  4. Потемкин В. Г. Пакет программ JORD. М.: МИФИ, 1995.

  В оглавление книги \ К следующему разделу \ К предыдущему разделу

 


Поиск по сайту:

Система Orphus

Яндекс.Метрика