您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

获取线性方程的所有正整数解

获取线性方程的所有正整数解

SymPy可以求解Diophantine方程,但没有生成正解的内置方法。使用Sage可以轻松完成此任务:这是四行代码,可生成方程式的所有 。

p = MixedIntegerLinearProgram()
w = p.new_variable(integer=True, nonnegative=True)
p.add_constraint(411*w[0] + 295*w[1] + 161*w[2] == 3200)
p.polyhedron().integral_points()

输出((4, 2, 6),)

在幕后,integral_points很可能只会运行多个循环;尽管当这似乎不起作用时,它会尝试使用Smith范式。

我知道您想要积极的解决方案,但是(a)很容易从答案中排除任何包含零的元组;(b)在求解之前,也很容易用x-1等替换x;(c)坚持“否定性”使得使用 上述混合整数线性编程模块可以轻松创建多面体。

根据文档,也可以直接从不等式(“ Hrep”)构建多面体对象。这将允许人们明确地说x> = 1,依此类推,但是我在这条路线上还没有成功。

其他 2022/1/1 18:26:43 有483人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶