多项式零点与数值微分的求解方法
1. 多项式零点相关内容
1.1 多项式基础
多项式 (P_n(x)) 的形式为 (P_n(x) = a_0 + a_1x + a_2x^2 + \cdots + a_nx^n),其中系数 (a_i) 可以是实数或复数。若系数为实数,多项式方程 (P_n(x) = 0) 有 (n) 个根,可能是实数或复数,且复数根总是共轭成对出现。
根据笛卡尔法则可估计实根数量:
- 正实根的数量等于 (P_n(x)) 表达式中符号变化的次数,或比该次数少一个偶数。
- 负实根的数量等于 (P_n(-x)) 表达式中符号变化的次数,或比该次数少一个偶数。
例如,对于 (P_3(x) = x^3 - 2x^2 - 8x + 27),符号变化两次,所以 (P_3(x) = 0) 有两个或零个正实根;而 (P_3(-x) = -x^3 - 2x^2 + 8x + 27) 有一次符号变化,所以 (P_3(x)) 有一个负实根。
1.2 多项式求值
可以从左到右计算多项式的值,代码如下:
p = 0.0
for i in range(n+1):
p = p + a[i]*x**i
但这种方法乘法次数为 (1 + 2 + 3 + \cdots + n - 1 = \frac{1}{2}n(n - 1)),当 (n) 较大时效率较低。更优的方法是从右到左计算,对于 (P_4(x) = a_0 + a_1x + a_2x^2 + a_3x^3 + a_4x^4),可改写为 (P_4(x)