用于检查表达式形式的 Maxima 块

Maxima block to check form of expression

这里是千里马新手。我需要检查表达式的形式是否为 constant + infinite sum of trigonometric terms

没有内置的方法可以做到这一点,但我认为您可以为此目的使用模式匹配函数(即匹配表达式,而不是字符串)。类似于:

matchdeclare (xx, trigtermp(x));
matchdeclare (yy, freeof(x));
defrule (myrule1, xx + yy, HEY(xx, yy));

其中 trigtermp 本身是一个模式匹配函数,它匹配 (multiplicative factor)*(trig function)。我的建议在参考手册中阅读了一些关于 matchdeclaredefruledefmatch 的内容,也许可以跟进 Maxima 邮件列表 (maxima-discuss@lists.sourceforge.net)因为这个问题可能需要一些额外的讨论。