【发布时间】:2014-03-07 20:33:53
【问题描述】:
感谢您对我的问题的关注 :)
我的问题是找到一种(足够有效的)算法来查找给定权重函数 f 的正交多项式。
我尝试简单地应用 Gram-Schmidt 算法,但这个算法效率不够。实际上,它需要 O(n^2) 积分。但我的目标是使用这个算法来找到函数 f 的Hankel determinants。因此,“直接”计算包括简单地计算矩阵并获取其行列式只需要 2*n - 1 个积分。
但我想使用定理说明 f 的 n 阶 Hankel 行列式是 f 的正交多项式的 n 个前导系数的乘积。原因是当 n 变大(比如大约 20)时,汉克尔行列式变得非常大,我的目标是将它除以另一个大常数(对于 n = 20,常数的阶数为 10^103)。然后我的想法是“稀释”前导系数乘积中常数的计算。
我希望有一个 O(n) 算法来计算 n 个第一个正交多项式 :) 我已经进行了一些挖掘,但在一般函数 f 的方向上没有发现任何东西(实际上 f 可以是任何平滑函数)。
编辑:我会在这里准确地说出我所说的对象是什么。
1) n 阶汉克尔行列式是方阵的行列式,它在斜对角线上是常数。例如
a b c
b c d
c d e
是一个大小为 3 x 3 的汉克尔矩阵。
2) 如果你有一个函数 f : R -> R,你可以将它的“kth moment”关联到 f,它被定义为(我会用 tex 写)f_k := \int_{\mathbb{R }} f(x) x^k dx
有了这个,你可以创建一个 Hankel 矩阵 A_n(f),它的条目是 (A_n(f)){ij} = f{i+j-2},这就是喜欢
f_0 f_1 f_2
f_1 f_2 f_3
f_2 f_3 f_4
考虑到这一点,很容易定义 f 的 Hankel 行列式,它很简单 H_n(f) := det(A_n(f))。 (当然,可以理解,f 在无穷远处有足够的衰减,这意味着所有矩都被很好地定义了。f 的典型选择可以是高斯 f(x) = exp(-x^2),或者任何连续的在一组紧凑的 R 上的函数...)
3) 我所说的 f 的正交多项式是一组多项式 (p_n),使得
\int_{\mathbb{R}} f(x) p_j(x) p_k(x) 如果 j = k 为 1,否则为 0。
(之所以这样称呼它们,是因为它们形成多项式向量空间关于标量积的标准正交基
(p|q) = \int_{\mathbb{R}} f(x) p(x) q(x) dx
4) 现在,由于Gram-Schmidt algorithm,您可以从配备标量积的向量空间的任何基中构建基本线性代数。这就是 n^2 集成的来源。您从基 1、x、x^2、...、x^n 开始。然后,您需要 n(n-1) 个积分才能使该族正交,并且还需要 n 个积分才能对它们进行归一化。
5) 有一个定理说如果 f : R -> R 是一个在无穷远处有足够衰减的函数,那么我们有它的汉克尔行列式 H_n(f) 等于
H_n(f) = \prod_{j = 0}^{n-1} \kappa_j^{-2}
其中 \kappa_j 是 f 的第 j+1 个正交多项式的前导系数。
感谢您的回答!
(PS:我标记了 octave 是因为我在 octave 中工作,所以运气好一点(但我对此表示怀疑),有一个内置函数或一个包已经完成了管理这种想法)
【问题讨论】:
-
您的问题陈述有点令人困惑,因为您混合了连续和离散元素,并且您没有定义函数的“行列式”。
-
您需要更加具体。我们在谈论什么样的空间?雷亚尔?函数 f 将实数映射到实数或整数到实数或其他什么?这个数字 O(n^2) 来自哪里?天真的方法是在
0..n-1范围内为a,b计算f*x^a * x^b上的积分。这意味着对于k=0..2*n-2,您只需要对f*x^k进行积分,对吗? -
我编辑了我的帖子以精确说明对象是什么。我希望它现在足够精确:)