如何确定多项式曲线在区间[a,b]下是否是单调的?

Buz*_*uzz 1 math graphics geometry


如果我得到了多项式曲线,我想通过编程找到所有单调曲线段和相应的区间.
这样做的最好方法是什么...
我想避免像f'(x)= 0那样求解方程式;
使用一些很好的数字方法来做这个,比如bi-section,是首选.
f'(x)表达式可用.

谢谢.

添加其他细节.例如,我在2d空间得到一条曲线,其多项式为

x:f(t)y:g(t)

t是[0,1]

所以,如果我想获得它的单调曲线段,我必须知道其切线向量为(1,0)的t的位置.

解决此问题的一种直接方法是设置方程"f'(x)= 0".

但我想用最有效的方法来做到这一点.

例如,我尝试使用递归方式来找到它.将范围[0,1]除以四个部分,并检查矢量(1,0)上的四个切线投影是否在同一方向,两个点是否足够接近.如果不是,继续将范围分成4个部分,直到它们在(1,0)和(0,1)中的方向相同,并且足够接近.

Joe*_*win 6

我认为你必须使用数值方法找到f'(x)的根源(随意实现你想要的任何寻根算法,维基百科有一个列表).根将是梯度达到零的那些点; 比如说x1,x2,x3.

然后,您有一组间隔(-inf,x1)(x1,x2)等,多项式的连续性确保梯度在特定点对之间始终为正或总是负.

因此,在每个区间内的某个点评估梯度符号将告诉您该区间是否单调增加.如果你不关心"严格"增加的部分,你可以将具有正梯度的相邻间隔拼接在一起(因为拐点将显示为f'(x)= 0根之一).