Résoud l'équation diophantienne (Bezout) p1*x1 + p2*x2 = b
[x1x2, err] = diophant(p1p2, b)
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.
Nombre ou polynôme.
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) . |
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.
[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 :
Version | Description |
6.1.0 |
|