求解非线性(Diophantine)方程,例如(8 + 3n)m = 11?

时间:2018-10-10 20:49:31

标签: algorithm language-agnostic algebra

是否有任何有效的算法可用于生成方程的所有整数解,例如下面的方程?

  • (8 + 3n)m = 11 | n∈{0,1},m∈ℤ+

  • (5+(7 + 3x + 2y)a + 3z)b = 30 | x,y,z∈{0,1},a,b∈ℤ+

理想情况下,我希望能够分别为n,m和a,b,x,y,z生成所有有效整数值的集合。至少我想要一种测试方程是否可解的方法。假设这些方程是非线性的,我会想象用来解决简单丢番图方程的典型方法在这里会失败。

我将非常感谢我能提供的任何帮助!

1 个答案:

答案 0 :(得分:0)

由于11是素数,所以Z中只有4种可能的因式分解:

8+3n=11 and m=1
8+3n=1 (impossible) and m=11
8+3n=-11 (impossible) and m=-1
8+3n=-1 m=-11

通过限制{0,1}中的n,仅保留一个解决方案...

对于第二种情况,还有更多的可能性,因为30是2 * 3 * 5,所以在Z的两个词中您将有16种可能的乘积。

如果将(x,y,z)替换为8种可能的组合,则第一项将以a中的一阶多项式退化,因此只有8 * 16 = 128个多项式可以测试整数根。

如果在替换有限集中的变量(通过蛮力)后,所有问题在一个变量的多项式的乘积中退化,那么这就像找到多项式的整数根,对于一阶多项式来说,这是微不足道的。上面的两个问题,相当于将整数分解为多项式以获得更高的阶数...

如果因子仍然是多元变量,但仍是线性的(总阶数为1),则就像求解线性系统一样。但是,找到整数解不一定很简单,我建议阅读http://sites.math.rutgers.edu/~sk1233/courses/ANT-F14/lec3.pdf

否则,如果因子仍然是多元变量且总阶数大于1,则等于求解多项式系统...在某些情况下,有可能参见https://en.wikipedia.org/wiki/Gr%C3%B6bner_basis