^
, _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
.
Для конечных множеств X
, Y
, степень X^Y
является набором.
Вычисляются некоторые степени:
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^3^4 = (2^3)^4, x^y^z
Модульные степени могут быть вычислены непосредственно с помощью ^
и mod
. Однако powermod
более эффективен:
123^12345 mod 17 = powermod(123, 12345, 17)
Функциональный sqrt
приводит к более простым результатам, чем _power
:
sqrt(4*x*y), (4*x*y)^(1/2)
Для конечных множеств X^Y
является набором:
{a, b, c}^2, {a, b, c}^{q, r, s}
Различные области библиотеки, такие как матричные области или перегрузка областей класса вычетов _power
:
x := Dom::Matrix(Dom::IntegerMod(7))([[2, 3], [3, 4]]): x^2, x^(-1), x^3 * x^(-3)
delete x:
Этот пример демонстрирует поведение _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