2011-11-19 67 views
3

满意。例如,我有一个表达式为整数的(任意)函数n找出最大整数,这个代数约束是数学

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

我想找到的最大整数n这样f[n]<=m换另一个号码m

我可以把它作为一个整数编程/优化问题。但是这使事情变得复杂。我也可以尝试从1开始,并继续测试约束是否被违反。有没有更高效或优雅的方式来做到这一点?请注意,约束条件可能允许Infinity的值为n,我理想地想要检测这种情况。

+1

如果x是真实的,可以在一个假设F [X]是连续函数? –

+1

是的,你可以假设f [x]是连续的。 –

回答

5

取决于。如果您可以使用数字方法来解决启发式结果,那么假设整数max是实际最大值的底线,则可以按照以下方式进行操作。

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

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

丹尼尔Lichtblau