我试图找到曲线$ y = x ^ 2 + 3x + 2 $和$ y = x ^ 2 + 2x + 1 $之间的交点。为此,我编写了以下python程序:
-0.999999996714
end
控制台显示:
y_1=x**2+3*x+2
我有三个问题。
1)为什么我必须在for语句中包含y_2=x**2+2*x+1
和from numpy import*
?为什么我不能简单地在行np.arange
之后包含它们?
2)当我将if sum(order) > sum(stock):
return False, []
中的步骤指定为4位小数时,为什么输出为12位小数?
3)为什么不输出-1.0000?
请放轻松我,我刚刚开始使用python并且认为我会尝试用它来解决一些联立方程式。
谢谢,
杰克
答案 0 :(得分:2)
[&]+
和y_1
行计算特定值,而不是定义函数。普通Python没有内置的符号方程概念。 (虽然你可以用各种方式实现符号方程。)y_2
语句没有舍入,没有这样做的具体说明,因此您可以获得系统正在使用的值,即使这并不是您要求的值。答案 1 :(得分:1)
1)首先,你有(可能)多余的导入语句:
from numpy import *
import numpy as np
第一个语句从包中导入__all__
变量,第二个语句导入numpy包,然后将其别名为np
。通常的惯例是将numpy导入np
,所以我会删除你的第一行并保留第二行。
现在为了更清楚地回答您的问题,您需要在for循环中包含方程,因为x
使用np.array
循环表示for
中的每个元素。
2和3)该值可能被解释为方程式中的浮点数。舍入误差是python(和大多数编程语言)如何解释分数所固有的。 See more here。