如何求解np.poly1d等于指定参数a时的所有复数解
解决方法
你要解的等式 5x² + 2x + 1 = a 可以直接移项等价为 (5x² + 2x + 1) - a = 0,利用numpy.poly1d支持直接和标量做算术运算的特性,不需要手动修改原多项式的系数,直接构造目标多项式后调用求根方法即可。
代码实现
import numpy as np # 你已经预先定义的原多项式 original_poly = np.poly1d([5, 2, 1]) def get_complex_roots(a): # 构造等式左侧的多项式:原多项式 - a target_poly = original_poly - a # 直接获取所有复数解 return target_poly.roots
效果验证
- 传入
a = 1时,返回结果为[ 0. +0.j, -0.4+0.j],代入原等式验证成立 - 传入
a = 0时,返回结果为[-0.2+0.4j, -0.2-0.4j],是符合预期的共轭复数根
补充说明:
np.poly1d和标量加减时,只会修改多项式的常数项,刚好匹配我们移项后的计算需求,不需要额外处理系数列表。
内容的提问来源于stack exchange,提问作者Joshua Harwood
相关产品推荐
相关产品推荐

