algorithm - 如何将多项式变换到另一个坐标系?

标签 algorithm language-agnostic math geometry transform

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

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

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

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

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

最佳答案

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

你有一个多项式函数

f(x) = Cnxn + Cn-1xn-1 + ... + C0

[我把 A, B, ... Z 改成了 Cn, Cn-1, ..., C0以更轻松地使用下面的线性代数。]

然后您还有一个转换,例如:z = ax + b,您希望使用它来查找相同多项式的系数,但根据z:

f(z) = Dnzn + Dn-1zn-1 + ... + D0

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

d = T * c ,

其中 d 是一个列向量,顶部条目 D0 到最后一个条目 Dn,列向量 cCi 系数相似,而矩阵 T 有 ( i,j)-th [ith 行,jth 列] 条目 tij

tij = (j 选择 i) ai bj-i

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

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

关于algorithm - 如何将多项式变换到另一个坐标系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/141422/

相关文章:

language-agnostic - 设计模式 : managing a limited number of a resource

language-agnostic - 字符串比较 "Logic"

Javascript (Math.pow(2,31) | 0) 产生负数

algorithm - 一种高效的高效算法,可以找到 N 张牌的所有可能手牌? (OFC幻想世界)

C++ : How to calculate modulo of a number raised to large power?

算法 : Master Theorem

algorithm - 带循环的递归函数的复杂性

math - float 学有问题吗?

C++ pow() 函数在放入函数时会改变行为

matlab - Fminsearch Matlab(非线性回归)