绘制多项式

时间:2013-01-14 12:11:54

标签: algorithm

我有一个多项式形式:

  

w(x) = a +b(x-x1) + c(x-x1)^2*(x-x2) + d(x-x1)^2*(x-x2)^2+....

有人知道计算这个多项式的快速算法吗?

我想绘制这个多项式,但首先我必须计算这个值,但我找不到任何快速而有趣的方法。

2 个答案:

答案 0 :(得分:0)

我认为没有比遍历整个多项更快的算法。由于您的描述并不明显,您构成条款的规则究竟是什么,我无法提供解决方案,但如果您自己提出解决方案,那就更好了。

从我看到的每个连续项的x依赖部分是通过乘以你到目前为止的另一个单项形成的。如果是这样,请保持循环迭代之间的值。

答案 1 :(得分:0)

编写解析器以获取表达式的各个元素,例如abxx1等,2,{{ 1}},*+^(等。

然后使用Shunting-yard algorithm将表达式转换为Reverse Polish Notation

然后使用堆栈或树来评估它。

如果您打算多次评估同一个表达式,您可能希望消除常见的子表达式(例如)多次重复,您可以只计算一次)。有办法做到这一点。但是在你去那里之前,先看看如果没有这样的优化你得到的东西真的不够。