7

使用各种矩阵数学,我求解了一个方程组,得到了“n”次多项式的系数

Ax^(n-1) + Bx^(n-2) + ... + Z

然后我在给定的 x 范围内评估多项式,基本上我正在渲染多项式曲线。现在这是问题所在。我在一个我们称之为“数据空间”的坐标系中完成了这项工作。现在我需要在另一个坐标空间中呈现相同的曲线。输入/输出与坐标空间之间的转换很容易,但最终用户只对系数 [A,B,....,Z] 感兴趣,因为他们可以自己重建多项式。如何呈现第二组系数 [A',B',....,Z'],它们在不同的坐标系中表示相同形状的曲线。

如果有帮助,我正在二维空间中工作。普通的旧 x 和 y。我也觉得这可能涉及将系数乘以变换矩阵?它是否会包含坐标系之间的比例/平移因子?它会是这个矩阵的逆矩阵吗?我觉得我在朝着正确的方向前进......

更新:坐标系是线性相关的。会有有用的信息吗?

4

5 回答 5

5

问题陈述有点不清楚,所以首先我将澄清我自己对它的解释:

你有一个多项式函数

f(x) = C n x n + C n-1 x n-1 + ... + C 0

[我将 A, B, ... Z 更改为 C n , C n-1 , ..., C 0以便更轻松地使用下面的线性代数。]

然后你也有一个转换,例如:   z = ax + b   你想用它来找到相同多项式的系数,但在z方面:

f(z) = D n z n + D n-1 z n-1 + ... + D 0

这可以通过一些线性代数很容易地完成。特别是,您可以定义一个 (n+1)×(n+1) 矩阵T,它允许我们进行矩阵乘法

  d = T * c ,

其中d是具有顶部条目D 0的列向量,到最后一个条目D n,列向量cC i系数相似,并且矩阵T具有 (i,j)-th [i th row, j th column] 条目t ij

  t ij = ( j选择i ) a i b j-i

其中 ( j选择i ) 是二项式系数,当i > j时 = 0 。此外,与标准矩阵不同,我认为 i,j 每个范围从 0 到 n(通常从 1 开始)。

当您手动插入 z=ax+b 并使用二项式定理时,这基本上是写出多项式的展开和重新压缩的好方法。

于 2008-09-26T23:03:45.880 回答
3

如果您必须多次计算变量 z = ax+b 的这种变化(我的意思是许多不同的多项式),泰勒的答案是正确的答案。另一方面,如果您只需要执行一次,那么将矩阵系数的计算与最终评估相结合会快得多。最好的方法是通过 Hörner 的方法在点 (ax+b) 符号地评估您的多项式:

  • 您将多项式系数存储在向量 V 中(一开始,所有系数都为零),对于 i = n 到 0,您将其乘以 (ax+b) 并添加 C i
  • 添加 C i意味着将其添加到常数项
  • 乘以 (ax+b) 意味着将所有系数乘以 b 到向量 K 1中,将所有系数乘以 a 并将它们从常数项移到向量 K 2中,然后将 K 1 +K 2放回 V中。

这将更容易编程,计算速度更快。

请注意,将 y 更改为 w = cy+d 非常简单。最后,正如 mattiast 指出的那样,坐标的一般变化不会给你一个多项式。

技术说明:如果您仍想计算矩阵 T(由 Tyler 定义),则应使用 Pascal 规则的加权版本来计算它(这是 Hörner 计算隐含的内容):

t i,j = bt i,j-1 + 在i-1,j-1

这样,您可以简单地从左到右逐列计算它。

于 2008-09-27T12:14:29.253 回答
2

如果我正确理解您的问题,则无法保证在您更改坐标后该函数将保持多项式。例如设y=x^2,新坐标系x'=y,y'=x。现在方程变为 y' = sqrt(x'),这不是多项式。

于 2008-09-26T22:23:56.630 回答
0

你有等式:

y = Ax^(n-1) + Bx^(n-2) + ... + Z

在 xy 空间中,并且您希望它在某个 x'y' 空间中。您需要的是转换函数 f(x) = x' 和 g(y) = y'(或 h(x') = x 和 j(y') = y)。在第一种情况下,您需要求解 x 并求解 y。一旦有了 x 和 y,就可以将这些结果代入原始方程并求解 y'。

这是否微不足道取决于用于从一个空间转换到另一个空间的函数的复杂性。例如,以下等式:

5x = x' and 10y = y'

非常容易求解结果

y' = 2Ax'^(n-1) + 2Bx'^(n-2) + ... + 10Z
于 2008-09-26T19:42:34.473 回答
0

如果输入空间是线性相关的,那么是的,矩阵应该能够将一组系数转换为另一组系数。例如,如果您的“原始”x 空间中有多项式:

ax^3 + bx^2 + cx + d

你想转换成一个不同的 w 空间,其中 w = px+q

那么你想找到a'、b'、c'和d'这样

ax^3 + bx^2 + cx + d = a'w^3 + b'w^2 + c'w + d'

和一些代数,

a'w^3 + b'w^2 + c'w + d' = a'p^3x^3 + 3a'p^2qx^2 + 3a'pq^2x + a'q^3 + b'p ^2x^2 + 2b'pqx + b'q^2 + c'px + c'q + d'

所以

a = a'p^3

b = 3a'p^2q + b'p^2

c = 3a'pq^2 + 2b'pq + c'p

d = a'q^3 + b'q^2 + c'q + d'

可以重写为矩阵问题并解决。

于 2008-09-26T19:45:32.813 回答