pdivide
Псевдоделение полиномов
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
pdivide(p
,q
, <[x]
>, <order
>,options
) pdivide(p
,q
, <[x1, x2, …]
>, <order
>,options
) pdivide(p
,q1, q2, …
, <[x1, x2, …]
>, <order
>,options
)
pdivide(p, q)
выполняет псевдоделение полиномов или многочленных выражений p
и q
. Функция возвращает факторный b
, псевдочастное s
и псевдоостаток r
, такой что b*p = s*q + r
.
pdivide(p, q1, q2, q3, ..., qN)
выполняет псевдоделение полинома или многочленного выражения p
полиномами или многочленными выражениями q1, q2, q3, ..., qN
.
pdivide(p, q)
возвращает последовательность b, s, r
, где b
является элементом содействующего звонка полиномов. Псевдочастное s
и псевдоостаток r
удовлетворяет эти условия: b*p = s*q + r
, degree(p) = degree(s) + degree(q)
и degree(r) < degree(q)
.
По умолчанию pdivide
определяет факторный b
как b = lcoeff (q)^( degree (p) - degree(q) + 1)
. AnyFactor
позволяет pdivide
использовать другие значения b
. Смотрите Пример 2.
pdivide
работает с полиномами или многочленными выражениями.
Полиномы должны иметь тот же тип, означая, что их переменные и содействующие звонки должны быть идентичными.
Когда вы вызываете pdivide
для многочленных выражений, MuPAD® внутренне преобразовывает эти выражения в полиномы. Смотрите, что poly
функционирует. Если выражения не могут быть преобразованы в полиномы, pdivide
возвращает FAIL
. Смотрите Пример 3.
Если вы вызываете pdivide
для полиномов, он возвращает полиномы. Если вы вызываете pdivide
для многочленных выражений, он возвращает многочленные выражения.
Если вы выполняете псевдоделение многочленных выражений, которые содержат несколько переменных, можно задать конкретные переменные, которые будут обработаны как переменные. Функция pdivide
обрабатывает все другие переменные как символьные параметры. По умолчанию pdivide
принимает, что все переменные в многочленных выражениях являются переменными, и ни один из них не символьный параметр. Смотрите Пример 4.
pdivide
(p, q1, q2, q3, ..., qN
) возвращает факторный b
, псевдочастные s1, s2, ..., sN
и псевдоостаток r
, такой что b*p = s1*q1 + s2*q2 + ... + sN*qN + r
.
При выполнении псевдоделения полинома одним или несколькими полиномами можно выбрать термин упорядоченное расположение. Упорядоченное расположение принимает эти значения:
LexOrder
устанавливает лексикографическое упорядоченное расположение.
DegreeOrder
устанавливает общее упорядоченное расположение степени. При использовании этого упорядоченного расположения MuPAD сортирует условия полинома согласно общей степени каждого термина (сумма экспонент переменных).
DegInvLexOrder
устанавливает общую инверсию степени лексикографическое упорядоченное расположение. При использовании этого упорядоченного расположения MuPAD сортирует условия полинома согласно общей степени каждого термина (сумма экспонент переменных). Если несколько условий имеют равные общие степени, MuPAD сортирует их использующий обратное лексикографическое упорядоченное расположение.
Ваше пользовательское упорядоченное расположение термина типа Dom::MonomOrdering
.
Смотрите пример 5.
В отличие от divide
, pdivide
не требует, чтобы содействующий звонок полиномов реализовал слот "_divide"
, потому что коэффициенты не разделены на этот алгоритм. Смотрите Пример 6.
Выполните псевдоделение этих двух полиномов:
p:= poly(x^3 + x + 1): q:= poly(3*x^2 + x + 1): [b, s, r] := [pdivide(p, q)]
Результат удовлетворяет этому уравнению:
p*b = s*q + r
Теперь вычислите псевдочастное и псевдоостаток отдельно:
pdivide(p, q, Quo), pdivide(p, q, Rem)
delete p, q, b, s, r:
По умолчанию pdivide
выполняет псевдоделение p
q
с факторным b
, определенным формулой b = lcoeff (q)^( degree (p) - degree(q) + 1)
:
p := 4*x^2 + 3: q := 2*x + 2: b = lcoeff(q)^(degree(p) - degree(q) + 1); pdivide(p, q)
Чтобы позволить pdivide
изменить значение b
, используйте AnyFactor
:
pdivide(4*x^2 + 3, 2*x + 2, AnyFactor)
Если выражение не может быть преобразовано в полином, pdivide
возвращает FAIL
:
pdivide(1/x, x)
При выполнении псевдоделения многомерных полиномов можно задать список переменных. Функция pdivide
принимает, что все другие переменные являются символьными параметрами. Например, разделите следующие два многочленных выражения, указывающие, что x
, y
и a
являются переменными. Получившееся псевдочастное 0, и псевдоостаток равняется дивиденду p
:
p := x^3 + x + y: q := a*x^2 + x + 1: pdivide(p, q, [x, y, a])
Разделите эти выражения, указывающие, что x
и y
являются переменными. MuPAD принимает, что a
является символьным параметром. Здесь, и псевдочастное и псевдоостаток не равны 0:
pdivide(p, q, [x, y])
Теперь разделите те же многочленные выражения, указывающие, что только y
является переменной. MuPAD принимает, что x
и a
являются символьными параметрами. Здесь псевдоостаток 0:
pdivide(p, q, [y])
По умолчанию функция pdivide
обрабатывает многочленные выражения с несколькими переменными как многомерные многочленные выражения. Функция не принимает, что любая из переменных является символьными параметрами:
pdivide(x^3 + x + y, a*x^2 + x + 1)
pdivide
позволяет вам выполнить псевдоделение полинома (или многочленное выражение) несколькими полиномами (или многочленные выражения):
p := 4*x^4 + a*x^2*y^4: q1 := x^3 - a: q2 := x + y: [b, s1, s2, r] := [pdivide(p, q1, q2)]
Результат удовлетворяет условие b*p = s1*q1 + s2*q2 + r
:
testeq(b*p, s1*q1 + s2*q2 + r)
При делении полинома на несколько полиномов можно выбрать термин упорядоченное расположение:
pdivide(p, q1, q2, LexOrder)
pdivide(p, q1, q2, DegreeOrder)
Содействующий звонок может быть произвольным звонком. Например, здесь кольцо классов вычетов целых чисел по модулю 8 представляет содействующий звонок:
pdivide(poly(x^3 + x + 1, IntMod(8)), poly(4*x^3 + x + 1, IntMod(8)))
Обратите внимание на то, что pdivide
не требует делимости коэффициентов.
|
Одномерные или многомерные полиномы или многочленные выражения. |
|
Одномерные или многомерные полиномы или многочленные выражения. |
|
Неопределенный из полинома, который обычно является идентификатором или индексируемым идентификатором. |
|
indeterminates полинома, которые обычно являются идентификаторами или индексированными идентификаторами. |
|
Термин, заказывающий при выполнении псевдоделения одного многомерного полинома одним или несколькими многомерными полиномами: |
|
Возвратите только псевдочастное или псевдоостаток. По умолчанию |
|
Позвольте гибкость для факторного |
Полином, или многочленное выражение, или последовательность, содержащая элемент содействующего звонка входных полиномов и полиномов (или многочленные выражения), или значение FAIL
.
f
, g
, p
, q