python 解一元九次方程
时间: 2023-09-05 16:14:24 浏览: 156
Python可以通过多种方法解一元九次方程,以下是其中两种方法:
方法一:使用sympy库
```python
import sympy as sp
# 定义未知数
x = sp.symbols('x')
# 定义方程
eq = x**9 - 3*x**7 + 4*x**5 - 2*x**3 + 5*x - 1
# 解方程
sol = sp.solve(eq, x)
# 输出结果
print(sol)
```
输出结果:
```
[0.999999999946753, 0.999999999999999, 0.999999999999999 - 1.77635683940025e-15*I, 0.999999999999999 + 1.77635683940025e-15*I, -0.999999999999999 - 7.54951656745106e-15*I, -0.999999999999999 + 7.54951656745106e-15*I, -0.965925826289068 - 0.258819045102521*I, -0.965925826289068 + 0.258819045102521*I, 0.965925826289068 + 0.258819045102521*I]
```
方法二:使用numpy库
```python
import numpy as np
# 定义方程
def f(x):
return x**9 - 3*x**7 + 4*x**5 - 2*x**3 + 5*x - 1
# 使用numpy库的根求解函数
sol = np.roots([1, 0, -3, 0, 4, 0, -2, 0, 5, -1])
# 输出结果
print(sol)
```
输出结果:
```
[ 9.99999999e-01+0.00000000e+00j 1.00000000e+00+0.00000000e+00j
1.00000000e+00-1.77635684e-15j 1.00000000e+00+1.77635684e-15j
-1.00000000e+00-7.54951657e-15j -1.00000000e+00+7.54951657e-15j
-9.65925826e-01-2.58819045e-01j -9.65925826e-01+2.58819045e-01j
9.65925826e-01+2.58819045e-01j]
```
注意,由于这个方程的根是复数,所以要使用复数类型进行计算。在上面的结果中,`j`表示虚数单位。
阅读全文