如何确定求积规则的准确顺序

计算科学 正交
2021-12-26 04:37:31

这里有点简单的问题。最近,我正在使用高斯正交规则评估一些线积分[1,1]横坐标在哪里xi只是勒让德多项式的根Pn(x)权重是

wi=2(1xi2)[Pn(xi)]2

令人尴尬的是,我花了一整天的时间试图调试我的代码,并煞费苦心地手工进行线积分进行比较,然后才意识到我没有使用足够的正交点。

从维基页面(http://en.wikipedia.org/wiki/Gaussian_quadrature#Error_estimates),我认为高斯求积规则n对多项式是准确的2n1.

我使用的是 12 点规则,而我的被积函数都是阶数最多为 3 的多项式。事实证明这还不够,但是将正交点的数量增加到 20 可以解决所有问题。

任何人都可以解释或建议一些关于正交规则顺序的确切含义的阅读吗?

1个回答

如果您的积分最多为 3,那么肯定存在实现错误。此外,你所有的权重都应该是正数。因此,您对权重的定义中的减号是错误的。

这是一个 python 代码片段,其中我在机器精度内与 2 个正交点集成了 3 次任意多项式。

import numpy.polynomial.legendre as leg
import numpy.polynomial
import numpy as np

def F(x,c):
    V=numpy.polynomial.polynomial.polyvander(x,c.size)
    i=1./(np.arange(c.size)+1) # integration factor                          
    return np.dot(i*V[:,1:],c)                      

def f(x,c):
    V=numpy.polynomial.polynomial.polyvander(x,c.size-1)
    return np.dot(V,c)                          

[x,w]=leg.leggauss(2)

c=np.random.randn(4)
a1=F(1,c)-F(-1,c)
a2=np.sum(f(x,c)*w)
print a1
print a2
print a1-a2

Out[13]: array([ 0.])