标签: polynomials

在R公式中,为什么我必须在幂项上使用I()函数,比如y~I(x ^ 3)

我试图了解使用波浪号运算符和相关函数.我的第一个问题是为什么I()需要用来指定算术运算符?例如,这2个图产生不同的结果(前者有一条直线,后者有预期的曲线)

x <- c(1:100)
y <- seq(0.1,10,0.1)

plot(y~x^3)
plot(y~I(x^3))
Run Code Online (Sandbox Code Playgroud)

此外,以下两个图也产生预期结果

plot(x^3, y)
plot(I(x^3), y)
Run Code Online (Sandbox Code Playgroud)

我的第二个问题是,也许我一直在使用的例子太简单了,但我不明白~实际应该在哪里使用.

r formula tilde polynomials

44
推荐指数
1
解决办法
3万
查看次数

R线性回归公式中的大写字母"I"是什么意思?

我无法找到这个问题的答案,主要是因为使用独立字母(如"我")搜索任何内容都会导致问题.

"I"在这样的模型中做了什么?

data(rock)
lm(area~I(peri - mean(peri)), data = rock)
Run Code Online (Sandbox Code Playgroud)

考虑到以下情况不起作用:

lm(area ~ (peri - mean(peri)), data = rock)
Run Code Online (Sandbox Code Playgroud)

没有问题:

rock$peri - mean(rock$peri)
Run Code Online (Sandbox Code Playgroud)

关于如何自己研究这个问题的任何关键词也会非常有帮助.

regression r formula polynomials

19
推荐指数
1
解决办法
9935
查看次数

具有整数系数的多项式的快速因式分解

我想在整数环上快速分解多项式(原始多项式具有整数系数,并且所有因子都具有整数系数).

例如,我想分解4*x^6 + 20*x^5 + 29*x^4 - 14*x^3 - 71*x^2 - 48*x(2*x^4 + 7*x^3 + 4*x^2 - 13*x - 16)*(2*x + 3)*x.

我应该选择哪种算法来避免代码的复杂性和方法的低效率(谈论算术运算和内存消耗的总量)?

我将使用C编程语言.

例如,可能有一些好的算法用于整数环模数素数的多项式因式分解?

c algorithm performance polynomial-math polynomials

13
推荐指数
1
解决办法
1469
查看次数

多项式的根是mod的素数

我正在寻找一种快速算法来找到素数有限域中单变量多项式的根.

也就是说,如果 (n> 0)那么对于给定的素数p ,找到满足的算法.f = a0 + a1x + a2x2 + ... + anxnr < pf(r) = 0 mod p

我发现了Chiens搜索算法https://en.wikipedia.org/wiki/Chien_search但是我无法想象这对于大于20位的素数来说是快速的.有没有人有使用Chien的搜索算法的经验或知道更快的方法?这是否有一个sympy模块?

algorithm sympy polynomial-math polynomials

10
推荐指数
1
解决办法
3625
查看次数

多项式近似的比率

我试图将多项式拟合到我的数据集,看起来像那样(完整的数据集在帖子的末尾):

该理论预测曲线的表述为:

看起来像这样(对于x在0和1之间):

当我尝试通过以下方式在R中创建线性模型时:

mod <- lm(y ~ poly(x, 2, raw=TRUE)/poly(x, 2))
Run Code Online (Sandbox Code Playgroud)

我得到以下曲线:

这与我的期望大不相同.您是否知道如何根据这些数据拟合一条新曲线,以便它与理论预测的曲线类似?此外,它应该只有一个最小值.

完整数据集:


x值向量:

x <- c(0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.10, 0.11, 0.12,
 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22, 0.23, 0.24, 0.25,
 0.26, 0.27, 0.28, 0.29, 0.30, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38,
 0.39, 0.40, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.50, 0.51,
 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.60, 0.61, 0.62, 0.63, …
Run Code Online (Sandbox Code Playgroud)

regression r curve-fitting approximation polynomials

10
推荐指数
1
解决办法
367
查看次数

使用根多项式回归使用颜色检查器进行颜色校准未给出正确结果

对于量化项目,我需要经过颜色校正的图像,无论光照条件如何,都能一遍又一遍地产生相同的结果。

每个图像都包含一个 X-Rite 颜色检查器,其颜色以矩阵格式已知:

Reference=[[170, 189, 103],[46, 163, 224],[161, 133, 8],[52, 52, 52],[177, 128, 133],[64, 188, 157],[149, 86, 187],[85, 85, 85],[67, 108, 87],[108, 60, 94],[31, 199, 231],[121, 122, 122], [157, 122, 98],[99, 90, 193],[60, 54, 175],[160, 160, 160],[130, 150, 194],[166, 91, 80],[70, 148, 70],[200, 200, 200],[68, 82, 115],[44, 126, 214],[150, 61, 56],[242, 243, 243]]
Run Code Online (Sandbox Code Playgroud)

对于每张图像,我为作为示例的色卡计算相同的矩阵:

Actual_colors=[[114, 184, 137], [2, 151, 237], [118, 131, 55], [12, 25, 41], [111, 113, 177], [33, 178, 188], [88, 78, 227], [36, 64, 85], [30, …
Run Code Online (Sandbox Code Playgroud)

python opencv colors calibration polynomials

9
推荐指数
1
解决办法
940
查看次数

使用 Numpy 获取多项式的系数

numpy.polynomial.polynomial.Polynomial我试图获取通过以下方法获得的系数fit

import numpy.polynomial as poly

x = [1, 2, 3, 4, 5]
y = [16, 42.25, 81, 132.25, 196]

c = poly.Polynomial.fit(x, y, deg = 2)
print(c(5))
print(c)
Run Code Online (Sandbox Code Playgroud)

这个小程序打印

196.00000000000006
poly([81. 90. 25.])
Run Code Online (Sandbox Code Playgroud)

c(5)这是多项式系数(即2.257.5和 )的正确值,但不是正确值6.25。如何获得实际系数?

numpy polynomials coefficients

9
推荐指数
1
解决办法
5783
查看次数

有效的方法来获取向量的权力

我写了一个代码,数字上使用勒让德多项式达到某个高n阶.例如:

....
case 8 
p = (6435*x.^8-12012*x.^6+6930*x.^4-1260*x.^2+35)/128; return
case 9 
...
Run Code Online (Sandbox Code Playgroud)

如果向量x很长,这可能会变慢.我看到说x.^4和之间存在性能差异,x.*x.*x.*x并且我认为可以使用它来改进我的代码.我用过timeit并发现了:

x=linspace(0,10,1e6);
f1= @() power(x,4)
f2= @() x.4;
f3= @() x.^2.^2
f4= @() x.*x.*x.*x
Run Code Online (Sandbox Code Playgroud)

f4更快的通过一个因子2比其余部分.然而,当我去x.^6那里(x.*x.*x).^2和之间的差别很小 x.*x.*x.*x.*x.*x(而所有其他选项都较慢).

有没有告诉我们什么是最有效的方法来获取向量的力量?你能解释为什么性能会有这么大的差异吗?

arrays matlab polynomials

8
推荐指数
1
解决办法
940
查看次数

Bairstow的方法初始二次近似

Bairstow的根寻找方法需要对二次因子进行非常好的初始近似以便收敛.

我尝试了各种常数,随机数,尾随系数中的分数(-a1/a2,-a0/a2;林?)无效.

请问,有没有人知道选择这些因素的好方法?

例如:

1*x^8 + 118*x^7 + 1*x^6 + 2*x^5 - 2*x^4 - 3*x^3 + 3*x^2 + 2*x + 1
Run Code Online (Sandbox Code Playgroud)

找到根的初始近似值为0.1,0.2需要3倍,而0.2,2.0.

要么:

1*x^8 - 36*x^7 + 546*x^6 - 4536*x^5 + 22449*x^4 - 67284*x^3 + 118124*x^2 - 109584*x + 40320
Run Code Online (Sandbox Code Playgroud)

0.1,1.2比0.1,0.1略长(~50%)


尝试使用Cauchy的边界进行初始二次近似:

R=0
for i in range(1,n+1):
    R=max(abs(a[i]/a[0]),R)
R=1+R
phi=2*pi*random()
x1=complex(R*cos(phi),R*sin(phi))
x2=complex(x1.real,-x1.imag)
r=-x1.real-x2.real
s=(x1*x2).real
Run Code Online (Sandbox Code Playgroud)

不幸的是,这并没有真正加速融合.

math polynomial-math polynomials

8
推荐指数
1
解决办法
876
查看次数

关于CRC基础知识的一些问题

我是一名电子工程师,并没有发现从纯粹的数学角度考虑CRC非常重要.但是,我有以下问题:

  1. 当我们计算CRC时,为什么要在消息中添加n个零,n是生成多项式的次数?我已经在modulo-2 long division以及CRC的硬件实现中看到了这一点

  2. 为什么我们希望生成多项式可以被(x + 1)整除?

  3. 为什么我们希望生成多项式不能被x整除?

checksum crc modulo polynomials

8
推荐指数
1
解决办法
580
查看次数