我试图了解使用波浪号运算符和相关函数.我的第一个问题是为什么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)
我的第二个问题是,也许我一直在使用的例子太简单了,但我不明白~
实际应该在哪里使用.
我无法找到这个问题的答案,主要是因为使用独立字母(如"我")搜索任何内容都会导致问题.
"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)
关于如何自己研究这个问题的任何关键词也会非常有帮助.
我想在整数环上快速分解多项式(原始多项式具有整数系数,并且所有因子都具有整数系数).
例如,我想分解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编程语言.
例如,可能有一些好的算法用于整数环模数素数的多项式因式分解?
我正在寻找一种快速算法来找到素数有限域中单变量多项式的根.
也就是说,如果 (n> 0)那么对于给定的素数p ,找到满足的算法.f = a0 + a1x + a2x2 + ... + anxn
r < p
f(r) = 0 mod p
我发现了Chiens搜索算法https://en.wikipedia.org/wiki/Chien_search但是我无法想象这对于大于20位的素数来说是快速的.有没有人有使用Chien的搜索算法的经验或知道更快的方法?这是否有一个sympy模块?
我试图将多项式拟合到我的数据集,看起来像那样(完整的数据集在帖子的末尾):
该理论预测曲线的表述为:
看起来像这样(对于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) 对于量化项目,我需要经过颜色校正的图像,无论光照条件如何,都能一遍又一遍地产生相同的结果。
每个图像都包含一个 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) 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.25
、7.5
和 )的正确值,但不是正确值6.25
。如何获得实际系数?
我写了一个代码,数字上使用勒让德多项式达到某个高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
(而所有其他选项都较慢).
有没有告诉我们什么是最有效的方法来获取向量的力量?你能解释为什么性能会有这么大的差异吗?
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)
不幸的是,这并没有真正加速融合.
我是一名电子工程师,并没有发现从纯粹的数学角度考虑CRC非常重要.但是,我有以下问题:
当我们计算CRC时,为什么要在消息中添加n个零,n是生成多项式的次数?我已经在modulo-2 long division以及CRC的硬件实现中看到了这一点
为什么我们希望生成多项式可以被(x + 1)整除?
为什么我们希望生成多项式不能被x整除?
polynomials ×10
r ×3
algorithm ×2
formula ×2
regression ×2
arrays ×1
c ×1
calibration ×1
checksum ×1
coefficients ×1
colors ×1
crc ×1
math ×1
matlab ×1
modulo ×1
numpy ×1
opencv ×1
performance ×1
python ×1
sympy ×1
tilde ×1