^, _power

Возведите выражение в степень

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Для функции power в MATLAB® смотрите power.

Синтаксис

x ^ y
_power(x, y)

Описание

x^y вычисляет y-th степень x.

x^y эквивалентен вызову функции _power(x, y).

Оператор степени ^ левоассоциативен: x^y^z анализируется как (x^y)^z. Cf. Пример 2.

Если x является полиномом типа DOM_POLY, то y должен быть неотрицательным целым числом, меньшим, чем 231.

_power перегружается для матричных областей (matrix). В частности, x^(-1) возвращает инверсию матричного x.

Используйте powermod, чтобы вычислить модульные степени. Cf. Пример 3.

Математически, вызов sqrt(x) эквивалентен x^(1/2). Обратите внимание, однако, что sqrt пытается упростить результат. Cf. Пример 4.

Если x или y являются элементом области с slot"_power", то этот метод используется, чтобы вычислить x^y. Много областей библиотеки перегружают оператор ^ соответствующим слотом "_power". Полномочия обрабатываются можно следующим образом:

x^y ищется элементы областей библиотеки слева направо. Позвольте z (или x или y) быть первым сроком, который не имеет одного из основных типов, обеспеченных ядром (числа, выражения, и т.д.). Если доменный d = z::dom = domtype(z) имеет slot"_power", это называется в форме d::_power(x, y). Результатом, возвращенным d::_power, является результат x^y.

Смотрите пример 6 и пример 7.

Для конечных множеств X, Y, степень X^Y является набором.

Примеры

Пример 1

Вычисляются некоторые степени:

2^10, I^(-5), 0.3^(1/3), x^(1/2) + y^(-1/2), (x^(-10) + 1)^2

Используйте expand, чтобы “расширить” степени сумм:

(x + y)^2 = expand((x + y)^2)

Обратите внимание на то, что тождества, такие как (x*y)^z = x^z * y^z только содержат в определенных областях комплексной плоскости:

((-1)*(-1))^(1/2) <> (-1)^(1/2) * (-1)^(1/2)

Следовательно, следующая команда expand не расширяет свой аргумент:

expand((x*y)^(1/2))

Пример 2

Оператор степени ^ левоассоциативен:

2^3^4 = (2^3)^4, x^y^z

Пример 3

Модульные степени могут быть вычислены непосредственно с помощью ^ и mod. Однако powermod более эффективен:

123^12345 mod 17 = powermod(123, 12345, 17)

Пример 4

Функциональный sqrt приводит к более простым результатам, чем _power:

sqrt(4*x*y), (4*x*y)^(1/2)

Пример 5

Для конечных множеств X^Y является набором:

{a, b, c}^2, {a, b, c}^{q, r, s}

Пример 6

Различные области библиотеки, такие как матричные области или перегрузка областей класса вычетов _power:

x := Dom::Matrix(Dom::IntegerMod(7))([[2, 3], [3, 4]]):
x^2, x^(-1), x^3 * x^(-3)

delete x:

Пример 7

Этот пример демонстрирует поведение _power на пользовательских областях. Без слота "power" степени доменных элементов обработаны как любые другие символьные степени:

myDomain := newDomain("myDomain"): x := new(myDomain, 1): x^2

type(x^2), op(x^2, 0), op(x^2, 1), op(x^2, 2)

После того, как слот "_power" задан, этот метод используется, чтобы вычислить степени объектов myDomain:

myDomain::_power := proc() begin "The result" end: x^2

delete myDomain, x:

Возвращаемые значения

Арифметическое выражение, полином, интервал с плавающей точкой или набор.

Перегруженный

x, y

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

Функции MuPAD