Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Numpy多项式生成_Python_Numpy - Fatal编程技术网

Python Numpy多项式生成

Python Numpy多项式生成,python,numpy,Python,Numpy,我使用numpy.polynomy.polynomy在域0到0.02上生成一个二次多项式,使其适合点(0,0)和(0.02,16) 生成的多项式对象如下所示: 所以用系数[4.8.4.] 如果运行plt.plot(*pA.linspace(),label=“升序”,color=“橙色”),结果与预期一致: 但是,如果我在另一个工具(例如WolframAlpha)上绘制此多项式,结果会完全不同: 有人能帮忙吗?相当混乱 编辑,根据要求,多项式对象可以通过以下方式获得: from numpy

我使用numpy.polynomy.polynomy在域0到0.02上生成一个二次多项式,使其适合点(0,0)和(0.02,16)

生成的多项式对象如下所示:

所以用系数
[4.8.4.]

如果运行
plt.plot(*pA.linspace(),label=“升序”,color=“橙色”)
,结果与预期一致:

但是,如果我在另一个工具(例如WolframAlpha)上绘制此多项式,结果会完全不同:

有人能帮忙吗?相当混乱

编辑,根据要求,多项式对象可以通过以下方式获得:

from numpy.polynomial import Polynomial
import matplotlib.pyplot as plt

pA = Polynomial(coef=[4.,8.,4.], domain=[0,0.02])
plt.plot(*pA.linspace(), label="Ascending", color="orange")
plt.show()

具有
coef
数组([4,8,4.])的
numpy.polymon.polymon
对象不一定表示多项式
4+8x+4x^2
。首先,根据
多项式
对象的
窗口
重新缩放输入,将
域[0]
映射到
窗口[0]
域[1]
映射到
窗口[1]
。我不知道为什么
窗口
存在,但它们确实存在

如果您让Wolfram Alpha从-1到1而不是从0到0.02绘制4+8x+4x^2,您将看到一个形状更像matplotlib输出的图形:


A
numpy.polynomy.polynomy
对象具有
coef
数组([4,8,4.])不一定表示多项式
4+8x+4x^2
。首先,根据
多项式
对象的
窗口
重新缩放输入,将
域[0]
映射到
窗口[0]
域[1]
映射到
窗口[1]
。我不知道为什么
窗口
存在,但它们确实存在

如果您让Wolfram Alpha从-1到1而不是从0到0.02绘制4+8x+4x^2,您将看到一个形状更像matplotlib输出的图形:


您可以将系数转换为未缩放和未平移的形式

In [1]: from numpy.polynomial import Polynomial as P

In [2]: p = P([4.,8.,4.], domain=[0,0.02])

In [3]: p.convert()
Out[3]: Polynomial([     0.,      0.,  40000.], [-1.,  1.], [-1.,  1.])

可以转换为系数的无比例和无位移形式

In [1]: from numpy.polynomial import Polynomial as P

In [2]: p = P([4.,8.,4.], domain=[0,0.02])

In [3]: p.convert()
Out[3]: Polynomial([     0.,      0.,  40000.], [-1.,  1.], [-1.,  1.])
例如:

p = P( [0, 0, 1], domain=[0, 1], window=[-1, 1] )
分两步执行
p(x)

1: domaintowindow: x -> w = 2x - 1  # 0 to -1, 1 to 1
2: [0 0 1] is squaring, w -> w^2

p( x ): x -> w = 2x - 1
          -> w^2  # [0 0 1]
          = (2x - 1)^2  = 4x^2 - 4x + 1  # p.convert()
因此,如果您想在另一个系统中使用多项式
p()
,则需要两个步骤-- 不要忘记
domaintowindow()

(画一个草图:
<代码> W^ 2 < /代码>窗口[-1 1 ]是抛物线,中间0,末端1; <代码> p(x)< /代码>域[0 1 ]是抛物线,中间有0,在末端有1个)

< P>一个例子:

p = P( [0, 0, 1], domain=[0, 1], window=[-1, 1] )
分两步执行
p(x)

1: domaintowindow: x -> w = 2x - 1  # 0 to -1, 1 to 1
2: [0 0 1] is squaring, w -> w^2

p( x ): x -> w = 2x - 1
          -> w^2  # [0 0 1]
          = (2x - 1)^2  = 4x^2 - 4x + 1  # p.convert()
因此,如果您想在另一个系统中使用多项式
p()
,则需要两个步骤-- 不要忘记
domaintowindow()

(画一个草图:
<代码> W^ 2 < /代码>窗口[-1 1 ]是抛物线,中间0,末端1;

<代码> p(x)< /代码>域〔0〕是一个抛物线,中间有0个,在末端有1个)

你能向我们展示你的实际代码吗?@ NeNeSalt,你可以从PNPYPY得到一个具有p=多项式(COEF=[4,8.4 ],域=[0,0.02])的等价多项式。多项式导入多项式MatPltLyb PyTrof作为PLT Pa=多项式(COEF=[4,8,4)],域= [0,0.02]plt.plot(*pA.linspace(),label=“升序”,color=“橙色”)截距应为4,因此,您绘制的方式有问题/系数没有按照您的意图进行解释。如果直线通过0,0,那么截距怎么可能是4?您可以向我们展示您的实际代码吗?@ninesalt您可以获得一个与p=多项式等价的多项式(coef=[4,8.4.],domain=[0,0.02])从numpy.polymone import polymone import matplotlib.pyplot作为plt pA=多项式(coef=[4,8,4],domain=[0,0.02])plt.plot(*pA.linspace(),label=“升序”,color=“橙色”)截距应为4,因此,绘制的方式有问题/系数没有按照您的意图进行解释。如果直线通过0,0Oh,那么截距怎么可能是4,这开始有意义了。因此,如果我想在给定域和coefs的情况下重新创建对象,pA=多项式(coef=[4,8,4.],domain=[0,0.02])会起作用吗?从文档()中,我看到windows默认为[-1,1]。因此,我不需要指定任何其他内容。好的,非常感谢,我从文档中看到域:(2,)类似数组的,可选的域。区间[domain[0],domain[1]]通过移位和缩放映射到区间[window[0],window[1]]。默认值为[-1,1]。我想我不应该太在意这个?所有3个系数都是正的,通过(0,0)的曲线在数学上是不可能的。这些系数似乎是错误的。不应该有常数项here@Bazingaa是的,但是有。。。您可以运行我在问题中发布的代码段,您将看到具有此类域和coefs(0,0)的numpy多项式的输出。但是您应该重新检查代码。您正在使拟合曲线通过(0,0),但生成的拟合正在通过(0,4)。你没闻到试衣的错误吗?哦,这开始有道理了。因此,如果我想在给定域和coefs的情况下重新创建对象,pA=多项式(coef=[4,8,4.],domain=[0,0.02])会起作用吗?从文档()中,我看到windows默认为[-1,1]。因此,我不需要指定任何其他内容。好的,非常感谢,我从文档中看到域:(2,)类似数组的,可选的域。区间[domain[0],domain[1]]通过移位和缩放映射到区间[window[0],window[1]]。默认值为[-1,1]。我想我不应该太在意这个?所有3个系数都是正的,通过(0,0)的曲线在数学上是不可能的。这些系数似乎是错误的。不应该有常数项here@Bazingaa是的,但是有。。。您可以运行我在问题中发布的代码片段,您将看到一个numpy多项式的输出,其中包含这样的域和coefs(0,0)