funm

Общая матричная функция

Синтаксис

Описание

пример

F = funm(A,f) вычисляет функциональный fA) для квадратной матрицы A. Для получения дополнительной информации смотрите Матричную Функцию.

Примеры

Матричный кубический корень

Найдите матричный B, таким образом, что B3 = A, где A 3х3 единичная матрица.

Решить B3 = A, вычислите кубический корень матричного A использование funm функция. Создайте символьный функциональный f(x) = x^(1/3) и используйте его в качестве второго аргумента для funm. Кубический корень единичной матрицы является самой единичной матрицей.

A = sym(eye(3))

syms f(x)
f(x) = x^(1/3);

B = funm(A,f)
A =
[ 1, 0, 0]
[ 0, 1, 0]
[ 0, 0, 1]
 
B =
[ 1, 0, 0]
[ 0, 1, 0]
[ 0, 0, 1]

Замените один из 0 элементы матричного A с 1 и вычислите матричный кубический корень снова.

A(1,2) = 1
B = funm(A,f)
A =
[ 1, 1, 0]
[ 0, 1, 0]
[ 0, 0, 1]

B =
[ 1, 1/3, 0]
[ 0,   1, 0]
[ 0,   0, 1]

Теперь вычислите кубический корень верхней треугольной матрицы.

A(1:2,2:3) = 1
B = funm(A,f)
A =
[ 1, 1, 1]
[ 0, 1, 1]
[ 0, 0, 1]

B =
[ 1, 1/3, 2/9]
[ 0,   1, 1/3]
[ 0,   0,   1]

Проверьте тот B3 = A.

B^3
ans =
[ 1, 1, 1]
[ 0, 1, 1]
[ 0, 0, 1]

Матрица функция Ламберта В

Найдите матрицу функцией Ламберта В.

Во-первых, создайте 3х3 матричный A использование арифметики переменной точности с пятью точностью цифры. В этом примере, с помощью арифметики переменной точности вместо точных символьных чисел позволяет вам ускорить расчеты и уменьшить использование памяти. Используя только пять цифр помогает результату соответствовать на экране.

savedefault = digits(5);
A = vpa(magic(3))
A =
[ 8.0, 1.0, 6.0]
[ 3.0, 5.0, 7.0]
[ 4.0, 9.0, 2.0]

Создайте символьный функциональный f(x) = lambertw(x).

syms f(x)
f(x) = lambertw(x);

Найти функцию Ламберта В (W0 перейдите) в матричном смысле, callfunm использование f(x) в качестве его второго аргумента.

W0 = funm(A,f)
W0 =
[  1.5335 + 0.053465i, 0.11432 + 0.47579i, 0.36208 - 0.52925i]
[ 0.21343 + 0.073771i,  1.3849 + 0.65649i, 0.41164 - 0.73026i]
[  0.26298 - 0.12724i,  0.51074 - 1.1323i,   1.2362 + 1.2595i]

Проверьте, что этим результатом является решение матричного уравнения A = W0·eW0 в заданной точности.

W0*expm(W0)
ans =
[               8.0, 1.0 - 5.6843e-13i, 6.0 + 1.1369e-13i]
[ 3.0 - 2.2737e-13i, 5.0 - 2.8422e-14i, 7.0 - 4.1211e-13i]
[ 4.0 - 2.2737e-13i, 9.0 - 9.9476e-14i, 2.0 + 1.4779e-12i]

Теперь создайте символьный функциональный f(x) представление ветви W-1 из функции Ламберта В.

f(x) = lambertw(-1,x);

Найдите W-1 перейдите для матричного A.

Wm1 = funm(A,f)
Wm1 =
[   0.40925 - 4.7154i, 0.54204 + 0.5947i, 0.13764 - 0.80906i]
[ 0.38028 + 0.033194i, 0.65189 - 3.8732i, 0.056763 - 1.0898i]
[   0.2994 - 0.24756i, - 0.105 - 1.6513i,  0.89453 - 3.0309i]

Проверьте, что этим результатом является решение матричного уравнения A = Wm1·eWm1 в заданной точности.

Wm1*expm(Wm1)
ans =
[ 8.0 - 8.3844e-13i,  1.0 - 3.979e-13i, 6.0 - 9.0949e-13i]
[ 3.0 - 9.6634e-13i,  5.0 + 1.684e-12i, 7.0 + 4.5475e-13i]
[ 4.0 - 1.3642e-12i, 9.0 + 1.6698e-12i, 2.0 + 1.7053e-13i]

Матричный экспоненциал, логарифм и квадратный корень

Можно использовать funm с соответствующими вторыми аргументами, чтобы найти матричный экспоненциал, логарифм и квадратный корень. Однако более эффективный подход должен использовать функции expmlogm, и sqrtm для этой задачи.

Создайте эту квадратную матрицу и найдите ее экспоненциал, логарифм и квадратный корень.

syms x
A = [1 -1; 0 x]
expA = expm(A)
logA = logm(A)
sqrtA = sqrtm(A)
A =
[ 1, -1]
[ 0,  x]
 
expA =
[ exp(1), (exp(1) - exp(x))/(x - 1)]
[      0,                    exp(x)]
 
logA =
[ 0, -log(x)/(x - 1)]
[ 0,          log(x)]
 
sqrtA =
[ 1, 1/(x - 1) - x^(1/2)/(x - 1)]
[ 0,                     x^(1/2)]

Найдите матричный экспоненциал, логарифм и квадратный корень из A использование funm. Используйте символьные выражения exp(x), log(x), и sqrt(x) в качестве второго аргумента funm. Результаты идентичны.

expA = funm(A,exp(x))
logA = funm(A,log(x))
sqrtA = funm(A,sqrt(x))
expA =
[ exp(1), exp(1)/(x - 1) - exp(x)/(x - 1)]
[      0,                          exp(x)]
 
logA =
[ 0, -log(x)/(x - 1)]
[ 0,          log(x)]
 
sqrtA =
[ 1, 1/(x - 1) - x^(1/2)/(x - 1)]
[ 0,                     x^(1/2)]

Входные параметры

свернуть все

Введите матрицу, заданную как квадратная символьная или числовая матрица.

Функция, заданная как символьная функция или выражение.

Выходные аргументы

свернуть все

Получившаяся функция, возвращенная как символьная матрица.

Больше о

свернуть все

Матричная функция

Матричная функция является скалярной функцией, которая сопоставляет одну матрицу с другим.

Предположим, f(x), где x скаляр, имеет расширение Ряда Тейлора. Затем матричный функциональный f(A), где A матрица, задан Рядом Тейлора f(A), со сложением и умножением, выполняемым в матричном смысле.

Если A может быть представлен как A = P·D·P-1, где D диагональная матрица, такая что

D=(d100dn)

затем матричный функциональный f(A) может быть вычислен можно следующим образом:

f(A)=P(f(d1)00f(dn))P1

Недиагонализируемые матрицы могут быть представлены как A = P·J·P-1, где J Жорданова форма матричного A. Затем матричный функциональный f(A) может быть вычислен при помощи следующего определения на каждом Иорданском блоке:

f((λ10000100λ))=(f(λ)0!f(λ)1!f(λ)2!f(n1)(λ)(n1)!0f(λ)2!f(λ)1!00f(λ)0!)

Советы

  • Для совместимости с MATLAB® funm функция, funm принимает следующие аргументы:

    • Указатели на функцию, такие как @exp и @sin, как его второй входной параметр.

    • options входной параметр, такой как funm(A,f,options).

    • Дополнительные входные параметры функционального f, такой как funm(A,f,options,p1,p2,...)

    • exitflag выходной аргумент, такой как [F,exitflag] = funm(A,f). Здесь, exitflag 1 только если funm ошибки вызова функции, например, если это сталкивается с делением на нуль. В противном случае, exitflag 0.

    Для получения дополнительной информации и список всех приемлемых указателей на функцию, смотрите funm MATLAB функция.

  • Если входная матрица A является числовым (не символьный объект) и второй аргумент f указатель на функцию, затем funm вызов вызывает MATLAB funm функция.

Смотрите также

| | | |

Введенный в R2014b

Для просмотра документации необходимо авторизоваться на сайте