efficiently determining if a polynomial has a root in the interval [0,T]

后端 未结 5 1628
庸人自扰
庸人自扰 2021-02-19 10:29

I have polynomials of nontrivial degree (4+) and need to robustly and efficiently determine whether or not they have a root in the interval [0,T]. The precise location or number

5条回答
  •  长发绾君心
    2021-02-19 11:02

    You could certainly do binary search on your interval arithmetic. Start with [0,T] and substitute it into your polynomial. If the result interval does not contain 0, you're done. If it does, divide the interval in 2 and recurse on each half. This scheme will find the approximate location of each root pretty quickly.

    If you eventually get 4 separate intervals with a root, you know you are done. Otherwise, I think you need to get to intervals [x,y] where f'([x,y]) does not contain zero, meaning that the function is monotonically increasing or decreasing and hence contains at most one zero. Double roots might present a problem, I'd have to think more about that.

    Edit: if you suspect a multiple root, find roots of f' using the same procedure.

提交回复
热议问题