Factored
Объекты сохранены в учтенной форме
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
Factored(list
, <type
>, <ring
>) Factored(f
, <type
>, <ring
>)
Factored
является областью объектов, сохраненных в учтенной форме, таких как главная факторизация целых чисел, факторизация без квадратов полиномов или факторизация полиномов в неприводимых факторах.
Аргумент list
должен быть списком нечетной длины и формы [u, f1, e1, f2, e2, ..., fr, er]
, где записи u и f i является элементами доменного ring
или может быть преобразован в такие элементы. i e должен быть целыми числами. Здесь, i колеблется от 1 до r.
Смотрите раздел “Operands” ниже для значения записей того списка.
О сообщении об ошибке сообщают, если одна из записей списка имеет неправильный тип.
Арифметическое выражение f
, данный как первый аргумент, совпадает с предоставлением списка [ring::one, f, 1]
.
Смотрите раздел “Operands” ниже для значения записей того списка.
f
должен быть элементом доменного ring
или должен быть конвертируем в такой элемент, в противном случае сообщение об ошибке было бы дано.
Аргумент type
указывает на то, что известно о факторизации. В настоящее время следующие типы известны:
"unknown"
– ничто не известно о факторизации.
"irreducible"
– i f неприводим по доменному ring
.
"squarefree"
– i f без квадратов по доменному ring
.
Если этот аргумент отсутствует, то тип созданного учтенного объекта установлен в "unknown"
.
Тип факторизации известен любому элементу Factored
. Используйте методы "getType"
и "setType"
(см. ниже) считать и установить тип факторизации данного учтенного объекта.
Аргумент ring
является звонком факторизации. Это должна быть интегральная область, т.е. область категории Cat::IntegralDomain
.
Если этот аргумент отсутствует, то доменный Dom::ExpressionField()
используется.
Звонок факторизации известен любому элементу Factored
. Используйте методы "getRing"
и "setRing"
(см. ниже) считать и установить звонок факторизации данного учтенного объекта.
Можно использовать индексный оператор [ ]
, чтобы извлечь факторы элемента f
доменного Factored
. Например, для f = u f1e1f2e2 …, у вас есть f [1] = u, f [2] = f 1e1, f [3] = f 2e2 и т.д.
Можно также использовать методы "factors"
и "exponents"
(см. ниже) чтобы получить доступ к операндам, т.е. вызову, Factored::factors(f)
возвращает список факторов f i, и Factored::exponents(g)
возвращает список экспонент e i (1 ≤ i ≤ r).
Системные функции ifactor
, factor
и polylib::sqrfree
являются главным приложением этой области, они возвращают свой результат в форме таких учтенных объектов (см. их страницы справки для получения информации о типе и звонке факторизации).
Не может быть никакой потребности явным образом создать учтенные объекты, но работать с результатами упомянутых системных функций.
Обратите внимание на то, что элемент Factored
распечатан как выражение и ведет себя как этот. Как пример, результатом f := factor(x^2 + 2*x + 1)
является элемент Factored
и распечатанный как (x + 1)^2
. Вызов type(f)
возвращает "_power"
как тип выражения f
.
Для элемента f
Factored
вызов Factored::convert(f, DOM_LIST)
дает список всех операндов f
.
Следующее вычисляет главную факторизацию целого числа 20:
f := ifactor(20)
Результатом является элемент доменного Factored
:
domtype(f)
который состоит из следующих пяти операндов:
op(f)
Они представляют целое число 20 в следующей форме: 20 = 1 22 5. Факторы являются простыми числами и могут быть извлечены через Factor::factors
:
Factored::factors(f)
ifactor
хранил информацию, что звонок факторизации является звонком целых чисел (представленный доменным Dom::Integer
), и что факторы f
являются главными (и поэтому неприводимыми, потому что ℤ является интегральной областью):
Factored::getRing(f), Factored::getType(f)
Мы можем преобразовать такой объект в различные формы, такой как в список его операндов:
Factored::convert_to(f, DOM_LIST)
или в неоцененное выражение, сохраняя учтенную форму:
Factored::convert_to(f, DOM_EXPR)
или назад в целое число:
Factored::convert_to(f, Dom::Integer)
Можно также использовать системную функцию coerce
здесь, который имеет тот же эффект.
Мы вычисляем факторизацию целых чисел 108 и 512:
n1 := ifactor(108); n2 := ifactor(512)
Умножение этих двух целых чисел дает главную факторизацию 55 296 = 108 512:
n1*n2
Обратите внимание на то, что большинство операций на таких объектах приводит к неучтенной форме, такой как добавление этих двух целых чисел:
n1 + n2
Можно применить функциональный ifactor
к результату, если вы интересуетесь его главной факторизацией:
ifactor(%)
Вы применение (почти) каждой функции к учтенным объектам, функции, которые в основном ожидают арифметические выражения как их вход. Обратите внимание на то, что, прежде чем операция применяется, учтенный объект преобразован в арифметическое выражение в неучтенной форме:
Re(n1)
Второй системной функцией, которая имеет дело с элементами Factored
, является factor
, который вычисляет все неприводимые факторы полинома.
Например, если мы задаем следующий полином ℤ 101:
p := poly(x^12 + x + 1, [x], Dom::IntegerMod(101)):
и вычислите его факторизацию в неприводимые факторы, мы добираемся:
f := factor(p)
Если мы умножаем учтенный объект с элементом, который может быть преобразован в элемент звонка факторизации, то мы получаем новый учтенный объект, который затем имеет тип факторизации "unknown"
:
x*f
Factored::getType(%)
Можно использовать функциональный expand
, который возвращает учтенный объект в расширенной форме как элемент звонка факторизации:
expand(f)
Третьей системной функцией, которые возвращают элементы Factored
, является polylib::sqrfree
, который вычисляет факторизацию без квадратов полиномов. Например:
f := polylib::sqrfree(x^2 + 2*x + 1)
Типом факторизации, конечно, является "squarefree"
:
Factored::getType(f)
|
Список нечетной длины |
|
Арифметическое выражение |
|
Строка (значение по умолчанию: |
|
Область категории |
При вызове учтенного объекта, когда функция приводит к самому объекту, независимо от аргументов. Аргументы не оценены.
Можно применить (почти) каждую функцию к учтенным объектам, функции, которые в основном ожидают арифметические выражения как их вход.
Например, можно добавить или умножить те объекты или применить функции, такие как expand
и diff
им. Но результат такой операции затем не имеет обычно больше доменного Factored
, когда учтенная форма могла быть потеряна из-за операции (см. примеры ниже).
Вызовите expr(f)
, чтобы преобразовать учтенный объект f
в арифметическое выражение (как элемент области ядра).
coerce(f, DOM_LIST)
вызова возвращает список операндов учтенного объекта f
(см. метод "convert_to"
ниже).
Элемент f Factored
состоит из r + 1 операнд u, f 1, e 1, f 2, e 2, …, f r, e r, такой что f = u f1e1f2e2 … f r e r.
Первый операнд u и факторы f i является элементами доменного ring
. Экспоненты e i являются целыми числами.