我使用的是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 不要引入这个额外的虚数单位。
当然,这是更大计算的一部分。 预先感谢。
这是我迄今为止找到的最好的解决方案。这要归功于巴顿·威利斯。
(%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