找到最大整数,以便在Mathematica中满足此代数约束

时间:2011-11-19 06:09:16

标签: wolfram-mathematica constraints equation-solving

例如,我有一个表达式作为整数n

的(任意)函数
f[n_]:=10^n*(n^2+4*n)

我想找到n的最大整数,以便f[n]<=m找到另一个数字m

我可以将其表述为整数编程/优化问题。但这使事情复杂化。我也可以尝试从1开始并继续测试约束是否被违反。有没有更有效或更优雅的方式这样做?请注意,约束可能允许Infinityn,我理想情况下想要检测到这种情况。

1 个答案:

答案 0 :(得分:5)

取决于。如果你可以使用数值方法来解决启发式结果,那么假设整数最大值是实际最大值的最低值,那么可以如下所示。

f[n_] := 10^n*(n^2 + 4*n)

In[32]:= Floor[First[NMaximize[{n, f[n] <= 10^8}, n]]]
Out[32]= 6

Daniel Lichtblau