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
.
Если Normal = id
и IsZero = iszero
, то Ax::efficientOperation ("_divide"), Ax::efficientOperation ("_mult"), Ax::efficientOperation("_invert")
, еще Ax::normalRep
.
Если Normal = id
и IsZero = iszero
и IsZero = iszero
, то Ax::systemRep
.
Dom::ExpressionField(normal)
создает поле рациональных выражений по rationals. Выражения, представляющие полевые элементы, всегда нормируются normal
:
Fn := Dom::ExpressionField(normal): a := Fn((x^2 - 1)/(x - 1))
Полевые элементы являются явными элементами области:
domtype(a)
В доменном 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)
|
Функция раньше нормировала выражения области; значением по умолчанию является |
|
Функция раньше тестировала выражения области для нуля; значением по умолчанию является |
|
Выражение, представляющее полевой элемент. |
"характеристика" | Характеристика полей, созданных этим конструктором, принята, чтобы быть |
"один" | Элемент, представленный выражением |
"нуль" | Элемент, представленный выражением |