标签: polynomials

使用 Sage 多项式时出现名称错误

在这里阅读了如何使用多项式。但是当我尝试这个时

R = QQ['t']
poly = (t+1) * (t+2); poly
Run Code Online (Sandbox Code Playgroud)

Sage 给我以下错误:

NameError: name 't' is not defined
Run Code Online (Sandbox Code Playgroud)

我能做什么呢?

python sage polynomials

5
推荐指数
1
解决办法
1277
查看次数

庞加莱-米兰达定理的实现

要测试一个连续函数是否有,在给定区间 [x0, x1] 中是否有一个单根相对容易:根据中值定理,当 x0 处的函数值的符号与 x1 处的符号相反时,有 (在至少)一个根。

\n\n

例如,给定一个二次函数:

\n\n
g(x): a*x**2 + b*x + c = 0\n
Run Code Online (Sandbox Code Playgroud)\n\n

测试看起来像:

\n\n
if sign of g(x0) is opposite of sign of g(x1)\nthen return true\nelse return false\n
Run Code Online (Sandbox Code Playgroud)\n\n

对于多变量情况,有Poincar\xc3\xa9\xe2\x80\x93Miranda 定理,但我在阅读链接的文章时很难正确实现测试。

\n\n

给定两个二次二元函数:

\n\n
g1(x, y): a1*x**2 + b1*y**2 + c1*x*y + d1*x + e1*y + f1 = 0\ng2(x, y): a2*x**2 + b2*y**2 + c2*x*y + d2*x + e2*y + f2 = 0\n
Run Code Online (Sandbox Code Playgroud)\n\n

和一个矩形区域 …

algorithm math polynomial-math polynomials

5
推荐指数
1
解决办法
279
查看次数

检查 CRC 多项式的错误检测能力

我试图找出如何计算任意 CRC 多项式的错误检测能力。

我知道有各种错误检测功能可能(或可能不)适用于任意多项式:

  1. 检测单个位错误:所有 CRC 都可以执行此操作,因为这仅需要 CRC 宽度 >= 1。

  2. 突发错误检测:所有 CRC 都可以检测大小等于其宽度的突发错误。

  3. 检测奇数位错误:CRC 与多项式的偶数项(这意味着完整二进制多项式中 1 位的偶数)可以做到这一点。

  4. 检测随机位错误(取决于帧大小):我有一个现成的 C 算法,可以计算给定 HD 和多项式的最大帧大小。我没有完全理解它,但它有效。

让我们假设一个 16 位 CRC 多项式 x¹?+x¹²+x?+1 = 0x11021。该多项式可以:

  • 检测所有单位错误(与数据大小无关)。
  • 检测所有高达 16 位宽度的突发错误(与数据大小无关)。
  • 检测所有奇数个误码(因为它有 4 个多项式;与数据大小无关)。
  • 检测高达 32571 位数据大小的 3 位错误 (HD4)。

以上正确吗?

是否有额外的 CRC 错误检测功能?如果是,我如何检查(没有深入的数学知识)任意 CRC 多项式是否支持它们?

checksum crc error-detection hamming-distance polynomials

5
推荐指数
1
解决办法
9116
查看次数

使用 sympy 求解具有复系数的多项式

我对 python 很陌生,所以如果这有一个简单的修复,请原谅我。我正在尝试使用 sympy 求解具有复系数的多项式。我发现如果 k '太复杂',我会得到一个空白输出......我不太确定如何定义这意味着什么。作为第一个例子,考虑这个具有复系数的四阶多项式,

In [424]: solve(k**4+ 2*I,k)
Out[424]: 
[-2**(1/4)*sqrt(-sqrt(2)/4 + 1/2) - 2**(1/4)*I*sqrt(sqrt(2)/4 + 1/2),
 2**(1/4)*sqrt(-sqrt(2)/4 + 1/2) + 2**(1/4)*I*sqrt(sqrt(2)/4 + 1/2),
 -2**(1/4)*sqrt(sqrt(2)/4 + 1/2) + 2**(1/4)*I*sqrt(-sqrt(2)/4 + 1/2),
 2**(1/4)*sqrt(sqrt(2)/4 + 1/2) - 2**(1/4)*I*sqrt(-sqrt(2)/4 + 1/2)]
Run Code Online (Sandbox Code Playgroud)

获得输出没有问题。不过,我有兴趣解决类似的问题,

In [427]: solve(k**6 + 3*I*k**5 - 2*k**4 + 9*k**3 - 4*k**2 + k - 1,k)
Out[427]: []
Run Code Online (Sandbox Code Playgroud)

这要复杂得多,并返回一个空列表。但是,我可以使用枫树来解决这个问题,例如。另外,请注意,在删除复系数时,没有问题,

In [434]: solve(k**6 + 3*k**5 - 2*k**4 + 9*k**3 - 4*k**2 + k - 1,k)
Out[434]: 
[CRootOf(k**6 + 3*k**5 - 2*k**4 …
Run Code Online (Sandbox Code Playgroud)

python math numpy sympy polynomials

5
推荐指数
1
解决办法
1252
查看次数

使用 Python 拟合 3D 多项式曲面

我有一个 python 代码,它计算依赖于 x 和 y 值的 z 值。总的来说,我有 7 个 x 值和 7 个 y 值以及 49 个 z 值,它们排列在一个网格中(x 和 y 分别对应一个轴,z 是高度)。

现在,我想以 的形式拟合 2 次多项式曲面z = f(x,y)

我找到了一个执行此计算的 Matlab 命令。( https://www.mathworks.com/help/curvefit/fit.html )

load franke
sf = fit([x, y],z,'poly23')
plot(sf,[x,y],z)
Run Code Online (Sandbox Code Playgroud)

我想用 Python 计算我的 2 度函数的参数。我尝试使用curve_fit具有以下拟合函数的 scipy函数:

def func(a, b, c, d ,e ,f ,g ,h ,i ,j, x, y):
    return a + b * x**0 * y**0 + c * x**0 * y**1 …
Run Code Online (Sandbox Code Playgroud)

python 3d curve-fitting polynomials

5
推荐指数
1
解决办法
9009
查看次数

从 SymPy 中的给定多项式中提取系数和相应的单项式

给定一个符号多元多项式P,我需要将其系数和相应的单项式提取为列表:

def poly_decomp(P):
    ....
    return coeffs, monoms
Run Code Online (Sandbox Code Playgroud)

P是系数和单项式的点积,例如,如果P(x,y) = ax**2 + bxy + cy**2那么我们应该得到coeffs = [a, b, c]monoms = [x**2, x*y, y**2]

由于该函数是内置的,因此获取系数很容易coeffs = P.coeffs()。但是,我在获取单项式时遇到了麻烦。这里的内置函数返回一个指数列表,例如,在上面的示例中我们将得到P.monoms() = [(2,0),(1,1),(0,2)]

显然,这个想法是,提供一个变量列表var=[x,y],做类似的事情

powers = P.monoms() 
monoms = [sympy.prod(x**k for x,k in zip(var, mon)) for mon in powers ]
Run Code Online (Sandbox Code Playgroud)

然而,多项式类似乎没有提供返回变量列表的函数。我能找到的只是返回集合 和 的方法free_symbols和。因此,通过取它们的差值,可以获得一free_symbols_in_domain{a, b, c, x, y}{a, b, c} {x, y} …

python sympy python-3.x polynomials

5
推荐指数
1
解决办法
2911
查看次数

如何从多项式拟合中排除值?

我将多项式拟合到我的数据中,如图所示: 在此处输入图片说明

使用脚本:

from scipy.optimize import curve_fit
import scipy.stats
from scipy import asarray as ar,exp

xdata = xvalues
ydata = yvalues

fittedParameters = numpy.polyfit(xdata, ydata + .00001005 , 3)
modelPredictions = numpy.polyval(fittedParameters, xdata) 

axes.plot(xdata, ydata,  '-')
xModel = numpy.linspace(min(xdata), max(xdata))
yModel = numpy.polyval(fittedParameters, xModel)

axes.plot(xModel, yModel)
Run Code Online (Sandbox Code Playgroud)

我想从 3.4 到 3.55 um 中排除该区域。我怎么能在我的脚本中做到这一点?此外,我试图在原始 .fits 文件中删除 NaN。帮助将受到重视。

python scipy python-3.x polynomials

5
推荐指数
1
解决办法
1518
查看次数

如何加速sympy中非常大的多项式的展开?

我正在 sympy 中处理非常大的多项式,我需要将它们以展开形式来查找某些项和系数。然而,这些多项式的展开需要很长时间。是否有一种快速的方法来展开多项式或以不同的方式获得某些项和系数?

我可以很好地找到展开多项式中的项,但展开多项式的时间是限制因素。

多项式非常大,例如:
(x + y + z + a + b + c) ** 24

我尝试过 sympy.expand() 和 Add.as_poly()。并发现 Add.as_poly() 速度更快,但仍然很慢。

my_poly = (x + y + z + a + b + c) ** 24
# expand using Add.as_poly()
my_poly.as_poly()
# this takes multiple minutes to execute
Run Code Online (Sandbox Code Playgroud)

我希望能够搜索扩展多项式中的项以查找包含其他项的项:(
伪代码)是 x**3*y z a**2 包含在 500*x**5*y* 中*2*z*a**4*b*c**2
如果包含它,我想检索该项的系数。

我希望加快扩展速度,或者使用不同的方法在更短的时间内找到所需的术语。

python performance sympy python-3.x polynomials

5
推荐指数
1
解决办法
655
查看次数

我应该使用 numpy.polyfit 还是 numpy.polynomial.polyfit 或 numpy.polynomial.polynomial.Polynomial?

之间有什么区别

https://docs.scipy.org/doc/numpy/reference/generated/numpy.polyfit.html

https://docs.scipy.org/doc/numpy/reference/generated/numpy.polynomial.polynomial.polyfit.html

我应该在什么时候使用哪一个?

我检查了代码,但是两者都在他们的代码中使用 numpy.linalg.linalg.lstsq ,但在其他方面有所不同。

numpy.polyfit 的文档也建议使用

https://docs.scipy.org/doc/numpy/reference/generated/numpy.polynomial.polynomial.Polynomial.fit.html

什么是正确的选择?

(奖励:当我想做的第一件事是适应我的数据时,我将如何使用该类?)

python numpy polynomials

5
推荐指数
1
解决办法
1169
查看次数

Plotly:如何使用 DASH 回调将多项式拟合线添加到 plotly go.scatter 图?

我想向使用回调呈现的散点图添加多项式曲线。

以下是我的回调函数,它返回散点图。

@app.callback(Output('price-graph', 'figure'),
              [
                 Input('select', 'value')
              ]
             )
def update_price(sub):

    if sub:

        fig1 = go.Figure(

            data=[go.Scatter(

                            x=dff['Count'],
                            y=dff['Rent'],
                            mode='markers'

                            )
                  ],

            layout=go.Layout(

                title='',

                xaxis=dict(
                    tickfont=dict(family='Rockwell', color='crimson', size=14)
                ),

                yaxis=dict(

                    showticklabels = True

                ),

            )
        )

        return fig1
Run Code Online (Sandbox Code Playgroud)

结果图:

在此处输入图片说明

我可以使用sklearn.preprocessing.

from sklearn.preprocessing import PolynomialFeatures 
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import make_pipeline


dff = df.groupby(['Rent']).size().reset_index(name='Count')

fig = plt.figure(figsize=(15,8)) 

x = dff['Count']
y = dff['Rent']

model = make_pipeline(PolynomialFeatures(4), LinearRegression())
model.fit(np.array(x).reshape(-1, 1), y)
x_reg = np.arange(90)
y_reg = model.predict(x_reg.reshape(-1, 1)) …
Run Code Online (Sandbox Code Playgroud)

python plotly polynomials plotly-dash plotly.js

5
推荐指数
1
解决办法
804
查看次数