mathematica FullSimplify懦弱拒绝完全评估复杂数字的真实部分?

Pee*_*oot 2 wolfram-mathematica

我想知道是否有一个不同于FullSimplify的命令告诉mathematica进行所请求的计算.这是简化尝试的三种变体

FullSimplify[Re[                       (-I + k Rr)] Cos[Ttheta], Element[{k, Rr, Ttheta, t, omega}, Reals]]
FullSimplify[Re[E^(I (omega t - k Rr))            ] Cos[Ttheta], Element[{k, Rr, Ttheta, t, omega}, Reals]]
FullSimplify[Re[E^(I (omega t - k Rr)) (-I + k Rr)] Cos[Ttheta], Element[{k, Rr, Ttheta, t, omega}, Reals]]
Run Code Online (Sandbox Code Playgroud)

我分别得到:

k Rr Cos[Ttheta]
Cos[k Rr - omega t] Cos[Ttheta]

                I (-k Rr + omega t)
Cos[Ttheta] Re[E                    (-I + k Rr)]
Run Code Online (Sandbox Code Playgroud)

没有指数,实际部分得到评估.如果没有复数因子乘以指数,就会对实部进行评估.两者相乘,输入作为输出返回?

我尝试了// Timings修饰符,这不是因为表达式太复杂(这很好,因为我可以在我脑海中做到这一点,但这是一个较大的测试表达式的子集,也是失败的).

Mr.*_*ard 5

你声明了你的变量,Reals你试过ComplexExpand吗?

要在这里兑换我的缓慢发布是另一种方法:告诉Mathematica您不希望Complex在结果中通过ComplexityFunction

FullSimplify[Re[E^(I (omega t - k Rr)) (-I + k Rr)] Cos[Ttheta], 
 Element[{k, Rr, Ttheta, t, omega}, Reals], 
 ComplexityFunction -> (1 - Boole@FreeQ[#, Complex] &)]
Run Code Online (Sandbox Code Playgroud)