帮我写出用python对高次方程3*x**3-2*x**2+9*x-6=0的解的代码
时间: 2023-11-30 08:05:24 浏览: 27
以下是用Python解高次方程3*x**3-2*x**2+9*x-6=0的代码:
a = 3
b = -2
c = 9
d = -6
delta1 = 18*a*b*c-4*b**3*d+b**2*c**2-4*a*c**3-27*a**2*d**2
delta2 = delta1**2-4*(b**2-3*a*c)**3
C = ((delta1+delta2**0.5)/2)**(1/3)
if C == 0:
x1 = x2 = x3 = -(b/(3*a))
else:
x1 = (C-(delta1+delta2**0.5)/2**(1/3)+b/(3*a))
x2 = complex(-(C+(delta1+delta2**0.5)/2**(1/3))/2-b/(3*a), (C-(delta1+delta2**0.5)/2**(1/3))*3**(1/2)/2)
x3 = complex(-(C+(delta1+delta2**0.5)/2**(1/3))/2-b/(3*a), -(C-(delta1+delta2**0.5)/2**(1/3))*3**(1/2)/2)
print("x1=", x1)
print("x2=", x2)
print("x3=", x3)
相关问题
python怎么用3*x**7+2*y**5-x**3+y**3-3=0写出y=f(x)表达式
根据提供的方程3*x**7+2*y**5-x**3+y**3-3=0,我们可以将其转化为y=f(x)的形式。具体步骤如下:
1. 将方程中的所有y项移到等号左边,将其它项移到等号右边,得到2*y**5+y**3=3-3*x**7+x**3。
2. 将y的所有次数提取出来,得到y**5+y**3=1/2*(3-3*x**7+x**3)。
3. 将y**3提取出来,得到y**3*(y**2+1)=1/2*(3-3*x**7+x**3)。
4. 将y**2+1提取出来,得到y**3=1/2*(3-3*x**7+x**3)/(y**2+1)。
5. 将y用f(x)代替,得到f(x)**3=1/2*(3-3*x**7+x**3)/(f(x)**2+1)。
6. 化简得到f(x)=((3-3*x**7+x**3)/(2*f(x)**2+2))**(1/3)。
求解一元二次方程ax*x+bx+c=0的实数解,写出代码
Python代码:
import math
def solve_quadratic_equation(a, b, c):
delta = b * b - 4 * a * c
if delta < 0:
return None
elif delta == 0:
return -b / (2 * a)
else:
x1 = (-b + math.sqrt(delta)) / (2 * a)
x2 = (-b - math.sqrt(delta)) / (2 * a)
return x1, x2
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
result = solve_quadratic_equation(a, b, c)
if result is None:
print("该方程无实数解")
elif isinstance(result, float):
print("该方程有一个实数解:{}".format(result))
else:
print("该方程有两个实数解:{}和{}".format(result[0], result[1]))