我在用 Python 编写这个方程并让它产生正确的结果时遇到了一些麻烦:
y = 2.95710^-7 * x^4 – 2.34310^-5 * x^3 – 1.67*10^-4 * x^2 + 0.04938 * x – 1.083。
我尝试过以下代码:
y = 0.0000002957*x**4 - 0.00002343*x**3 - 0.000167*x**2 + 0.04938*x - 1.083
还有:
y = (2.957*10**-7)*x**4 - (2.343*10**-5)x**3 - (1.67*10**4)*x**2 + 0.04938*x - 1.083
任何建议都会有帮助,我认为问题可能是科学记数法或指数以及我输入它们的方式
编辑 在回答问题时,方程给出的数字与我在计算器上得到的数字不正确
你所拥有的可以很容易地以非常直接的方式转换为Python。等效的 Python 语句(在修复原始方程中的缺陷之后......见下文)是:
y = 2.95710e-7 * x**4 - 2.34310e-5 * x**3 - 1.67e-4 * x**2 + 0.04938 * x - 1.083
这仅涉及
^
字符的简单替换,您可以在指数浮点常量中将该字符替换为 e
,并使用 **
来将 x
提升到整数次幂。
为了能够更轻松地将源与结果进行比较,以下是原始方程,并进行了下面提到的一个小修正:
y = 2.95710^-7 * x^4 – 2.34310^-5 * x^3 – 1.67^-4 * x^2 + 0.04938 * x – 1.083
更新:感谢 Pranav 指出源方程中的缺陷。术语
1.67*10^-4
应更改为 1.67^-4
以匹配其他类似术语,并对生成的 Python 方程进行等效修复。这些修复已在上面进行并评论。
我总是喜欢看看在这种情况下我正在做什么。我使用
matplotlib
来绘制此函数,使用的是 此示例代码的未更改版本(除了函数和
x
上的边界)。这是我得到的 -500 到 500 之间的 x 值:
谢谢大家的回答。最有帮助的答案是使用“e”而不是科学计数法(*10^x)。