【发布时间】:2014-05-30 07:52:47
【问题描述】:
我需要用 C++ 编写函数,它可以有效地找到给定有理函数 (P(x) / Q(x)) 的泰勒级数的系数。
函数参数将是多项式的幂(在分母和分母上相等),具有多项式系数和展开项数的两个数组。
我的想法是这样的。 考虑身份
P(x) / Q(x) = R(x) + ...
其中R(x) 是一个多项式,其项数等于我需要找到的系数数。然后我可以将两边乘以Q(x) 并得到
P(x) = R(x) * Q(x)
R(x) * Q(x) - P(x) = 0
因此,所有系数都应为零。这是具有 O(n^3) 算法求解的方程组。 O(n^3) 没有我想要的那么快。
有没有更快的算法?
我知道级数的系数满足线性递推关系。 这让我觉得O(n)算法是可能的。
【问题讨论】:
-
@DavidEisenstat 谢谢,这简化了任务。但是我怎样才能找到带有长除法的
1 / Q(x)?我以为除法只能找到商和余数。 -
@DavidEisenstat 谢谢!避免分离也会加快速度,因为乘法将是 O(nm)*,其中 n - 项数,m - 度。顺便说一句,我不明白为什么我的答案被标记为过于宽泛,它需要一种特定的算法。
-
@DavidEisenstat 你去吧 :) 也许我们应该开始一个关于元 [algorithm] 状态的话题。关于是否将这些问题转移到 CS 上,肯定需要做出一些一般性决策
-
@NiklasB。随意。我可能会参与,但 (i) 我认为 MSO 严重受损,并且 (ii) 我不喜欢那些 SO rep/MSO 代表比率为个位数(或更糟,小于 1)的人的回答。
-
@DavidEisenstat 有了它,你的第二个参数不再有效:)
标签: c++ algorithm taylor-series