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фактор и 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 являются целыми числами.