下面是利用Python的sympy包求解一元三次方程示例的完整攻略。
环境准备
首先,需要确保在本地计算机上安装好了Python和sympy包。可以使用pip进行安装:
pip install sympy
导入sympy包
在Python文件中首先需要导入sympy包:
import sympy
定义符号变量
接下来需要定义符号变量,分别代表未知数和常数:
x = sympy.symbols('x')
a, b, c, d = sympy.symbols('a b c d')
其中,x为未知数,a、b、c、d为常数。
定义方程
接下来需要定义一个一元三次方程。以方程ax^3 + bx^2 + cx + d = 0为例:
f = a * x ** 3 + b * x ** 2 + c * x + d
求解方程
接下来使用solve函数求解方程。solve函数的第一个参数为需要求解的方程,第二个参数为需要解的变量。以求解方程f = 2x^3 + 3x^2 + 5x + 2的根为例:
roots = sympy.solve(2 * x ** 3 + 3 * x ** 2 + 5 * x + 2, x)
print(roots)
此时程序会输出方程的三个根:
[-1, -2/3 + sqrt(7)*I/3, -2/3 - sqrt(7)*I/3]
我们可以看到sympy已经求解了方程的根。
示例说明
下面分别针对两个不同的方程进行示例说明。
示例一
解方程f = x^3 + 2x^2 + 3x + 1
完整代码如下:
import sympy
x = sympy.symbols('x')
f = x ** 3 + 2 * x ** 2 + 3 * x + 1
roots = sympy.solve(f, x)
print(roots)
输出结果为:
[-1, -1 - sqrt(2)*I, -1 + sqrt(2)*I]
程序中通过调用solve函数求解了方程f的根,输出结果分别为-1和(-1±√2i)。
示例二
解方程f = 3x^3 + 5x^2 - 2x - 1
完整代码如下:
import sympy
x = sympy.symbols('x')
f = 3 * x ** 3 + 5 * x ** 2 - 2 * x - 1
roots = sympy.solve(f, x)
print(roots)
输出结果为:
[-1, 1/3 - sqrt(7)/3, 1/3 + sqrt(7)/3]
程序中通过调用solve函数求解了方程f的根,输出结果分别为-1、(1/3-√7/3)和(1/3+√7/3)。
通过这两个示例,我们可以看到sympy可以帮助我们方便地求解一元三次方程,让我们不需要手动解方程,从而提高了我们的工作效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用Python的sympy包求解一元三次方程示例 - Python技术站