Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Polynomials > bezout

bezout

GCD of two polynomials or two integers, by the Bezout method

Syntax

thegcd = bezout(p1,p2)
[thegcd, U] = bezout(p1,p2)

Arguments

p1, p2

two real polynomials or two integer scalars (type equal to 1, 2 or 8)

thegcd

scalar with the type of p1: The Greatest Common Divisor of p1 and p2.

U

2x2 unimodular matrix of the type of p1, such that [p1 p2]*U = [thegcd 0].

Description

thegcd = bezout(p1, p2) computes the GCD thegcd of p1 and p2.

In addition, [thegcd, U] = bezout(p1, p2) computes and returns a (2x2) unimodular matrix U such that [p1 p2]*U = [thegcd 0].

The lcm of p1 and p2 is given by:

p1*U(1,2) (or -p2*U(2,2))

If p1 or p2 are given as doubles (type 1), then they are processed as null degree polynomials.

Examples

// Polynomial case
x = poly(0, 'x');
p1 = (x+1)*(x-3)^5;
p2 = (x-2)*(x-3)^3;
[thegcd,U] = bezout(p1, p2)
det(U)
clean([p1 p2]*U)
thelcm = p1*U(1,2)
lcm([p1 p2])

// With decimal numbers
i1 = 2*3^5;
i2 = 2^3*3^2;
[thegcd,U] = bezout(i1, i2)
V = [2^2*3^5 2^3*3^2 2^2*3^4*5];
[thegcd,U] = gcd(V)
V*U
lcm(V)

// Integer case
i1 = int32(2*3^5);
i2 = int32(2^3*3^2);
[thegcd,U] = bezout(i1, i2)
V = int32([2^2*3^5 2^3*3^2 2^2*3^4*5]);
[thegcd,U] = gcd(V)
V*U
lcm(V)

See also

  • gcd — Greatest (positive) Common Divisor
  • lcm — наименьшее общее кратное (НОК)
  • poly — определение полинома
  • roots — roots of polynomials
  • simp — rational simplification
  • clean — очищает матрицы (округление малых значений до нуля)
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Feb 12 20:08:36 CET 2018