如何用数值方法解复数域上的多项式方程我有一个问题要问大家,就是如何编写一个程序解复数域上的多项式方程(比如f(x)=a2*x^2+a1*x+a0=0),我现在用的是辐角原理(简单的说就是在复数平面上对 f '(x)/f(x) 进行环线积分,如果内部有解,则积分不为零,否则为零),通过不断缩小积分范围来确定解.但是对于高阶的来说(大于10阶)有些力不从心,有没有什么算法上的改进可以提高精度和速度呢?

问题描述:

如何用数值方法解复数域上的多项式方程
我有一个问题要问大家,就是如何编写一个程序解复数域上的多项式方程(比如f(x)=a2*x^2+a1*x+a0=0),我现在用的是辐角原理(简单的说就是在复数平面上对 f '(x)/f(x) 进行环线积分,如果内部有解,则积分不为零,否则为零),通过不断缩小积分范围来确定解.但是对于高阶的来说(大于10阶)有些力不从心,有没有什么算法上的改进可以提高精度和速度呢?

如果是实系数的多项式方程,求复数根,那么可以使用林士谔—赵访熊法(劈因子法)将方程分解为实系数的二次因式,从而求出复数根.这是一个很有效且速度快的方法,可以处理任意高次方的方程.