我有一个小的网络应用程序,需要3点,并计算抛物线函数或指数函数.下面是抛物线的代码:
@app.route("/calculate/parabola", methods=["POST"])
def calculate_parabola():
content = request.get_json()
p1_X = content["p1_X"]
p1_Y = content["p1_Y"]
p2_X = content["p2_X"]
p2_Y = content["p2_Y"]
p3_X = content["p3_X"]
p3_Y = content["p3_Y"]
a, b, c = symbols("a,b,c")
eq1 = Eq((a*(p1_X**2)+b*p1_X+c),p1_Y)
eq2 = Eq((a*(p2_X**2)+b*p2_X+c), p2_Y)
eq3 = Eq((a*(p3_X**2)+b*p3_X+c), p3_Y)
eq_result = solve((eq1, eq2, eq3), (a,b,c))
print(eq_result)
returnJSON = {
"function": f"{eq_result[a]}*x^2+{eq_result[b]}*x+{eq_result[c]}",
"success": 1
}
return returnJSON
这很好用.But here's the problem:
@app.route("/calculate/exponential-function", methods=["POST"])
def calculate_exponential_function():
print("calculating...")
content = request.get_json()
p1_X = content["p1_X"]
p1_Y = content["p1_Y"]
p2_X = content["p2_X"]
p2_Y = content["p2_Y"]
p3_X = content["p3_X"]
p3_Y = content["p3_Y"]
a, b, c = symbols("a,b,c", real=True)
# eq1 = Eq((a*(b**p1_X)+c), p1_Y)
# eq2 = Eq((a*(b**p2_X)+c), p2_Y)
# eq3 = Eq((a*(b**p3_X)+c), p3_Y)
eq1 = Eq((a*(b**p1_X)+c), p1_Y)
eq2 = Eq((a*(b**p2_X)+c), p2_Y)
eq3 = Eq((a*(b**p3_X)+c), p3_Y)
# eq_result = solve((eq1, eq2, eq3), (a,b,c))
eq_result = solve((eq1, eq2, eq3), (a,b,c))
print(eq_result)
returnJSON = {}
if(eq_result == []):
returnJSON = {
"success": 0
}
else:
returnJSON = {
"function": f"{eq_result[a]}*({eq_result[b]}**x)+{eq_result[c]}",
#"function": f"{eq_result[a]}*x+{eq_result[c]}",
"success": 1
}
return returnJSON
如果一切正常,"eq_result"应该是这样的:
{a: 5/6, b: -1/6, c: 1}
但是当执行calculate_exponential_function()
时,"eq_result"输出(例如):
[(-27/5, -2/3, 32/5), (1, 2, 0)]
我做错什么了吗?如果你需要更多的信息就告诉我.