python - 如何使用 sympy/python 找到给定根的多项式
问题描述
假设我有一个根为 -2、1 和 3 的三次多项式,我如何找到它的方程?这可以sympy
用 python 解决,还是有其他方法可以解决?
该函数可能喜欢,我想解决a
, b
, c
, d
.
f = lambda x: a*x**3+b*x**2+c*x+d
同时,如果多项式是五次的呢?
更新:
感谢您的回答。似乎使用 Vieta 的公式简化了这个问题。但有时 N 次多项式的根数不等于 N。例如,五次多项式可以表示为:
(x-a)**2*(x-b)**2(x-c)
如果是这样,这仍然可以解决吗?
请在下面查看我的解决方案以获取此更新
解决方案
这应该可以解决任何程度的多项式。星号符号允许任意数量的参数。
def c_find(*roots):
from sympy import Symbol
x = Symbol('x')
whole =1
for root in roots:
whole *=(x-root)
print('f(x) =',whole.expand())
调用c_find(3,4,5)
返回f(x) = x**3 - 12*x**2 + 47*x - 60
推荐阅读
- c# - 返回任务的结果 - 包括异常?
- typescript - 在没有编译器错误的情况下检查可分配性
- python - 如何按日期范围分组并总结该范围内的日期?
- asp.net - LINQ to SQL - 将日期和时间列组合成一个值
- spring-boot - 如何使用弹簧靴对齐表格中的列?
- c# - 每次失败时在 Gauge 报告中获取失败断言列表
- ssrs-2012 - 员工时间日志:计算“打卡”和“打卡”时间戳之间的时间。SSRS
- php - PHP 过滤器输入数组
- python - 如何根据数据的属性将数据分类到几个不同的文件中?
- javascript - 使用 sinon、nyc 和 ava 测试 js/esm 项目 - 尽管有控制台日志,但在控制台上使用 spy 进行测试失败