Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Português - 日本語 - Русский
Aide de Scilab >> Polynômes > diophant

diophant

Résoud l'équation diophantienne (Bezout) p1*x1 + p2*x2 = b

Syntaxe

[x1x2, err] = diophant(p1p2, b)

Arguments

p1p2, x

Vecteurs de deux nombres ou polynômes p1p2 = [p1 p2] et x1x2 = [x1 x2], de mêmes tailles et types (entiers, nombres, polynômes).

La réponse x1x2 = [] est fournie lorsqu'il n'y a aucune solution.

b

Nombre ou polynôme.

err

Nombre décimal : indicateur d'erreur :

0 Aucun erreur.
-%inf Il y a une infinité de solutions.
%nan p1==0, p2==0, et b <> 0 : aucune solution.
> 0 Aucune solution. err = ||coeff(b - int(b/g)*g)|| / ||coef(b)|| avec g = gcd(p1,p2).

Description

diophant résoud l'équation de Bezout p1*x1 + p2*x2 = b pour des polynômes, des entiers encodés, ou des décimaux.

Si les arguments d'entrée sont des entiers encodés, seules des solutions entières sont recherchées.

Si les argumenst d'entrée sont des nombres décimaux ou des polynômes constants, il y a toujours une infinité de solutions.

Lorsque qu'une infinité de solutions existe, une seule solution [x1 x2] est produite.

Exemples

[X, e] = diophant(int8([4, 7]), 5)          // int8([10 -5])
[X, e] = diophant(int16([1234 5321]), 543); // int16([30533 -2339])
sum(X .* [1234 5321])

s = %s;
p = (1+s)*(s-1) + (1-s^2)*s;
[X, e] = diophant([1+s ; 1-s^2], -1+s+s^2-s^3); // [-1+2*s-s^2 ; 0]
sum(X .* [1+s ; 1-s^2])

Aucune solution ::

s = %s;
[X, e] = diophant([0, 0], 1)
[X, e] = diophant([s^3, s^2], s)
[X, e] = diophant([1+s ; 1-s^2], 1-s+s^2)
[X, e] = diophant(int8([2 0]), int8(1))  // No integer solution

Une infinité de solutions existent :

[X, e] = diophant([4, 7], 5)      // [0 5/7]
s = %s;
[X, e] = diophant([0, 0]*s, 0)
[X, e] = diophant([0, 1]*s, 2*s)
[X, e] = diophant([0, s]*(1-s^2), s^2*(1-s^2))

Voir aussi

  • bezout — équation de Bezout pour les polynômes
  • sylm — Matrice de Sylvester de deux polynômes

Historique

VersionDescription
6.1.0
  • Entiers encodés acceptés.
  • La réponse x1x2=[] est désormais produite lorsqu'il n'y a pas de solution.
  • err=-%inf est désormais produit lorqu'il y a une infinité de solutions.
  • size(x1x2) et size(p1p2) sont désormais toujours égales (sauf si x1x2=[]).
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 25 08:50:22 CET 2020