网上教程很多 一搜 比较容易学
第一次接触python处理方程 浅浅记录
1. 对象:一元四次方程
from sympy import * #sympy包 pip install sympy安装即可
x= symbols('x')
#solve求解方程
print(solve(8*(x**4) + 36*(x**3) + 22 *(x**2) - 37*x - 32, x))
输出的结果是用逗号隔开的(如上).
2. 但是结果特别长 我想转成小数型.从网上搜 把代码改成如下:
from sympy import * #sympy包 pip install sympy安装即可
x= symbols('x')
#solve求解方程
print(solve(8*(x**4) + 36*(x**3) + 22 *(x**2) - 37*x - 32, x.evalf(n=3))) #3位有效数字
结果运行 还是原来长长的结果.
3.因为我只求一个结果 我就将四个结果挨着求小数型
#将结果变成浮点数
r = -9/8 - sqrt(155/24 - 2*(-1043/1728 + sqrt(5017)/192)**(1/3) + 37/(32*sqrt(155/48 + 11/(9*(-1043/1728 + sqrt(5017)/192)**(1/3)) + 2*(-1043/1728 + sqrt(5017)/192)**(1/3))) - 11/(9*(-1043/1728 + sqrt(5017)/192)**(1/3)))/2 - sqrt(155/48 + 11/(9*(-1043/1728 + sqrt(5017)/192)**(1/3)) + 2*(-1043/1728 + sqrt(5017)/192)**(1/3))/2
print(r.evalf(n=3))
小数型如图(下)
4.然后 我画了一下图试了试:
#画图象
x = np.linspace(-5, 5, 100)
y = 8*(x**4) + 36*(x**3) + 22 *(x**2) - 37*x - 32
z = 0*x
plt.plot(x,y, color = 'lightcoral')
plt.plot(x,z, color = 'burlywood')
plt.show()
结果如下(感觉也有交点,为啥求出来还是复数呢.应该哪里有错误,但是我没找到):
但是当x = 1.02时,方程为0.01174528000000663.
没找问题 取了1.02这个解.