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]
etx1x2 = [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
, etb <> 0
: aucune solution.> 0 Aucune solution. err = ||coeff(b - int(b/g)*g)|| / ||coef(b)||
avecg = 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
Historique
Version | Description |
6.1.0 |
|
Report an issue | ||
<< detr | Polynômes | factors >> |