将符号表达式转换为有理多项式

问题描述

我有一个冗长的符号表达式,它涉及有理多项式(基本算术和整数幂)。我想把它简化成一个(简单的)有理多项式。

numden 做到了,但它似乎使用了一些昂贵的优化,这可能解决了更一般的情况。在下面的示例中尝试时,它在几个小时后崩溃了——内存不足 (32GB)。 我相信即使我没有对 matlab 功能(例如 children)的 cpp 访问权限,也可以实现更高效的事情。

动机:我有一个涉及多项式的目标函数。我手动推导了它,我想验证和比较导数:我减去两个表达式,结果应该消失。 目前,我对此的兴趣是学术性的,因为实际上,我只是简单地替换一些随机表达式,得到零,这对我来说就足够了。

我会尽量找时间玩这个,我会在这里更新它,但我发布了以防有人发现它有趣并想在此之前尝试一下。

>

运行我的函数

x = sym('x',[1 32],'real')
e = func(x)

函数(不管你信不信,这只是雅可比矩阵,我也有黑森矩阵)因为文本限制是 30K,所以不能粘贴在这里

https://drive.google.com/open?id=1imOAa4VS87WDkOwAK0NoFCJPTK_2QIRj

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)