Solving au+bv=c over polynomials: abcuv

### 5.28.10 Solving au+bv=c over polynomials: abcuv

A consequence of Bézout’s identity is that given polynomials A(x), B(x) and C(x), there exist polynomials U(x) and V(x) such that

C(x)=U(x)· A(x)+V(x)· B(x)

exactly when C(x) is a multiple of the greatest common divisor of A(x) and B(x). The abcuv command solves this polynomial equation.

- abcuv takes three mandatory and one optional argument:
  - A, B and C, three polynomials given as expressions or lists of coefficients in decreasing order, where C is a multiple of the greatest common divisor of A and B.
  - Optionally if the polynomials are expressions, x, the variable (which defaults to x).
- abcuv(A,B,C ⟨ ,x⟩) returns a list of two expressions [U,V] such that C = U· A + V· B.

#### Examples

- Input:
  abcuv(x^2+2*x+1 ,x^2-1,x+1)
  Output:

  ⎡ ⎢ ⎢ ⎣ |
  1
  2
  | ,− |
  1
  2
  | ⎤ ⎥ ⎥ ⎦

- Input:
  abcuv(x^2+2*x+1 ,x^2-1,x^3+1)
  Output:

  ⎡ ⎢ ⎢ ⎣ |
  −x+2
  2
  | , |
  3
  2
  | x | ⎤ ⎥ ⎥ ⎦

- Input:
  abcuv([1,2,1],[1,0,-1],[1,0,0,1])
  Output:

  [▯ |
  1
  2
  | ,− |
  1
  2
  | , |
  1
  2
  | ▯, ▯ − |
  1
  2
  | , |
  1
  2
  | ,− |
  1
  2
  | ▯]