Dom:: ExpressionField

Области выражений, формирующих поле

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

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

Синтаксис

Доменное создание

Dom::ExpressionField(<Normal, <IsZero>>)

Создание элемента

Dom::ExpressionField(Normal, IsZero)(e)

Описание

Доменное создание

Dom::ExpressionField(Normal, IsZero) создает область выражений, формирующих поле, где функции Normal и IsZero используются, чтобы нормировать выражения и протестировать на нуль.

Функциональный Normal используется, чтобы нормировать выражения, представляющие элементы, функциональный IsZero используется, чтобы протестировать выражения на нуль. Это принято, что поле имеет характеристический 0.

Область не может решить, формируют ли выражения элемента —, учитывая функцию нормализации и нулевой тест — на самом деле поле. Это до пользователя, чтобы выбрать правильные функции для нормализации и нулевого теста и ввести только допустимые выражения как элементы областей.

Нужно просмотреть этого доменного конструктора как прагматический способ создать поле характеристического 0 оперативным способом. Обратите внимание на то, что значение по умолчанию использования id и iszero не приводит к полю действительно, но это часто удобно и разумно использовать получившуюся структуру в качестве поля.

Normal должен быть функцией, которая берет выражение, представляющее доменный элемент, и возвращает нормированное выражение. Normal должен возвратить FAIL, если выражение не допустимо.

Если Normal не дан, то системная функция, id используется, т.е. только ядро simplifier, используется, чтобы нормировать выражения.

Если функция нормализации кроме id дана, это принято, что это функционирует, возвращает нормальную форму, где нулевой элемент исключительно представлен постоянным 0.

IsZero должен быть функцией, которая берет выражение, представляющее доменный элемент, и возвращает TRUE, если выражение представляет нуль и FALSE в противном случае.

Если IsZero не дан, то iszero @ Normal используется для нулевого тестирования. Если Normal равен id, это функциональное выражение упрощено до iszero.

Если Normal равен id, и IsZero равен iszero, область фасада создается, т.е. доменные элементы являются просто выражениями и явным образом не создаются new.

В противном случае элементы области явным образом создаются new. Каждый такой элемент имеет один операнд, который является выражением, представляющим доменный элемент. Выражения элемента нормированы после каждой операции с помощью функционального Normal.

Создание элемента

Dom::ExpressionField(Normal, IsZero)(e) создает полевой элемент, представленный выражением e. Выражение нормировано с помощью функционального Normal.

Если Normal возвращает FAIL, он принят, что выражение не представляет допустимый полевой элемент. Если этот тест не полностью реализован, область не может решить, представляет ли выражение допустимый полевой элемент. В этом случае это до пользователя, чтобы ввести только допустимые выражения как полевые элементы.

Если Normal равен id, и IsZero равен iszero, область является только областью фасада. В этом случае выражение e возвращено, будучи упрощенным встроенным ядром simplifier.

Суперобласть

Если Normal = id и IsZero = iszero, то Dom::ArithmeticalExpression, еще Dom::BaseDomain.

Аксиомы

Ax::indetElements

Если Normal = id и IsZero = iszero, то Ax::efficientOperation ("_divide"), Ax::efficientOperation ("_mult"), Ax::efficientOperation("_invert"), еще Ax::normalRep.

Если Normal = id и IsZero = iszero и IsZero = iszero, то Ax::systemRep.

Примеры

Пример 1

Dom::ExpressionField(normal) создает поле рациональных выражений по rationals. Выражения, представляющие полевые элементы, всегда нормируются normal:

Fn := Dom::ExpressionField(normal):
a := Fn((x^2 - 1)/(x - 1))

Полевые элементы являются явными элементами области:

domtype(a)

Пример 2

В доменном Dom::ExpressionField(id, iszero@normal) выражения, представляющие элементы, нормированы ядром simplifier только:

Fi := Dom::ExpressionField(id, iszero@normal):
a := Fi((x^2 - 1)/(x - 1))

Элементы этой области не нормированы (когда просматривается как рациональные выражения по rationals), таким образом область не имеет аксиомы Ax::normalRep:

b := a/Fi(x + 1) - Fi(1)

Но тем не менее эта область также представляет поле рациональных выражений по rationals, потому что нуль обнаруживается правильно функциональным iszero @ normal:

iszero(b)

Параметры

Normal

Функция раньше нормировала выражения области; значением по умолчанию является id.

IsZero

Функция раньше тестировала выражения области для нуля; значением по умолчанию является iszero @ Normal.

e

Выражение, представляющее полевой элемент.

Записи

"характеристика"

Характеристика полей, созданных этим конструктором, принята, чтобы быть 0.

"один"

Элемент, представленный выражением 1, принят, чтобы быть нейтральным элементом w.r.t. "_mult".

"нуль"

Элемент, представленный выражением 0, принят, чтобы быть нейтральным элементом w.r.t. плюс.

Методы

развернуть все

Математические методы

abs(x)

Перегружает функциональный abs, таким образом может быть назван через abs(x).

combine(x, <a>)

Перегружает функциональный combine, таким образом может быть назван через combine(x,...).

conjugate(x)

Перегружает функциональный conjugate, таким образом может быть назван через conjugate(x).

D(<l>, x)

Перегружает функциональный D, таким образом может быть назван через D(x) или D(l, x).

denom(x)

Перегружает функциональный denom, таким образом может быть назван через denom(x).

diff(x, <v, , …>)

Перегружает функциональный diff, таким образом может быть назван через diff(x,...).

_divide(x, y)

Перегружает функциональный _divide, таким образом может быть назван через x/y или _divide(x, y).

equal(x, y)

expand(x)

Перегружает функциональный expand, таким образом может быть назван через expand(x).

factor(x)

Перегружает функциональный factor, таким образом может быть назван через factor(x).

float(x)

Перегружает функциональный float, таким образом может быть назван через float(x).

gcd(x, …)

Перегружает функциональный gcd, таким образом может быть назван через gcd(x,...).

Im(x)

Перегружает функциональный Im, таким образом может быть назван через Im(x).

int(x, <v>)

Перегружает функциональный int, таким образом может быть назван через int(x,...).

intmult(x, n)

_invert(x)

Перегружает функциональный _invert, таким образом может быть назван через 1/x или _invert(x).

iszero(x)

Перегружает функциональный iszero, таким образом может быть назван через iszero(x).

lcm(x, …)

Перегружает функциональный lcm, таким образом может быть назван через lcm(x, ...).

_leequal(x, y)

Обратите внимание на то, что функциональный _leequal может только протестировать числа (в синтаксическом смысле), но не константные выражения как PI или sqrt(2).

Перегружает функциональный _leequal, таким образом может быть назван через x <= y, y >= x или _leequal(x, y).

_less(x, y)

Обратите внимание на то, что функциональный _less может только протестировать числа (в синтаксическом смысле), но не константные выражения как PI или sqrt(2).

Перегружает функциональный _less, таким образом может быть назван через x < y, y > x или _less(x, y).

limit(x, <v, …>)

Перегружает функциональный limit, таким образом может быть назван через limit(x,...).

max(x, …)

Перегружает функциональный max, таким образом может быть назван через max(x,...).

min(x, …)

Перегружает функциональный min, таким образом может быть назван через min(x,...).

_mult(x, …)

Если все аргументы имеют эту область или могут быть принуждены к этой области (использование метода coerce), продукт выражений, представляющих аргументы, вычисляется с помощью функционального _mult.

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

Перегружает функциональный _mult, таким образом может быть назван через x*... или _mult(x,...).

_negate(x)

Перегружает функциональный _negate, таким образом может быть назван через -x или _negate(x).

norm(x)

Перегружает функциональный norm, таким образом может быть назван через norm(x).

Обратите внимание на то, что системная функция norm, к которому применяются выражение, вычисляет норму того выражения, интерпретированного как многочленное выражение а не абсолютное значение выражения. Это может рассматриваться как несоответствие.

normal(x)

Перегружает функциональный normal, таким образом может быть назван через normal(x).

numer(x)

Перегружает функциональный numer, таким образом может быть назван через numer(x).

_plus(x, …)

Если все аргументы имеют эту область или могут быть принуждены к этой области (использование метода coerce), сумма выражений, представляющих аргументы, вычисляется с помощью функционального _plus.

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

Перегружает функциональный _plus, таким образом может быть назван через x+... или _plus(x,...).

_power(x, y)

_power(x, y)

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

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

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

Перегружает функциональный _power, таким образом может быть назван через x^y или _power(x, y).

radsimp(x)

Перегружает функциональный radsimp, таким образом может быть назван через radsimp(x).

random()

Смотрите polylib::randpoly для получения дополнительной информации о создании случайных полиномов.

Re(x)

Перегружает функциональный Re, таким образом может быть назван через Re(x).

sign(x)

Перегружает функциональный sign, таким образом может быть назван через sign(x).

simplify(x, <a>)

Перегружает функциональный simplify, таким образом может быть назван через simplify(x,...).

solve(x, <a, …>)

Обратите внимание на то, что этот метод никогда не будет возвращать элемент этой области. Смотрите solve для получения дополнительной информации о результатах и дополнительных дополнительных аргументах.

Перегружает функциональный solve, таким образом может быть назван через solve(x,...).

sqrfree(x)

Перегружает функциональный polylib::sqrfree, таким образом может быть назван через polylib::sqrfree(x).

_subtract(x, y)

Перегружает функциональный _subtract, таким образом может быть назван через x-y или _subtract(x, y).

Методы преобразования

convert(x)

convert_to(x, T)

expr(x)

Этот метод вызван функциональным expr, если подвыражение аргумента является элементом этой области.

new(x)

Перегружает оператор вызова функции для этой области, таким образом может быть назван через F(x), где F является этой областью.

Методы доступа

nops(x)

Перегружает функциональный nops, таким образом может быть назван через nops(x).

op(x)

op(x, i)

Возвращает операнд с индексом i выражения, представляющего x. Если i является 0 затем, оператор выражения возвращен, который обычно не является элементом этой области. Другие операнды преобразованы в элементы этой области.

Этот метод вызван функциональным op, когда элемент этой области содержится, как подвыражение, в первом аргументе op. Области значений операнда и пути обработаны op и не должны быть обработаны этим методом. Смотрите op для деталей.

subs(x, e, …)

Карты subs к выражению, представляющему x. Получившееся выражение преобразовано в элемент этой области.

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

subsex(x, e, , …)

Карты subsex к выражению, представляющему x. Получившееся выражение преобразовано в элемент этой области.

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

subsop(x, e, , …)

Этот метод вызван функциональным subsop, когда элемент этой области содержится, как подвыражение, в первом аргументе subsop. Области значений операнда и пути обработаны subsop и не должны быть обработаны этим методом. Смотрите subsop для деталей.

Технические методы

indets(x, <optionName>)

Перегружает функциональный indets, таким образом может быть назван через indets(x) и indets(x, optionName), соответственно.

length(x)

Перегружает функциональный length, таким образом может быть назван через length(x).

map(x, f, <a, …>)

Перегружает функциональный map, таким образом может быть назван через map(x, f,...).

rationalize(x, <a, …>)

Обратите внимание на то, что этот метод не перегружает функциональный rationalize от стандартного пакета библиотеки, но функциональный numeric::rationalize от пакета numeric вместо этого. Таким образом метод может быть назван через numeric::rationalize(x,...).

pivotSize(x)