Maxima:根式形式的三角函数数

Maxima: trigonometric numbers in radical form

千里马初学者问题:如何得到部首形式的trigonometric numbers

例如,这个表达式的计算结果很好:

(%i) cos( 3 * %pi / 4);
                                       1
(%o)                              - -------
                                    sqrt(2)

但是这个没有:

(%i) cos(3 * %pi / 5);
                                     3 %pi
(%o)                             cos(-----)
                                       5

我希望它显示如下内容:

(%i) cos( 3 * %pi / 5);
                                  1 - sqrt(5)
(%o)                              -----------
                                       4

例如,参见 Wolfram Alpha 的输出:

http://www.wolframalpha.com/input/?i=cos%283+pi+%2F+5%29

来自 piargs 的 Maxima 文档, 默认为 true

When %piargs is true, trigonometric functions are simplified to algebraic constants when the argument is an integer multiple of %pi, %pi/2, %pi/3, %pi/4, or %pi/6.

来自 ntrig 的 Maxima 文档:

The ntrig package contains a set of simplification rules that are used to simplify trigonometric function whose arguments are of the form f(n%pi/10) where f is any of the functions sin, cos, tan, csc, sec and cot.

这适用于 3π/5,但不适用于更复杂的值,如 π/96:

(%i) load(ntrig);
(%o)        /usr/share/maxima/5.34.1/share/trigonometry/ntrig.mac
(%i) cos(3*%pi/5);
                                 1 - sqrt(5)
(%o)                             -----------
                                      4
(%i) sin(4*%pi/10);
                             sqrt(sqrt(5) + 5)
(%o)                         -----------------
                                    3/2
                                   2
(%i) sin(%pi/96);
                                      %pi
(%o)                              sin(---)
                                      96

要评估更复杂的结果, trigtools 包中的 trigeval 函数将起作用:

(%i) load(trigtools);
(%o)   /usr/share/maxima/5.34.1/share/contrib/trigtools/trigtools.mac
(%i) trigeval(sin(4*%pi/10));
                              sqrt(sqrt(5) + 5)
(%o)                          -----------------
                                     3/2
                                    2
(%i) trigeval(sin(%pi/96));
                   9/8                        3/2         5/4
             sqrt(2    - sqrt(sqrt(sqrt(3) + 2    + 1) + 2   ))
(%o)         --------------------------------------------------
                                    17/16
                                   2

有一些documentation 对于 trigtools,但因为它是第 3 方 contrib 包的一部分, 它没有得到很好的维护。 trigtools hasn't been updated since 2013.

的源代码

此外,trigeval 似乎只适用于与正多边形相对应的角度, 而不是一般的三角函数数。 例如,cos (π / 23) = -(1/2)(-1)22/23(1+(-1)2/23), 但 trigeval 在这种情况下没有帮助:

(%i) trigeval(cos(%pi/23));
                                      %pi
(%o)                              cos(---)
                                      23

归功于 Serge de MarreRaymond Toymaxima-discuss 邮件列表,以及 David BillinghurstMaxima Area 51 Stackexchange.

来自其他邮件列表的相关链接: