Solve polynomial Diophantine equations

Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.


solvelib::pdioe(a, b, c)
solvelib::pdioe(aexpr, bexpr, cexpr, x)


solvelib::pdioe(a, b, c) returns polynomials u and v that satisfy the equation au + bv = c.

solvelib::pdioe(aexpr, bexpr, cexpr, x) does the same after converting the arguments into univariate polynomials a, b, c in the variable x.

The coefficient ring of the polynomials a, b, and c must be either Expr, or IntMod(p) for some prime p, or a domain belonging to the category Cat::Field.


Example 1

If expressions are passed as arguments, a fourth argument must be provided:

                13*x + 22*x^2 + 18*x^3 + 7*x^4 + x^5 + 3,
                x^2 + 1,

Example 2

x is not a multiple of the gcd of x + 1 and x2 - 1. Hence the equation u(x + 1) + v(x2 - 1) = x has no solution for u and v:

solvelib::pdioe(x + 1, x^2 - 1, x, x)

Example 3

If the arguments are polynomials, the fourth argument may be omitted:

solvelib::pdioe(poly(a + 1, [a]),
                poly(a^2 + 1, [a]),
                poly(a - 1, [a]))



Identifier or indexed identifier

a, b, c

Univariate polynomials

aexpr, bexpr, cexpr

Polynomial expressions

Return Values

If the equation is solvable, solvelib::pdioe returns an expression sequence consisting of two operands of the same type as the input (expressions or polynomials). If the equation has no solution, solvelib::pdioe returns FAIL.

See Also

MuPAD Functions

Was this topic helpful?