gpt4 book ai didi

Python:Numpy 函数没有产生正确的结果

转载 作者:行者123 更新时间:2023-11-28 22:50:16 25 4
gpt4 key购买 nike

我对使用 python/numpy 时多项式方程的结果有疑问。我已经使用具有相当小的前导系数的多项式定义了一个函数。以下是我的代码和等式:

import matplotlib.pyplot as plt
import numpy as np

def myfunction(X):
return 9.06043895*10**(-9)*X**6-1.67073053*10**(-6)*X**5 + \
7.49688511*10**(-5)*X**4 + 7.97984114*10**(-4)*X**3 - \
6.07927087*10**(-2)*X**2 - 0.415861627*X + 80.62563

Input = np.arange(0, 100, 1)
Output = myfunction(Input)

plt.plot(Input, Output)

这会产生以下情节:

enter image description here

错误似乎在于结果 Y 的计算方式,因为数组本身已关闭。 (值与图匹配,但正确)

使用 WolframAlpha 绘制的完全相同方程的示例:(从上面复制/粘贴减去\'s 和返回)

enter image description here

任何人都可以帮助阐明这个问题吗?

我觉得在处理函数时可能会有一些截断,但我觉得这个等式不是那么坏...

感谢大家的宝贵时间,希望能提供帮助。

最佳答案

这是一个 intfloat 的问题。你得到整数溢出:

>>> np.int32(100)**6
-727379968
>>> np.float32(100)**6
1000000000000.0

因为 np.arange(0, 100, 1) 给你的是整数。

你可以随心所欲地让它们 float ——我通常使用 np.arange(0, 100, 1.0),但老实说我更喜欢 np.linspace .

有了花车,我得到:

corrected curve

关于Python:Numpy 函数没有产生正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22820143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com