Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Основные функции > логарифм - экспонента - степень > возведение в степень

возведение в степень

операция возведения в степень (^, .^)

Синтаксис

t = A ^ b
t = A ** b
t = A .^ b

Аргументы

A, t
скаляр, вектор или матрица кодированных целых чисел, десятичных или комплексных чисел, полиномов или дробно-рациональных выражений.

b
скаляр, вектор или матрица кодированных целых чисел, десятичных или комплексных чисел.

Если операндом являются кодированные целые числа, то другие числа могут быть только кодированными целыми числами или вещественными числами.

Если A является полиномами или дробно-рациональными выражениями, то b может быть только одиночным десятичным (положительным или отрицательным) числом.

Описание

.^ поэлементное возведение в степень

Если A или b скаляр, то он сначала реплицируется до размера другого с помощью A*ones(b) или b*ones(A). В противном случае A и b должны быть одинакового размера.

Затем для каждого элемента с индексом i вычисляется t(i) = A(i)^b(i).

^ матричное возведение в степень

Оператор ^ эквивалентен поэлементному возведению в степень .^ в следующих случаях:

  • A скаляр, а b вектор;
  • A вектор, а b скаляр.
В противном случае A либо b должен быть скаляром, а другой должен быть квадратной матрицей:
  • если A скаляр, а b квадратная матрица, то A^b является матрицей expm(log(A) * b);

  • если A квадратная матрица, а b скаляр, то A^b является матрицей A в степени b.

Примечания
  1. Для квадратных матриц A, A^p вычисляется через последовательное перемножение матриц, если p является положительным числом, а иначе - через диагонализацию (см. примечания №2 и №3 ниже).

  2. Если A квадратная и эрмитова матрица, а p нецелый скаляр, то A^p вычисляется как:

    A^p = u*diag(diag(s).^p)*u' (для вещественной матрицы A во внимание принимается только вещественная часть ответа).

    u и s определяются как [u,s] = schur(A) .

  3. Если A не является эрмитовой матрицей, а p является нецелым скаляром, то A^p вычисляется как:

    A^p = v*diag(diag(d).^p)*inv(v) (для вещественной матрицы A во внимание принимается только вещественная часть ответа).

    d и v определяются как [d,v] = bdiag(A+0*%i).

  4. Если A и p вещественные или комплексные числа, то A^p является главным значением, определяемым как

    A^p = exp(p*log(A))

    (или A^p = exp(p*(log(abs(A))+ %i*atan(imag(A)/real(A)))) ).

  5. Если A является квадратной матрице, а p вещественным или комплексным числом, то A.^p является главным значением вычисленным как:

    A.^p = exp(p*log(A)) (то же самое, что и в случае 4 выше).

  6. операторы ** и ^ являются синонимами.

Возведение в степень в Scilab является оператором с ассоциативностью справа, в отличие от Matlab® и Octave. Например 2^3^4 в Scilab равно 2^(3^4), а в Matlab® и Octave равно (2^3)^4.

Примеры

A = [1 2 ; 3 4];
A ^ 2.5,
A .^ 2.5
(1:10) ^ 2
(1:10) .^ 2

A ^ %i
A .^ %i
exp(%i*log(A))

s = poly(0,'s')
s ^ (1:10)

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

  • exp — поэлементная показательная функция
  • expm — квадратная матрица экспоненциальной функции
  • крышечка — (^) возведение в степень

История

ВерсияОписание
6.0.0 С десятичным или комплексным числами scalar ^ squareMat теперь даёт expm(log(scalar)*squareMat) вместо scalar .^ squareMat.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Jul 20 11:21:23 CEST 2021