在 Matlab 中求解丢番图方程

Solve Diophantine equation in Matlab

在 Matlab 中求解像这样 x^2 – x*y – 2*y^2 = 7 的丢番图方程的最佳方法是什么?在这种特殊情况下,答案应该是 (3; –2), (5; 2), (–3; 2), (–5; –2).

你可以暴力破解它,尽管我确信有更好的代数方法:

x = -5:5;
y = -5:5;

[X,Y] = meshgrid(x,y);
f = X.^2-X.*Y-2*Y.^2;

[X(f==7),Y(f==7)]

您可以在所需区域之间扫过 xy。它也适用于十进制值 x = -5:0.01:5;.