Maxima 在泰勒级数中添加了不必要的 %i

问题描述 投票:0回答:1

我使用的是Maxima 5.44。在根式的泰勒展开式中,Maxima 引入了一个不必要的虚数单位。

我正在尝试以下计算:

rr:sqrt(1-a*cos(θ)^2);
taylor(rr, θ, 0, 2);

结果是:

sqrt(a-1)*%i-(sqrt(a-1)*%i*a*θ^2)/(2*a-2)+...

即使它是正确的,虚数单位也很烦人,因为所有内容都将在实数行中计算。 我更喜欢:

sqrt(1-a)-(sqrt(1-a)*a*θ^2)/(2*a-2)+...

因为它会更短、更清晰。 有没有办法强制最大值不插入虚数单位? 我尝试使用

assume(a<1)
但没有成功。 例如 sympy 不要引入这个额外的虚数单位。

当然,这是更大计算的一部分。 预先感谢。

sympy maxima wxmaxima
1个回答
0
投票

这是我迄今为止找到的最好的解决方案。这要归功于巴顿·威利斯。

(%i1) block([taylor_simplifier : rootscontract], taylor (sqrt (1 - a*cos(θ)^2), θ, 0, 2));
                                             2
                          (sqrt(- a + 1) a) θ
(%o1)/T/  sqrt(- a + 1) - -------------------- + . . .
                                2 a - 2
© www.soinside.com 2019 - 2024. All rights reserved.