Mathematica函数:怎么把Collect的优点和HornerForm结合在一起。
HornerForm产生的秦九韶式在数值计算上有优势,HornerForm还能处理形如poly1/poly2的有理式。而Collect函数的优点是能对系数用函数h处理,通常是因式分解和化简;变量表var可以使用下横线匹配,更可以用函数体Log[],Tan[]当变量不仅是单一变量。
怎么令它们的优点结合呢。
抛砖引玉,以下代码不能用函数体当变量,不能处理形如poly1/poly2的有理式。仅能对符号系数用函数h处理。
HornerFormPlus:=Collect//HornerForm[#,vars]&
当然还有更贪心的想法是函数h计算时能并行,我用过MonomialList分成列表List,每项并行计算h后求和再HornerForm。MonomialList的问题是对expr兼容性更低。 用递归重写HornerForm实现了期望功能,就是效率慢
页:
[1]