我已经阅读了这个问题的答案并且它们非常有用,但我需要特别是在R中提供帮助.
我在R中有一个示例数据集,如下所示:
x <- c(32,64,96,118,126,144,152.5,158)
y <- c(99.5,104.8,108.5,100,86,64,35.3,15)
Run Code Online (Sandbox Code Playgroud)
我想为这些数据拟合一个模型y = f(x).我希望它是一个三阶多项式模型.
我怎么能在R?
另外,R可以帮我找到最合适的模型吗?
所以我的设计结合了CRC32C校验和,以确保数据没有被损坏.我决定使用CRC32C,因为如果运行软件的计算机支持SSE 4.2,我可以同时拥有软件版本和硬件加速版本.
我将使用英特尔的开发人员手册(第2A卷),它似乎提供了该crc32指令背后的算法.但是,我运气不好.英特尔的开发人员指南说明如下:
BIT_REFLECT32: DEST[31-0] = SRC[0-31]
MOD2: Remainder from Polynomial division modulus 2
TEMP1[31-0] <- BIT_REFLECT(SRC[31-0])
TEMP2[31-0] <- BIT_REFLECT(DEST[31-0])
TEMP3[63-0] <- TEMP1[31-0] << 32
TEMP4[63-0] <- TEMP2[31-0] << 32
TEMP5[63-0] <- TEMP3[63-0] XOR TEMP4[63-0]
TEMP6[31-0] <- TEMP5[63-0] MOD2 0x11EDC6F41
DEST[31-0] <- BIT_REFLECT(TEMP6[31-0])
Run Code Online (Sandbox Code Playgroud)
现在,据我所知,我已经完成了TEMP6正确开始的所有事情,但我想我可能要么误解多项式除法,要么错误地实现它.如果我的理解是正确的,那么1 / 1 mod 2 = 1,0 / 1 mod 2 = 0两个除零都是未定义的.
我不明白的是64位和33位操作数的二进制除法是如何工作的.如果SRC是0x00000000,并且DEST是0xFFFFFFFF,TEMP5[63-32]将所有设置位,而TEMP5[31-0]将全部取消设置位.
如果我要使用来自TEMP5分子的位,那么将有30个除以零,因为多项式 …
我试图在R中的以下代码中匹配正交多项式:
X <- cbind(1, poly(x = x, degree = 9))
Run Code Online (Sandbox Code Playgroud)
但是在python中.
为此,我实现了自己的方法来给出正交多项式:
def get_hermite_poly(x,degree):
#scipy.special.hermite()
N, = x.shape
##
X = np.zeros( (N,degree+1) )
for n in range(N):
for deg in range(degree+1):
X[n,deg] = hermite( n=deg, z=float(x[deg]) )
return X
Run Code Online (Sandbox Code Playgroud)
虽然它似乎不匹配它.有人知道它使用的正交多项式的类型吗?我尝试在文档中搜索但没有说.
为了给出一些上下文,我试图在python中实现以下R代码(https://stats.stackexchange.com/questions/313265/issue-with-convergence-with-sgd-with-function-approximation-using-polynomial- lin/315185#comment602020_315185):
set.seed(1234)
N <- 10
x <- seq(from = 0, to = 1, length = N)
mu <- sin(2 * pi * x * 4)
y <- mu
plot(x,y)
X <- cbind(1, poly(x = x, degree …Run Code Online (Sandbox Code Playgroud) 我在这里有一个心理障碍,而代数并不是我的事,你能告诉我如何重新编写下面的JavaScript代码来推导变量,c用a和b?:
a = Math.pow(b, c);
c = ?
Run Code Online (Sandbox Code Playgroud)
谢谢!
所以我用三种不同的方法写下了用于评估多项式的代码.霍纳的方法应该是最快的,而天真的方法应该是最慢的,对吗?但是,为什么计算它的时间不是我所期望的呢?对于itera和naive方法,计算时间有时会变得完全相同.它出什么问题了?
import numpy.random as npr
import time
def Horner(c,x):
p=0
for i in c[-1::-1]:
p = p*x+i
return p
def naive(c,x):
n = len(c)
p = 0
for i in range(len(c)):
p += c[i]*x**i
return p
def itera(c,x):
p = 0
xi = 1
for i in range(len(c)):
p += c[i]*xi
xi *= x
return p
c=npr.uniform(size=(500,1))
x=-1.34
start_time=time.time()
print Horner(c,x)
print time.time()-start_time
start_time=time.time()
print itera(c,x)
print time.time()-start_time
start_time=time.time()
print naive(c,x)
print time.time()-start_time
Run Code Online (Sandbox Code Playgroud)
以下是一些结果:
[ 2.58646959e+69]
0.00699996948242
[ 2.58646959e+69]
0.00600004196167 …Run Code Online (Sandbox Code Playgroud) 在R中,如何表示多项式表达式并使用数字向量对象进行多项式数学运算?例如:
x1 <- c(2,1) # 2 + x
x2 <- c(-1,3) # -1 + 3*x
Run Code Online (Sandbox Code Playgroud)
并希望:
x1 * x2 # to return -2 + 5*x + 3*x^2
Run Code Online (Sandbox Code Playgroud)
注意:我今天早上回答了一个问题,然后海报显然删除了它(让我想知道它是否是作业.)所以我从记忆中重新发布了这个问题.
我正在尝试使用NTL中的ZZ_pEX类来执行4096度的多项式的乘法运算.然而,它返回错误"Polynomial对于FFT来说太大了",我找不到让它工作的方法(甚至可以帮助NTL文档的东西),但幻灯片中的评论说它可以修复(不说怎么样!).
有人找到了解决方法吗?
我正在尝试找到一种方法来计算Java中具有复系数的多项式的根(即,相当于在MATLAB中用根()轻松完成的事情).
我准备重新编码构建伴随矩阵的根查找算法,然后使用广义特征值分解来查找根,但为此我需要一个处理复值矩阵运算的库.
我浏览了一段时间,似乎没有任何说服力,我认为这很奇怪.然后,我想问你:
你知道(稳定的)Java库在COMPLEX系数定义的多项式上执行根查找吗?
你知道一个(稳定的)Java库在COMPLEX值矩阵上执行evd,svd,inverse等吗?
注意:我已经看过JAMA(不处理复杂),Michael Thomas Flanagan的Java Scientific Library(不再可用),colt(似乎没有处理复杂),高效的Java Matrix Library(也没有复杂),DDogleg Numerics (不处理具有复系数的多项式),JScience(不清楚evd是否可用)和Apache的通用数学(如果它们允许复杂矩阵则不清楚,如果是,则可以使用evd).
我想在整数环上快速分解多项式(原始多项式具有整数系数,并且所有因子都具有整数系数).
例如,我想分解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编程语言.
例如,可能有一些好的算法用于整数环模数素数的多项式因式分解?
我想找到a系数的最小二乘解
z = (a0 + a1*x + a2*y + a3*x**2 + a4*x**2*y + a5*x**2*y**2 + a6*y**2 +
a7*x*y**2 + a8*x*y)
Run Code Online (Sandbox Code Playgroud)
给定的阵列x,y和z长度20的基本上我正在寻找的等效numpy.polyfit但对于一个二维多项式.
这个问题很相似,但解决方案是通过MATLAB提供的.
polynomial-math ×10
python ×3
r ×3
c++ ×2
math ×2
algebra ×1
algorithm ×1
c ×1
crc32 ×1
fft ×1
function ×1
iteration ×1
java ×1
javascript ×1
loops ×1
matrix ×1
ntl ×1
numpy ×1
performance ×1
polynomials ×1