用于检查非线性函数f是否总是正的算法

Ade*_*yan 6 algorithm nonlinear-functions maple nonlinear-optimization

是否有算法检查给定(可能是非线性)函数f是否始终为正?

我目前的想法是找到函数的根源(使用newton-raphson算法或类似的技术,参见http://en.wikipedia.org/wiki/Root-finding_algorithm)并检查衍生物或找到最小值f,但它们似乎不是这个问题的最佳解决方案,根查找算法也有很多收敛问题.

例如,在Maple中,函数验证可以做到这一点,但我需要在我自己的程序中实现它.Maple帮助验证:http://www.maplesoft.com/support/help/Maple/view.aspx? path = verify/function_shells Maple示例:assume(x,'real'); 验证(x ^ 2 + 1,0,'greater_than'); - >返回true,因为对于每个x我们都有x ^ 2 + 1> 0

[编辑]问题的一些背景:函数$ f $是电路的右手微分非线性模型.非线性电路可以通过应用修改的节点分析(MNA)建模为一组常微分方程,为简单起见,我们只考虑具有1维的系统,因此$ x'= f(x)$其中$ f $描述电路,例如$ f $可以是$ f(x)= 10x - 100x ^ 2 + 200x ^ 3 - 300x ^ 4 + 100x ^ 5 $(非线性隧道二极管的模型)或$ f = 10 - 2sin (4x)+ 3x $(约瑟夫森交界处的模型).

$ x $是有界的,$ f $仅在R $的区间$ [a,b] \中定义.$ f $是连续的.我也可以假设$ f $是Lipschitz,Lipschitz常数L> 0,但我不想,除非我必须.

mhu*_*hum 3

如果我正确理解你的问题,它可以归结为计算一个区间内的(实)根的数量,而不必识别它们。事实上,您甚至不需要获取确切的数字,只需获取它是否等于零即可。

如果你的函数是多项式,我认为Sturm 定理可能适用。维基百科文章声称另外两个过程是首选,因此您可能也想检查一下。我不确定笛卡尔的符号规则是否适用于区间,但布丹定理似乎确实如此。