Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.1.1 - Français

Change language to:
English - 日本語 - Português - Русский

Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function

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=[]).
Report an issue
<< detr Polynômes factors >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jan 03 14:33:06 CET 2022