【发布时间】:2021-12-01 17:39:19
【问题描述】:
不使用 sympy 可以解三次方程吗?
例子:
import sympy as sp
xp = 30
num = xp + 4.44
sp.var('x, a, b, c, d')
Sol3 = sp.solve(0.0509 * x ** 3 + 0.0192 * x ** 2 + 3.68 * x - num, x)
结果是:
[6.07118098358257, -3.2241955998463 - 10.0524891203436*I, -3.2241955998463 + 10.0524891203436*I]
但我想找到一种方法来使用 numpy 或根本不使用 3 部分库
我用 numpy 试过了:
import numpy as np
coeff = [0.0509, 0.0192, 3.68, --4.44]
print(np.roots(coeff))
但结果是:
[ 0.40668245+8.54994773j 0.40668245-8.54994773j -1.19057511+0.j]
【问题讨论】:
-
你有一个错字:
np.roots([0.0509, 0.0192, 3.68, -34.44])的结果与sympy的结果相同