如何在我的 python 代码中写入 x^2?有人可以给我关于我的代码的建议吗
How to write x^2 in my python code? Can someone give me suggestion about my code
我使用的二次方程计算器和代码运行不佳。
代码有一些错误。
我已经尝试过使用基本数字,例如 1/2/3。没有等式。代码仍然不起作用。
实际起作用的是仅放置变量,仅此而已。
我按回车看答案是什么,它说我的代码有一些错误。
print ("Quadratic Equation Calculator")
import math
print ("Enter the first variable : ")
first = float(input(''))
print ("Enter the second variable : ")
second = float(input(''))
print ("Enter the third variable : ")
third = float(input(''))
Answer1 = ((-1 * second) - math.sqrt((math.pow(second, 2) - 4.0*first*third))) / (2*first)
Answer2 = ((-1 * second) + math.sqrt((math.pow(second, 2) - 4.0*first*third))) / (2*first)
print (Answer1)
print (Answer2)
我希望能正确回答问题,这个方程计算器可以用于实方程和使用变量。 x 平方和 3x 之类的东西。
您似乎在尝试求二次函数的根 y = a*x^2 + b*x + c
。取决于 a
、b
和 c
的值。 (请注意,您应该使用这些变量名称而不是 first
、second
和 third
,因为它们是常用的数学名称。)
根据 a
、b
和 c
的值,根可能是复数。我建议您从一些您 知道 会给出真实而不复杂的解决方案的值开始。
在Python中,当您试图对一个负数求平方根时,您会得到一个错误。如果你想能够计算出复根,你需要学习如何在Python.
中使用复数
试试这个。我建议对变量使用较短的名称。如果您还没有安装 numpy,可以将 "import numpy as np" 替换为 "import cmath",并将 "np.lib.scimath" 替换为 "cmath"。 QES代表二次方程求解器。
#Import package
import numpy as np
#Define a new function called qes
def qes(a1,b1,c1):
ans1=((-1*b1)+np.lib.scimath.sqrt((b1**2)-(4*a1*c1)))/(2*a1)
ans2=((-1*b1)-np.lib.scimath.sqrt((b1**2)-(4*a1*c1)))/(2*a1)
return ans1,ans2
#With the defined function perform a calculation and print the answer
ans1,ans2=qes(1,2,1)
print('Answer 1 is: ',ans1,' Answer 2 is: ',ans2)
在pythonx^2中,可以是x**2、x*x或者pow(x,2)。
其他人给了你很好的建议,我想补充一些。
二次方程:ax^2 + bx + c = 0(调整使方程为零!)
有多项式项 ax^2, bx, c;其系数为a,b。 c是常数项。
然后是二次公式:(-b + sqrt(b ^ 2 - 4 * a * c)) / 2a;求解 x.
以上所有内容都正确出现在您的代码中
但是,如果解决方案位于复数集 {C} 中,您将遇到麻烦。
这可以通过测量 "discriminant" 来轻松解决。
判别式为 b^2 - 4ac,并且
- 若判别式=0,则只有一种解法
- 如果判别式 > 0,则有两个实数解
- 如果判别式<0,则有两个复数解
考虑到以上条件,代码应该是这样的:
import math
print ("Quadratic Equation Calculator")
a = float(input("Enter the coefficient of term `x ^ 2` (degree 2), [a]: "))
b = float(input("Enter the coefficient of term `x` (degree 1), [b]: "))
c = float(input("Enter the constant term (degree 0), [c]: "))
discriminant = pow(b, 2) - 4.0 * a * c
if discriminant == 0:
root1 = root2 = (-1 * b) / (2 * a)
elif discriminant < 0:
root1 = ((-1 * b) - math.sqrt(-discriminant) * 1j) / (2 * a)
root2 = ((-1 * b) + math.sqrt(-discriminant) * 1j) / (2 * a)
else:
root1 = ((-1 * b) - math.sqrt(discriminant)) / (2 * a)
root2 = ((-1 * b) + math.sqrt(discriminant)) / (2 * a)
print (root1)
print (root2)
类似的 SO 答案:
下面我更改了代码以支持 pythonic 编程,因为 numpy 可以找到多项式(二次和高阶)方程的根。
numpy.roots
import numpy as np
print ("Quadratic Equation Calculator")
a = float(input("Enter the coefficient of term `x ^ 2` (degree 2), [a]: "))
b = float(input("Enter the coefficient of term `x` (degree 1), [b]: "))
c = float(input("Enter the constant term (degree 0), [c]: "))
coeffs = [a, b, c] # or d, e and so on..
roots = np.roots(coeffs)
print (roots)
感谢大家的支持。但我已经回答了我的问题。我想我没有详细说明我遇到的问题。但我知道我使用什么代码。我制作的这段代码不仅用于二次方程问题,而且可以帮助您找到二次方程的最小点。
代码:
import math
print("Quadratics Equation Calculator")
repeat = "yes"
while repeat.lower() == "yes":
V = float(input("Enter how many Variables do you have in the question: "))
print(V)
if V == 3:
a = float(input("Enter the first variable: "))
print(a)
b = float(input("Enter the second variable: "))
print(b)
c = float(input("Enter the third variable: "))
print(c)
root_1 = ((-1 * b) + math.sqrt((b ** 2) - (4 * a * c))) / (2 * a)
root_2 = ((-1 * b) - math.sqrt((b ** 2) - (4 * a * c))) / (2 * a)
print(f"The first result is {root_1} to {round(root_1)}")
print(f"The second result is {root_2} to {round(root_2)}")
graph = str(input("Want minimum point: "))
if graph == "yes":
x = ((b / 2) * -1)
y = c - b ** 2/4*a
print(f"The minimum point is ({x}, {y})")
elif graph == "no":
repeat = str(input("Do you wish to continue?: "))
if repeat == "no":
break
else:
repeat = str(input("Do you wish to continue?: "))
if repeat == "no":
break
elif V == 2:
a = float(input("Enter the first variable: "))
print(a)
b = float(input("Enter the second variable: "))
print(b)
root_1 = ((-1 * b) + math.sqrt((b ** 2) - (4 * a * 0))) / (2 * a)
root_2 = ((-1 * b) - math.sqrt((b ** 2) - (4 * a * 0))) / (2 * a)
print(f"The first result is {root_1} to {round(root_1)}")
print(f"The second result is {root_2} to {round(root_2)}")
else:
print("INVALID ERRORS, CHECK AGAIN YOUR VARIABLES")
print("Type yes or no.")
repeat = str(input("Do you wish to continue?: "))
if repeat == "no":
break
感谢你们给我的所有答案以及它的公式。
X^2 是 python 中的 bit-wise XOR 运算符。你可以将你的等式重写为
x**2(指数),x*x 或 pow(x,2) in python
我使用的二次方程计算器和代码运行不佳。 代码有一些错误。
我已经尝试过使用基本数字,例如 1/2/3。没有等式。代码仍然不起作用。 实际起作用的是仅放置变量,仅此而已。 我按回车看答案是什么,它说我的代码有一些错误。
print ("Quadratic Equation Calculator")
import math
print ("Enter the first variable : ")
first = float(input(''))
print ("Enter the second variable : ")
second = float(input(''))
print ("Enter the third variable : ")
third = float(input(''))
Answer1 = ((-1 * second) - math.sqrt((math.pow(second, 2) - 4.0*first*third))) / (2*first)
Answer2 = ((-1 * second) + math.sqrt((math.pow(second, 2) - 4.0*first*third))) / (2*first)
print (Answer1)
print (Answer2)
我希望能正确回答问题,这个方程计算器可以用于实方程和使用变量。 x 平方和 3x 之类的东西。
您似乎在尝试求二次函数的根 y = a*x^2 + b*x + c
。取决于 a
、b
和 c
的值。 (请注意,您应该使用这些变量名称而不是 first
、second
和 third
,因为它们是常用的数学名称。)
根据 a
、b
和 c
的值,根可能是复数。我建议您从一些您 知道 会给出真实而不复杂的解决方案的值开始。
在Python中,当您试图对一个负数求平方根时,您会得到一个错误。如果你想能够计算出复根,你需要学习如何在Python.
中使用复数试试这个。我建议对变量使用较短的名称。如果您还没有安装 numpy,可以将 "import numpy as np" 替换为 "import cmath",并将 "np.lib.scimath" 替换为 "cmath"。 QES代表二次方程求解器。
#Import package
import numpy as np
#Define a new function called qes
def qes(a1,b1,c1):
ans1=((-1*b1)+np.lib.scimath.sqrt((b1**2)-(4*a1*c1)))/(2*a1)
ans2=((-1*b1)-np.lib.scimath.sqrt((b1**2)-(4*a1*c1)))/(2*a1)
return ans1,ans2
#With the defined function perform a calculation and print the answer
ans1,ans2=qes(1,2,1)
print('Answer 1 is: ',ans1,' Answer 2 is: ',ans2)
在pythonx^2中,可以是x**2、x*x或者pow(x,2)。 其他人给了你很好的建议,我想补充一些。 二次方程:ax^2 + bx + c = 0(调整使方程为零!) 有多项式项 ax^2, bx, c;其系数为a,b。 c是常数项。 然后是二次公式:(-b + sqrt(b ^ 2 - 4 * a * c)) / 2a;求解 x.
以上所有内容都正确出现在您的代码中 但是,如果解决方案位于复数集 {C} 中,您将遇到麻烦。
这可以通过测量 "discriminant" 来轻松解决。
判别式为 b^2 - 4ac,并且
- 若判别式=0,则只有一种解法
- 如果判别式 > 0,则有两个实数解
- 如果判别式<0,则有两个复数解
考虑到以上条件,代码应该是这样的:
import math
print ("Quadratic Equation Calculator")
a = float(input("Enter the coefficient of term `x ^ 2` (degree 2), [a]: "))
b = float(input("Enter the coefficient of term `x` (degree 1), [b]: "))
c = float(input("Enter the constant term (degree 0), [c]: "))
discriminant = pow(b, 2) - 4.0 * a * c
if discriminant == 0:
root1 = root2 = (-1 * b) / (2 * a)
elif discriminant < 0:
root1 = ((-1 * b) - math.sqrt(-discriminant) * 1j) / (2 * a)
root2 = ((-1 * b) + math.sqrt(-discriminant) * 1j) / (2 * a)
else:
root1 = ((-1 * b) - math.sqrt(discriminant)) / (2 * a)
root2 = ((-1 * b) + math.sqrt(discriminant)) / (2 * a)
print (root1)
print (root2)
类似的 SO 答案:
下面我更改了代码以支持 pythonic 编程,因为 numpy 可以找到多项式(二次和高阶)方程的根。 numpy.roots
import numpy as np
print ("Quadratic Equation Calculator")
a = float(input("Enter the coefficient of term `x ^ 2` (degree 2), [a]: "))
b = float(input("Enter the coefficient of term `x` (degree 1), [b]: "))
c = float(input("Enter the constant term (degree 0), [c]: "))
coeffs = [a, b, c] # or d, e and so on..
roots = np.roots(coeffs)
print (roots)
感谢大家的支持。但我已经回答了我的问题。我想我没有详细说明我遇到的问题。但我知道我使用什么代码。我制作的这段代码不仅用于二次方程问题,而且可以帮助您找到二次方程的最小点。 代码:
import math
print("Quadratics Equation Calculator")
repeat = "yes"
while repeat.lower() == "yes":
V = float(input("Enter how many Variables do you have in the question: "))
print(V)
if V == 3:
a = float(input("Enter the first variable: "))
print(a)
b = float(input("Enter the second variable: "))
print(b)
c = float(input("Enter the third variable: "))
print(c)
root_1 = ((-1 * b) + math.sqrt((b ** 2) - (4 * a * c))) / (2 * a)
root_2 = ((-1 * b) - math.sqrt((b ** 2) - (4 * a * c))) / (2 * a)
print(f"The first result is {root_1} to {round(root_1)}")
print(f"The second result is {root_2} to {round(root_2)}")
graph = str(input("Want minimum point: "))
if graph == "yes":
x = ((b / 2) * -1)
y = c - b ** 2/4*a
print(f"The minimum point is ({x}, {y})")
elif graph == "no":
repeat = str(input("Do you wish to continue?: "))
if repeat == "no":
break
else:
repeat = str(input("Do you wish to continue?: "))
if repeat == "no":
break
elif V == 2:
a = float(input("Enter the first variable: "))
print(a)
b = float(input("Enter the second variable: "))
print(b)
root_1 = ((-1 * b) + math.sqrt((b ** 2) - (4 * a * 0))) / (2 * a)
root_2 = ((-1 * b) - math.sqrt((b ** 2) - (4 * a * 0))) / (2 * a)
print(f"The first result is {root_1} to {round(root_1)}")
print(f"The second result is {root_2} to {round(root_2)}")
else:
print("INVALID ERRORS, CHECK AGAIN YOUR VARIABLES")
print("Type yes or no.")
repeat = str(input("Do you wish to continue?: "))
if repeat == "no":
break
感谢你们给我的所有答案以及它的公式。
X^2 是 python 中的 bit-wise XOR 运算符。你可以将你的等式重写为 x**2(指数),x*x 或 pow(x,2) in python