我有一个多项式形式:
w(x) = a +b(x-x1) + c(x-x1)^2*(x-x2) + d(x-x1)^2*(x-x2)^2+....
有人知道计算这个多项式的快速算法吗?
我想画这个多项式,但首先我必须计算值,但我找不到任何快速有趣的方法。
我有一个多项式形式:
w(x) = a +b(x-x1) + c(x-x1)^2*(x-x2) + d(x-x1)^2*(x-x2)^2+....
有人知道计算这个多项式的快速算法吗?
我想画这个多项式,但首先我必须计算值,但我找不到任何快速有趣的方法。
我认为没有比迭代整个多项式更快的算法了。由于从您的描述中不清楚您形成术语的确切规则是什么,我无法提供解决方案,但如果您自己想出它会更好。
从我所见,每个连续项的 x 相关部分是通过将您到目前为止所拥有的内容乘以另一个单项式来形成的。如果是这样,请保持循环迭代之间的值。
编写一个解析器来获取表达式的各个元素,例如a
, b
, x
,x1
等和2
, *
, +
, ^
, (
,)
等。
然后使用Shutting-yard 算法将表达式转换为Reverse Polish Notation。
然后使用堆栈或树对其进行评估。
如果您打算多次计算同一个表达式,您可能希望消除常见的子表达式(例如x - x1
,重复多次,您可能只计算一次)。也有办法做到这一点。但是在你去那里之前,先看看你没有这样的优化得到的东西是不是真的不够用。